@blaze-cms/react-page-builder 0.141.0 → 0.142.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/lib/components/DateTime/DateTime.js +37 -0
- package/lib/components/DateTime/DateTime.js.map +1 -0
- package/lib/components/DateTime/index.js +11 -0
- package/lib/components/DateTime/index.js.map +1 -0
- package/lib/components/index.js +5 -0
- package/lib/components/index.js.map +1 -1
- package/lib/hooks/helpers/buildPBComponents.js +12 -12
- package/lib/hooks/helpers/buildPBComponents.js.map +1 -1
- package/lib/hooks/helpers/get-components-to-insert-by-type.js +35 -0
- package/lib/hooks/helpers/get-components-to-insert-by-type.js.map +1 -0
- package/lib/hooks/helpers/inject-element-components.js +70 -0
- package/lib/hooks/helpers/inject-element-components.js.map +1 -0
- package/lib/hooks/helpers/inject-textblock-banners.js +4 -2
- package/lib/hooks/helpers/inject-textblock-banners.js.map +1 -1
- package/lib-es/components/DateTime/DateTime.js +30 -0
- package/lib-es/components/DateTime/DateTime.js.map +1 -0
- package/lib-es/components/DateTime/index.js +3 -0
- package/lib-es/components/DateTime/index.js.map +1 -0
- package/lib-es/components/index.js +1 -0
- package/lib-es/components/index.js.map +1 -1
- package/lib-es/hooks/helpers/buildPBComponents.js +6 -6
- package/lib-es/hooks/helpers/buildPBComponents.js.map +1 -1
- package/lib-es/hooks/helpers/get-components-to-insert-by-type.js +27 -0
- package/lib-es/hooks/helpers/get-components-to-insert-by-type.js.map +1 -0
- package/lib-es/hooks/helpers/inject-element-components.js +59 -0
- package/lib-es/hooks/helpers/inject-element-components.js.map +1 -0
- package/lib-es/hooks/helpers/inject-textblock-banners.js +4 -2
- package/lib-es/hooks/helpers/inject-textblock-banners.js.map +1 -1
- package/package.json +2 -2
- package/src/components/DateTime/DateTime.js +34 -0
- package/src/components/DateTime/index.js +3 -0
- package/src/components/index.js +1 -0
- package/src/hooks/helpers/buildPBComponents.js +13 -6
- package/src/hooks/helpers/get-components-to-insert-by-type.js +34 -0
- package/src/hooks/helpers/inject-element-components.js +56 -0
- package/src/hooks/helpers/inject-textblock-banners.js +3 -2
- package/tests/unit/src/components/DateTime/DateTime.test.js +105 -0
- package/tests/unit/src/components/__snapshots__/index.test.js.snap +4 -0
- package/tests/unit/src/hooks/helpers/{get-banners-by-type.test.js → get-components-to-insert-by-type.test.js} +5 -5
- package/tests/unit/src/hooks/helpers/{inject-element-banners.test.js → inject-element-components.test.js} +34 -17
- package/tests/unit/src/hooks/helpers/inject-textblock-banners.test.js +2 -1
- package/lib/hooks/helpers/get-banners-by-type.js +0 -38
- package/lib/hooks/helpers/get-banners-by-type.js.map +0 -1
- package/lib/hooks/helpers/inject-element-banners.js +0 -65
- package/lib/hooks/helpers/inject-element-banners.js.map +0 -1
- package/lib-es/hooks/helpers/get-banners-by-type.js +0 -27
- package/lib-es/hooks/helpers/get-banners-by-type.js.map +0 -1
- package/lib-es/hooks/helpers/inject-element-banners.js +0 -55
- package/lib-es/hooks/helpers/inject-element-banners.js.map +0 -1
- package/src/hooks/helpers/get-banners-by-type.js +0 -27
- package/src/hooks/helpers/inject-element-banners.js +0 -47
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import '@testing-library/jest-dom/extend-expect';
|
|
2
|
-
import
|
|
2
|
+
import injectElementComponents from '../../../../../src/hooks/helpers/inject-element-components';
|
|
3
3
|
|
|
4
4
|
const mockedChildren = [
|
|
5
5
|
{ type: 'banner', name: 'bannerComp' },
|
|
@@ -13,10 +13,12 @@ const mockedChildren = [
|
|
|
13
13
|
|
|
14
14
|
const mockedResults = [
|
|
15
15
|
[
|
|
16
|
+
{ type: 'banner', name: 'bannerComp' },
|
|
16
17
|
{ type: 'image', name: 'imageComp' },
|
|
17
18
|
{ type: 'button', name: 'testCollider' },
|
|
18
19
|
{
|
|
19
20
|
name: 'testBanner',
|
|
21
|
+
type: 'banner',
|
|
20
22
|
settings: {
|
|
21
23
|
repeatEvery: 1,
|
|
22
24
|
startingPoint: 0,
|
|
@@ -30,10 +32,12 @@ const mockedResults = [
|
|
|
30
32
|
{ type: 'image', name: 'imageComp3' }
|
|
31
33
|
],
|
|
32
34
|
[
|
|
35
|
+
{ type: 'banner', name: 'bannerComp' },
|
|
33
36
|
{ type: 'image', name: 'imageComp' },
|
|
34
37
|
{ type: 'button', name: 'testCollider' },
|
|
35
38
|
{
|
|
36
39
|
name: 'testBanner',
|
|
40
|
+
type: 'banner',
|
|
37
41
|
settings: {
|
|
38
42
|
repeatEvery: 1,
|
|
39
43
|
startingPoint: 0,
|
|
@@ -50,34 +54,47 @@ const mockedResults = [
|
|
|
50
54
|
|
|
51
55
|
const mockedBanner = {
|
|
52
56
|
name: 'testBanner',
|
|
57
|
+
type: 'banner',
|
|
53
58
|
settings: { repeatEvery: 4, startingPoint: 4, maxRepetitions: 1, targetings: 'pos=999' }
|
|
54
59
|
};
|
|
55
60
|
|
|
56
|
-
describe('
|
|
61
|
+
describe('injectElementComponents function', () => {
|
|
57
62
|
it('should return the same children without banners if no banners can be injected', () => {
|
|
58
|
-
const noBannersInjected =
|
|
59
|
-
|
|
60
|
-
expect(noBannersInjected).toEqual(childrenWithoutBanners);
|
|
63
|
+
const noBannersInjected = injectElementComponents([mockedBanner], mockedChildren);
|
|
64
|
+
expect(noBannersInjected).toEqual(mockedChildren);
|
|
61
65
|
});
|
|
62
66
|
|
|
63
67
|
it('should return a modified array with injected banners', () => {
|
|
64
|
-
const withInjectedBanners =
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
const withInjectedBanners = injectElementComponents(
|
|
69
|
+
[
|
|
70
|
+
{
|
|
71
|
+
...mockedBanner,
|
|
72
|
+
settings: {
|
|
73
|
+
...mockedBanner.settings,
|
|
74
|
+
startingPoint: 0,
|
|
75
|
+
repeatEvery: 1,
|
|
76
|
+
maxRepetitions: 4
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
],
|
|
69
80
|
mockedChildren
|
|
70
81
|
);
|
|
71
|
-
|
|
72
82
|
expect(withInjectedBanners).toEqual(mockedResults[0]);
|
|
73
83
|
});
|
|
74
84
|
|
|
75
|
-
it('should not inject more
|
|
76
|
-
const withSingleBanner =
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
85
|
+
it('should not inject more banners than its max repetitions', () => {
|
|
86
|
+
const withSingleBanner = injectElementComponents(
|
|
87
|
+
[
|
|
88
|
+
{
|
|
89
|
+
...mockedBanner,
|
|
90
|
+
settings: {
|
|
91
|
+
...mockedBanner.settings,
|
|
92
|
+
startingPoint: 0,
|
|
93
|
+
repeatEvery: 1,
|
|
94
|
+
maxRepetitions: 1
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
],
|
|
81
98
|
mockedChildren
|
|
82
99
|
);
|
|
83
100
|
|
|
@@ -4,6 +4,7 @@ import setInitialBannerCounters from '../../../../../src/BannerContext/helpers/s
|
|
|
4
4
|
|
|
5
5
|
const mockedBanner = {
|
|
6
6
|
name: 'testBanner',
|
|
7
|
+
type: 'banner',
|
|
7
8
|
settings: { repeatEvery: 2, startingPoint: 1, maxRepetitions: 6 }
|
|
8
9
|
};
|
|
9
10
|
|
|
@@ -42,7 +43,7 @@ const getBannerContent = (banners = defaultBanners) => ({
|
|
|
42
43
|
blockTracker: { lastBlockType: null }
|
|
43
44
|
});
|
|
44
45
|
|
|
45
|
-
describe('
|
|
46
|
+
describe('injectTextblockBanners function', () => {
|
|
46
47
|
describe('Injection with core settings', () => {
|
|
47
48
|
const bannerContext = getBannerContent();
|
|
48
49
|
let updatedBlocks;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.object.define-property.js");
|
|
4
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports["default"] = void 0;
|
|
9
|
-
require("core-js/modules/es.array.filter.js");
|
|
10
|
-
require("core-js/modules/es.object.to-string.js");
|
|
11
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
|
-
var _constants = require("./constants");
|
|
13
|
-
var _constants2 = require("../../constants");
|
|
14
|
-
var getBannersByType = function getBannersByType(items, bannerType) {
|
|
15
|
-
if (items) {
|
|
16
|
-
if (bannerType === _constants2.ELEMENT) {
|
|
17
|
-
var _items$filter = items.filter(function (_ref) {
|
|
18
|
-
var type = _ref.type,
|
|
19
|
-
insertionType = _ref.settings.insertionType;
|
|
20
|
-
return type === _constants.PB_TYPE_BANNER && insertionType === bannerType;
|
|
21
|
-
}),
|
|
22
|
-
_items$filter2 = (0, _slicedToArray2["default"])(_items$filter, 1),
|
|
23
|
-
bannerToInject = _items$filter2[0];
|
|
24
|
-
if (bannerToInject) return [true, bannerToInject];
|
|
25
|
-
} else {
|
|
26
|
-
var textBlockBanners = items.filter(function (_ref2) {
|
|
27
|
-
var type = _ref2.type,
|
|
28
|
-
insertionType = _ref2.settings.insertionType;
|
|
29
|
-
return type === _constants.PB_TYPE_BANNER && insertionType === _constants.PB_TYPE_TEXTBLOCK;
|
|
30
|
-
});
|
|
31
|
-
var hasTextBlockBanners = !!textBlockBanners && !!textBlockBanners.length;
|
|
32
|
-
return [hasTextBlockBanners, textBlockBanners];
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return [false, []];
|
|
36
|
-
};
|
|
37
|
-
var _default = exports["default"] = getBannersByType;
|
|
38
|
-
//# sourceMappingURL=get-banners-by-type.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-banners-by-type.js","names":["_constants","require","_constants2","getBannersByType","items","bannerType","ELEMENT","_items$filter","filter","_ref","type","insertionType","settings","PB_TYPE_BANNER","_items$filter2","_slicedToArray2","bannerToInject","textBlockBanners","_ref2","PB_TYPE_TEXTBLOCK","hasTextBlockBanners","length","_default","exports"],"sources":["../../../src/hooks/helpers/get-banners-by-type.js"],"sourcesContent":["import { PB_TYPE_BANNER, PB_TYPE_TEXTBLOCK } from './constants';\nimport { ELEMENT } from '../../constants';\n\nconst getBannersByType = (items, bannerType) => {\n if (items) {\n if (bannerType === ELEMENT) {\n const [bannerToInject] = items.filter(\n ({ type, settings: { insertionType } }) =>\n type === PB_TYPE_BANNER && insertionType === bannerType\n );\n if (bannerToInject) return [true, bannerToInject];\n } else {\n const textBlockBanners = items.filter(\n ({ type, settings: { insertionType } }) =>\n type === PB_TYPE_BANNER && insertionType === PB_TYPE_TEXTBLOCK\n );\n\n const hasTextBlockBanners = !!textBlockBanners && !!textBlockBanners.length;\n\n return [hasTextBlockBanners, textBlockBanners];\n }\n }\n\n return [false, []];\n};\n\nexport default getBannersByType;\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAME,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,KAAK,EAAEC,UAAU,EAAK;EAC9C,IAAID,KAAK,EAAE;IACT,IAAIC,UAAU,KAAKC,mBAAO,EAAE;MAC1B,IAAAC,aAAA,GAAyBH,KAAK,CAACI,MAAM,CACnC,UAAAC,IAAA;UAAA,IAAGC,IAAI,GAAAD,IAAA,CAAJC,IAAI;YAAcC,aAAa,GAAAF,IAAA,CAAzBG,QAAQ,CAAID,aAAa;UAAA,OAChCD,IAAI,KAAKG,yBAAc,IAAIF,aAAa,KAAKN,UAAU;QAAA,CAC3D,CAAC;QAAAS,cAAA,OAAAC,eAAA,aAAAR,aAAA;QAHMS,cAAc,GAAAF,cAAA;MAIrB,IAAIE,cAAc,EAAE,OAAO,CAAC,IAAI,EAAEA,cAAc,CAAC;IACnD,CAAC,MAAM;MACL,IAAMC,gBAAgB,GAAGb,KAAK,CAACI,MAAM,CACnC,UAAAU,KAAA;QAAA,IAAGR,IAAI,GAAAQ,KAAA,CAAJR,IAAI;UAAcC,aAAa,GAAAO,KAAA,CAAzBN,QAAQ,CAAID,aAAa;QAAA,OAChCD,IAAI,KAAKG,yBAAc,IAAIF,aAAa,KAAKQ,4BAAiB;MAAA,CAClE,CAAC;MAED,IAAMC,mBAAmB,GAAG,CAAC,CAACH,gBAAgB,IAAI,CAAC,CAACA,gBAAgB,CAACI,MAAM;MAE3E,OAAO,CAACD,mBAAmB,EAAEH,gBAAgB,CAAC;IAChD;EACF;EAEA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACpB,CAAC;AAAC,IAAAK,QAAA,GAAAC,OAAA,cAEapB,gBAAgB"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.object.keys.js");
|
|
4
|
-
require("core-js/modules/es.symbol.js");
|
|
5
|
-
require("core-js/modules/es.array.filter.js");
|
|
6
|
-
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
7
|
-
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
8
|
-
require("core-js/modules/es.object.define-properties.js");
|
|
9
|
-
require("core-js/modules/es.object.define-property.js");
|
|
10
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
11
|
-
Object.defineProperty(exports, "__esModule", {
|
|
12
|
-
value: true
|
|
13
|
-
});
|
|
14
|
-
exports["default"] = void 0;
|
|
15
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
|
-
require("core-js/modules/es.array.for-each.js");
|
|
17
|
-
require("core-js/modules/es.object.to-string.js");
|
|
18
|
-
require("core-js/modules/web.dom-collections.for-each.js");
|
|
19
|
-
var _updateTargetings = _interopRequireDefault(require("./update-targetings"));
|
|
20
|
-
var _constants = require("../../constants");
|
|
21
|
-
var _constants2 = require("./constants");
|
|
22
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
|
-
var checkBannerCollision = function checkBannerCollision(typeToCheck, currentType) {
|
|
25
|
-
if (currentType === _constants.IMAGE) return true;
|
|
26
|
-
return typeToCheck === _constants.IMAGE;
|
|
27
|
-
};
|
|
28
|
-
var injectElementBanners = function injectElementBanners(banner, children) {
|
|
29
|
-
var _banner$settings = banner.settings,
|
|
30
|
-
repeatEvery = _banner$settings.repeatEvery,
|
|
31
|
-
startingPoint = _banner$settings.startingPoint,
|
|
32
|
-
maxRepetitions = _banner$settings.maxRepetitions;
|
|
33
|
-
var updatedChildren = [];
|
|
34
|
-
var bannerTotal = 0;
|
|
35
|
-
var currentBannerPosition = startingPoint;
|
|
36
|
-
children.forEach(function (component, i) {
|
|
37
|
-
var type = component.type;
|
|
38
|
-
var _ref = children[i - 1] || {},
|
|
39
|
-
previousComponentType = _ref.type;
|
|
40
|
-
var _ref2 = children[i + 1] || {},
|
|
41
|
-
nextComponentType = _ref2.type;
|
|
42
|
-
var isBanner = type === _constants2.PB_TYPE_BANNER;
|
|
43
|
-
var collidedBefore = checkBannerCollision(previousComponentType, type);
|
|
44
|
-
var collidedAfter = checkBannerCollision(nextComponentType, type);
|
|
45
|
-
if (collidedBefore || i === 0 && collidedAfter) {
|
|
46
|
-
if (currentBannerPosition <= i) currentBannerPosition += 1;
|
|
47
|
-
if (!isBanner) updatedChildren.push(component);
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
var hasReachedMax = maxRepetitions && bannerTotal >= maxRepetitions;
|
|
51
|
-
if (!hasReachedMax && i === currentBannerPosition) {
|
|
52
|
-
var bannerWithTargetings = repeatEvery ? (0, _updateTargetings["default"])(banner, bannerTotal) : banner;
|
|
53
|
-
var updatedSettings = _objectSpread({}, bannerWithTargetings.settings);
|
|
54
|
-
updatedChildren.push(_objectSpread(_objectSpread({}, bannerWithTargetings), {}, {
|
|
55
|
-
settings: updatedSettings
|
|
56
|
-
}));
|
|
57
|
-
bannerTotal += 1;
|
|
58
|
-
currentBannerPosition += repeatEvery;
|
|
59
|
-
}
|
|
60
|
-
if (!isBanner) updatedChildren.push(component);
|
|
61
|
-
});
|
|
62
|
-
return updatedChildren;
|
|
63
|
-
};
|
|
64
|
-
var _default = exports["default"] = injectElementBanners;
|
|
65
|
-
//# sourceMappingURL=inject-element-banners.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inject-element-banners.js","names":["_updateTargetings","_interopRequireDefault","require","_constants","_constants2","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","checkBannerCollision","typeToCheck","currentType","IMAGE","injectElementBanners","banner","children","_banner$settings","settings","repeatEvery","startingPoint","maxRepetitions","updatedChildren","bannerTotal","currentBannerPosition","component","i","type","_ref","previousComponentType","_ref2","nextComponentType","isBanner","PB_TYPE_BANNER","collidedBefore","collidedAfter","hasReachedMax","bannerWithTargetings","updateTargetings","updatedSettings","_default","exports"],"sources":["../../../src/hooks/helpers/inject-element-banners.js"],"sourcesContent":["import updateTargetings from './update-targetings';\nimport { IMAGE } from '../../constants';\nimport { PB_TYPE_BANNER } from './constants';\n\nconst checkBannerCollision = (typeToCheck, currentType) => {\n if (currentType === IMAGE) return true;\n return typeToCheck === IMAGE;\n};\n\nconst injectElementBanners = (banner, children) => {\n const {\n settings: { repeatEvery, startingPoint, maxRepetitions }\n } = banner;\n\n const updatedChildren = [];\n let bannerTotal = 0;\n let currentBannerPosition = startingPoint;\n\n children.forEach((component, i) => {\n const { type } = component;\n const { type: previousComponentType } = children[i - 1] || {};\n const { type: nextComponentType } = children[i + 1] || {};\n const isBanner = type === PB_TYPE_BANNER;\n const collidedBefore = checkBannerCollision(previousComponentType, type);\n const collidedAfter = checkBannerCollision(nextComponentType, type);\n\n if (collidedBefore || (i === 0 && collidedAfter)) {\n if (currentBannerPosition <= i) currentBannerPosition += 1;\n if (!isBanner) updatedChildren.push(component);\n return;\n }\n\n const hasReachedMax = maxRepetitions && bannerTotal >= maxRepetitions;\n if (!hasReachedMax && i === currentBannerPosition) {\n const bannerWithTargetings = repeatEvery ? updateTargetings(banner, bannerTotal) : banner;\n const updatedSettings = { ...bannerWithTargetings.settings };\n updatedChildren.push({ ...bannerWithTargetings, settings: updatedSettings });\n bannerTotal += 1;\n currentBannerPosition += repeatEvery;\n }\n if (!isBanner) updatedChildren.push(component);\n });\n\n return updatedChildren;\n};\n\nexport default injectElementBanners;\n"],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { PB_TYPE_BANNER, PB_TYPE_TEXTBLOCK } from './constants';
|
|
2
|
-
import { ELEMENT } from '../../constants';
|
|
3
|
-
const getBannersByType = (items, bannerType) => {
|
|
4
|
-
if (items) {
|
|
5
|
-
if (bannerType === ELEMENT) {
|
|
6
|
-
const [bannerToInject] = items.filter(({
|
|
7
|
-
type,
|
|
8
|
-
settings: {
|
|
9
|
-
insertionType
|
|
10
|
-
}
|
|
11
|
-
}) => type === PB_TYPE_BANNER && insertionType === bannerType);
|
|
12
|
-
if (bannerToInject) return [true, bannerToInject];
|
|
13
|
-
} else {
|
|
14
|
-
const textBlockBanners = items.filter(({
|
|
15
|
-
type,
|
|
16
|
-
settings: {
|
|
17
|
-
insertionType
|
|
18
|
-
}
|
|
19
|
-
}) => type === PB_TYPE_BANNER && insertionType === PB_TYPE_TEXTBLOCK);
|
|
20
|
-
const hasTextBlockBanners = !!textBlockBanners && !!textBlockBanners.length;
|
|
21
|
-
return [hasTextBlockBanners, textBlockBanners];
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return [false, []];
|
|
25
|
-
};
|
|
26
|
-
export default getBannersByType;
|
|
27
|
-
//# sourceMappingURL=get-banners-by-type.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-banners-by-type.js","names":["PB_TYPE_BANNER","PB_TYPE_TEXTBLOCK","ELEMENT","getBannersByType","items","bannerType","bannerToInject","filter","type","settings","insertionType","textBlockBanners","hasTextBlockBanners","length"],"sources":["../../../src/hooks/helpers/get-banners-by-type.js"],"sourcesContent":["import { PB_TYPE_BANNER, PB_TYPE_TEXTBLOCK } from './constants';\nimport { ELEMENT } from '../../constants';\n\nconst getBannersByType = (items, bannerType) => {\n if (items) {\n if (bannerType === ELEMENT) {\n const [bannerToInject] = items.filter(\n ({ type, settings: { insertionType } }) =>\n type === PB_TYPE_BANNER && insertionType === bannerType\n );\n if (bannerToInject) return [true, bannerToInject];\n } else {\n const textBlockBanners = items.filter(\n ({ type, settings: { insertionType } }) =>\n type === PB_TYPE_BANNER && insertionType === PB_TYPE_TEXTBLOCK\n );\n\n const hasTextBlockBanners = !!textBlockBanners && !!textBlockBanners.length;\n\n return [hasTextBlockBanners, textBlockBanners];\n }\n }\n\n return [false, []];\n};\n\nexport default getBannersByType;\n"],"mappings":"AAAA,SAASA,cAAc,EAAEC,iBAAiB,QAAQ,aAAa;AAC/D,SAASC,OAAO,QAAQ,iBAAiB;AAEzC,MAAMC,gBAAgB,GAAGA,CAACC,KAAK,EAAEC,UAAU,KAAK;EAC9C,IAAID,KAAK,EAAE;IACT,IAAIC,UAAU,KAAKH,OAAO,EAAE;MAC1B,MAAM,CAACI,cAAc,CAAC,GAAGF,KAAK,CAACG,MAAM,CACnC,CAAC;QAAEC,IAAI;QAAEC,QAAQ,EAAE;UAAEC;QAAc;MAAE,CAAC,KACpCF,IAAI,KAAKR,cAAc,IAAIU,aAAa,KAAKL,UACjD,CAAC;MACD,IAAIC,cAAc,EAAE,OAAO,CAAC,IAAI,EAAEA,cAAc,CAAC;IACnD,CAAC,MAAM;MACL,MAAMK,gBAAgB,GAAGP,KAAK,CAACG,MAAM,CACnC,CAAC;QAAEC,IAAI;QAAEC,QAAQ,EAAE;UAAEC;QAAc;MAAE,CAAC,KACpCF,IAAI,KAAKR,cAAc,IAAIU,aAAa,KAAKT,iBACjD,CAAC;MAED,MAAMW,mBAAmB,GAAG,CAAC,CAACD,gBAAgB,IAAI,CAAC,CAACA,gBAAgB,CAACE,MAAM;MAE3E,OAAO,CAACD,mBAAmB,EAAED,gBAAgB,CAAC;IAChD;EACF;EAEA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACpB,CAAC;AAED,eAAeR,gBAAgB"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
-
import updateTargetings from './update-targetings';
|
|
5
|
-
import { IMAGE } from '../../constants';
|
|
6
|
-
import { PB_TYPE_BANNER } from './constants';
|
|
7
|
-
const checkBannerCollision = (typeToCheck, currentType) => {
|
|
8
|
-
if (currentType === IMAGE) return true;
|
|
9
|
-
return typeToCheck === IMAGE;
|
|
10
|
-
};
|
|
11
|
-
const injectElementBanners = (banner, children) => {
|
|
12
|
-
const {
|
|
13
|
-
settings: {
|
|
14
|
-
repeatEvery,
|
|
15
|
-
startingPoint,
|
|
16
|
-
maxRepetitions
|
|
17
|
-
}
|
|
18
|
-
} = banner;
|
|
19
|
-
const updatedChildren = [];
|
|
20
|
-
let bannerTotal = 0;
|
|
21
|
-
let currentBannerPosition = startingPoint;
|
|
22
|
-
children.forEach((component, i) => {
|
|
23
|
-
const {
|
|
24
|
-
type
|
|
25
|
-
} = component;
|
|
26
|
-
const {
|
|
27
|
-
type: previousComponentType
|
|
28
|
-
} = children[i - 1] || {};
|
|
29
|
-
const {
|
|
30
|
-
type: nextComponentType
|
|
31
|
-
} = children[i + 1] || {};
|
|
32
|
-
const isBanner = type === PB_TYPE_BANNER;
|
|
33
|
-
const collidedBefore = checkBannerCollision(previousComponentType, type);
|
|
34
|
-
const collidedAfter = checkBannerCollision(nextComponentType, type);
|
|
35
|
-
if (collidedBefore || i === 0 && collidedAfter) {
|
|
36
|
-
if (currentBannerPosition <= i) currentBannerPosition += 1;
|
|
37
|
-
if (!isBanner) updatedChildren.push(component);
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
const hasReachedMax = maxRepetitions && bannerTotal >= maxRepetitions;
|
|
41
|
-
if (!hasReachedMax && i === currentBannerPosition) {
|
|
42
|
-
const bannerWithTargetings = repeatEvery ? updateTargetings(banner, bannerTotal) : banner;
|
|
43
|
-
const updatedSettings = _objectSpread({}, bannerWithTargetings.settings);
|
|
44
|
-
updatedChildren.push(_objectSpread(_objectSpread({}, bannerWithTargetings), {}, {
|
|
45
|
-
settings: updatedSettings
|
|
46
|
-
}));
|
|
47
|
-
bannerTotal += 1;
|
|
48
|
-
currentBannerPosition += repeatEvery;
|
|
49
|
-
}
|
|
50
|
-
if (!isBanner) updatedChildren.push(component);
|
|
51
|
-
});
|
|
52
|
-
return updatedChildren;
|
|
53
|
-
};
|
|
54
|
-
export default injectElementBanners;
|
|
55
|
-
//# sourceMappingURL=inject-element-banners.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inject-element-banners.js","names":["updateTargetings","IMAGE","PB_TYPE_BANNER","checkBannerCollision","typeToCheck","currentType","injectElementBanners","banner","children","settings","repeatEvery","startingPoint","maxRepetitions","updatedChildren","bannerTotal","currentBannerPosition","forEach","component","i","type","previousComponentType","nextComponentType","isBanner","collidedBefore","collidedAfter","push","hasReachedMax","bannerWithTargetings","updatedSettings","_objectSpread"],"sources":["../../../src/hooks/helpers/inject-element-banners.js"],"sourcesContent":["import updateTargetings from './update-targetings';\nimport { IMAGE } from '../../constants';\nimport { PB_TYPE_BANNER } from './constants';\n\nconst checkBannerCollision = (typeToCheck, currentType) => {\n if (currentType === IMAGE) return true;\n return typeToCheck === IMAGE;\n};\n\nconst injectElementBanners = (banner, children) => {\n const {\n settings: { repeatEvery, startingPoint, maxRepetitions }\n } = banner;\n\n const updatedChildren = [];\n let bannerTotal = 0;\n let currentBannerPosition = startingPoint;\n\n children.forEach((component, i) => {\n const { type } = component;\n const { type: previousComponentType } = children[i - 1] || {};\n const { type: nextComponentType } = children[i + 1] || {};\n const isBanner = type === PB_TYPE_BANNER;\n const collidedBefore = checkBannerCollision(previousComponentType, type);\n const collidedAfter = checkBannerCollision(nextComponentType, type);\n\n if (collidedBefore || (i === 0 && collidedAfter)) {\n if (currentBannerPosition <= i) currentBannerPosition += 1;\n if (!isBanner) updatedChildren.push(component);\n return;\n }\n\n const hasReachedMax = maxRepetitions && bannerTotal >= maxRepetitions;\n if (!hasReachedMax && i === currentBannerPosition) {\n const bannerWithTargetings = repeatEvery ? updateTargetings(banner, bannerTotal) : banner;\n const updatedSettings = { ...bannerWithTargetings.settings };\n updatedChildren.push({ ...bannerWithTargetings, settings: updatedSettings });\n bannerTotal += 1;\n currentBannerPosition += repeatEvery;\n }\n if (!isBanner) updatedChildren.push(component);\n });\n\n return updatedChildren;\n};\n\nexport default injectElementBanners;\n"],"mappings":";;;AAAA,OAAOA,gBAAgB,MAAM,qBAAqB;AAClD,SAASC,KAAK,QAAQ,iBAAiB;AACvC,SAASC,cAAc,QAAQ,aAAa;AAE5C,MAAMC,oBAAoB,GAAGA,CAACC,WAAW,EAAEC,WAAW,KAAK;EACzD,IAAIA,WAAW,KAAKJ,KAAK,EAAE,OAAO,IAAI;EACtC,OAAOG,WAAW,KAAKH,KAAK;AAC9B,CAAC;AAED,MAAMK,oBAAoB,GAAGA,CAACC,MAAM,EAAEC,QAAQ,KAAK;EACjD,MAAM;IACJC,QAAQ,EAAE;MAAEC,WAAW;MAAEC,aAAa;MAAEC;IAAe;EACzD,CAAC,GAAGL,MAAM;EAEV,MAAMM,eAAe,GAAG,EAAE;EAC1B,IAAIC,WAAW,GAAG,CAAC;EACnB,IAAIC,qBAAqB,GAAGJ,aAAa;EAEzCH,QAAQ,CAACQ,OAAO,CAAC,CAACC,SAAS,EAAEC,CAAC,KAAK;IACjC,MAAM;MAAEC;IAAK,CAAC,GAAGF,SAAS;IAC1B,MAAM;MAAEE,IAAI,EAAEC;IAAsB,CAAC,GAAGZ,QAAQ,CAACU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM;MAAEC,IAAI,EAAEE;IAAkB,CAAC,GAAGb,QAAQ,CAACU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACzD,MAAMI,QAAQ,GAAGH,IAAI,KAAKjB,cAAc;IACxC,MAAMqB,cAAc,GAAGpB,oBAAoB,CAACiB,qBAAqB,EAAED,IAAI,CAAC;IACxE,MAAMK,aAAa,GAAGrB,oBAAoB,CAACkB,iBAAiB,EAAEF,IAAI,CAAC;IAEnE,IAAII,cAAc,IAAKL,CAAC,KAAK,CAAC,IAAIM,aAAc,EAAE;MAChD,IAAIT,qBAAqB,IAAIG,CAAC,EAAEH,qBAAqB,IAAI,CAAC;MAC1D,IAAI,CAACO,QAAQ,EAAET,eAAe,CAACY,IAAI,CAACR,SAAS,CAAC;MAC9C;IACF;IAEA,MAAMS,aAAa,GAAGd,cAAc,IAAIE,WAAW,IAAIF,cAAc;IACrE,IAAI,CAACc,aAAa,IAAIR,CAAC,KAAKH,qBAAqB,EAAE;MACjD,MAAMY,oBAAoB,GAAGjB,WAAW,GAAGV,gBAAgB,CAACO,MAAM,EAAEO,WAAW,CAAC,GAAGP,MAAM;MACzF,MAAMqB,eAAe,GAAAC,aAAA,KAAQF,oBAAoB,CAAClB,QAAQ,CAAE;MAC5DI,eAAe,CAACY,IAAI,CAAAI,aAAA,CAAAA,aAAA,KAAMF,oBAAoB;QAAElB,QAAQ,EAAEmB;MAAe,EAAE,CAAC;MAC5Ed,WAAW,IAAI,CAAC;MAChBC,qBAAqB,IAAIL,WAAW;IACtC;IACA,IAAI,CAACY,QAAQ,EAAET,eAAe,CAACY,IAAI,CAACR,SAAS,CAAC;EAChD,CAAC,CAAC;EAEF,OAAOJ,eAAe;AACxB,CAAC;AAED,eAAeP,oBAAoB"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { PB_TYPE_BANNER, PB_TYPE_TEXTBLOCK } from './constants';
|
|
2
|
-
import { ELEMENT } from '../../constants';
|
|
3
|
-
|
|
4
|
-
const getBannersByType = (items, bannerType) => {
|
|
5
|
-
if (items) {
|
|
6
|
-
if (bannerType === ELEMENT) {
|
|
7
|
-
const [bannerToInject] = items.filter(
|
|
8
|
-
({ type, settings: { insertionType } }) =>
|
|
9
|
-
type === PB_TYPE_BANNER && insertionType === bannerType
|
|
10
|
-
);
|
|
11
|
-
if (bannerToInject) return [true, bannerToInject];
|
|
12
|
-
} else {
|
|
13
|
-
const textBlockBanners = items.filter(
|
|
14
|
-
({ type, settings: { insertionType } }) =>
|
|
15
|
-
type === PB_TYPE_BANNER && insertionType === PB_TYPE_TEXTBLOCK
|
|
16
|
-
);
|
|
17
|
-
|
|
18
|
-
const hasTextBlockBanners = !!textBlockBanners && !!textBlockBanners.length;
|
|
19
|
-
|
|
20
|
-
return [hasTextBlockBanners, textBlockBanners];
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return [false, []];
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export default getBannersByType;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import updateTargetings from './update-targetings';
|
|
2
|
-
import { IMAGE } from '../../constants';
|
|
3
|
-
import { PB_TYPE_BANNER } from './constants';
|
|
4
|
-
|
|
5
|
-
const checkBannerCollision = (typeToCheck, currentType) => {
|
|
6
|
-
if (currentType === IMAGE) return true;
|
|
7
|
-
return typeToCheck === IMAGE;
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
const injectElementBanners = (banner, children) => {
|
|
11
|
-
const {
|
|
12
|
-
settings: { repeatEvery, startingPoint, maxRepetitions }
|
|
13
|
-
} = banner;
|
|
14
|
-
|
|
15
|
-
const updatedChildren = [];
|
|
16
|
-
let bannerTotal = 0;
|
|
17
|
-
let currentBannerPosition = startingPoint;
|
|
18
|
-
|
|
19
|
-
children.forEach((component, i) => {
|
|
20
|
-
const { type } = component;
|
|
21
|
-
const { type: previousComponentType } = children[i - 1] || {};
|
|
22
|
-
const { type: nextComponentType } = children[i + 1] || {};
|
|
23
|
-
const isBanner = type === PB_TYPE_BANNER;
|
|
24
|
-
const collidedBefore = checkBannerCollision(previousComponentType, type);
|
|
25
|
-
const collidedAfter = checkBannerCollision(nextComponentType, type);
|
|
26
|
-
|
|
27
|
-
if (collidedBefore || (i === 0 && collidedAfter)) {
|
|
28
|
-
if (currentBannerPosition <= i) currentBannerPosition += 1;
|
|
29
|
-
if (!isBanner) updatedChildren.push(component);
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const hasReachedMax = maxRepetitions && bannerTotal >= maxRepetitions;
|
|
34
|
-
if (!hasReachedMax && i === currentBannerPosition) {
|
|
35
|
-
const bannerWithTargetings = repeatEvery ? updateTargetings(banner, bannerTotal) : banner;
|
|
36
|
-
const updatedSettings = { ...bannerWithTargetings.settings };
|
|
37
|
-
updatedChildren.push({ ...bannerWithTargetings, settings: updatedSettings });
|
|
38
|
-
bannerTotal += 1;
|
|
39
|
-
currentBannerPosition += repeatEvery;
|
|
40
|
-
}
|
|
41
|
-
if (!isBanner) updatedChildren.push(component);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
return updatedChildren;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
export default injectElementBanners;
|