@blaze-cms/react-page-builder 0.120.0-alpha.1 → 0.120.0-alpha.5
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 +44 -0
- package/lib/components/Banner/Banner.js +26 -3
- package/lib/components/Banner/Banner.js.map +1 -1
- package/lib/components/Banner/BannerRender.js +7 -4
- package/lib/components/Banner/BannerRender.js.map +1 -1
- package/lib/components/Banner/helpers.js +81 -21
- package/lib/components/Banner/helpers.js.map +1 -1
- package/lib/helpers/get-generic-render-variables.js +2 -4
- package/lib/helpers/get-generic-render-variables.js.map +1 -1
- package/lib-es/components/Banner/Banner.js +24 -4
- package/lib-es/components/Banner/Banner.js.map +1 -1
- package/lib-es/components/Banner/BannerRender.js +8 -5
- package/lib-es/components/Banner/BannerRender.js.map +1 -1
- package/lib-es/components/Banner/helpers.js +53 -12
- package/lib-es/components/Banner/helpers.js.map +1 -1
- package/lib-es/helpers/get-generic-render-variables.js +2 -4
- package/lib-es/helpers/get-generic-render-variables.js.map +1 -1
- package/package.json +2 -2
- package/src/components/Banner/Banner.js +13 -4
- package/src/components/Banner/BannerRender.js +6 -4
- package/src/components/Banner/helpers.js +58 -9
- package/src/helpers/get-generic-render-variables.js +2 -4
- package/tests/unit/src/components/Banner/helpers.test.js +2 -26
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,50 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.120.0-alpha.5](https://github.com/thebyte9/blaze/compare/v0.120.0-alpha.4...v0.120.0-alpha.5) (2022-02-22)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* query format for list component ([cc8233b](https://github.com/thebyte9/blaze/commit/cc8233b9fc12aa7701f321246e66cdaeb2be14e0))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [0.120.0-alpha.4](https://github.com/thebyte9/blaze/compare/v0.120.0-alpha.3...v0.120.0-alpha.4) (2022-02-21)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* set trageting even if value is not truthy ([#3347](https://github.com/thebyte9/blaze/issues/3347)) ([757e7f3](https://github.com/thebyte9/blaze/commit/757e7f3e78292175d3d9b6f551ecf89c6ecfd500))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# [0.120.0-alpha.3](https://github.com/thebyte9/blaze/compare/v0.120.0-alpha.2...v0.120.0-alpha.3) (2022-02-16)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Bug Fixes
|
|
32
|
+
|
|
33
|
+
* added array handling for banner props ([#3339](https://github.com/thebyte9/blaze/issues/3339)) ([b6e7b84](https://github.com/thebyte9/blaze/commit/b6e7b84b95d63ff978de1ac5921cdbf8e3be5f8a))
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
# [0.120.0-alpha.2](https://github.com/thebyte9/blaze/compare/v0.120.0-alpha.1...v0.120.0-alpha.2) (2022-02-15)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### Features
|
|
43
|
+
|
|
44
|
+
* add user props to baners ([#3332](https://github.com/thebyte9/blaze/issues/3332)) ([e6818c7](https://github.com/thebyte9/blaze/commit/e6818c738864e7e1ccf7ea7072c9c2bb3bb3d367))
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
6
50
|
# [0.120.0-alpha.1](https://github.com/thebyte9/blaze/compare/v0.120.0-alpha.0...v0.120.0-alpha.1) (2022-02-10)
|
|
7
51
|
|
|
8
52
|
|
|
@@ -35,6 +35,8 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
35
35
|
|
|
36
36
|
var _nextjsComponents = require("@blaze-cms/nextjs-components");
|
|
37
37
|
|
|
38
|
+
var _coreAuthUi = require("@blaze-cms/core-auth-ui");
|
|
39
|
+
|
|
38
40
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
39
41
|
|
|
40
42
|
var _lodash = _interopRequireDefault(require("lodash.flatten"));
|
|
@@ -43,6 +45,8 @@ var _client = require("@apollo/client");
|
|
|
43
45
|
|
|
44
46
|
var _router = require("next/router");
|
|
45
47
|
|
|
48
|
+
var _helpers = require("./helpers");
|
|
49
|
+
|
|
46
50
|
var _query = require("../../application/query");
|
|
47
51
|
|
|
48
52
|
var _Wrapper = _interopRequireDefault(require("../Wrapper"));
|
|
@@ -69,12 +73,18 @@ var Banner = function Banner(_ref) {
|
|
|
69
73
|
var _useContext = (0, _react.useContext)(_nextjsComponents.MainContext),
|
|
70
74
|
isPreview = _useContext.isPreview;
|
|
71
75
|
|
|
76
|
+
var _checkIfLoggedIn = (0, _coreAuthUi.checkIfLoggedIn)(),
|
|
77
|
+
userId = _checkIfLoggedIn.id;
|
|
78
|
+
|
|
72
79
|
var asPath = router.asPath;
|
|
73
80
|
var parent = otherProps.parent,
|
|
74
81
|
entity = otherProps.entity,
|
|
75
82
|
sizeId = otherProps.sizeId,
|
|
76
83
|
_otherProps$propsToDi = otherProps.propsToDisplay,
|
|
77
|
-
propsToDisplay = _otherProps$propsToDi === void 0 ? [] : _otherProps$propsToDi
|
|
84
|
+
propsToDisplay = _otherProps$propsToDi === void 0 ? [] : _otherProps$propsToDi,
|
|
85
|
+
_otherProps$userProps = otherProps.userPropsToDisplay,
|
|
86
|
+
userPropsToDisplay = _otherProps$userProps === void 0 ? [] : _otherProps$userProps;
|
|
87
|
+
var userQuery = (0, _helpers.buildUserQuery)(userPropsToDisplay);
|
|
78
88
|
var itemEntity = parent.itemEntity;
|
|
79
89
|
|
|
80
90
|
var _useQuery = (0, _client.useQuery)(_query.getSingleEntitySchema, {
|
|
@@ -86,7 +96,18 @@ var Banner = function Banner(_ref) {
|
|
|
86
96
|
error = _useQuery.error,
|
|
87
97
|
loading = _useQuery.loading;
|
|
88
98
|
|
|
89
|
-
|
|
99
|
+
var _useQuery2 = (0, _client.useQuery)((0, _query.getUser)(userQuery), {
|
|
100
|
+
variables: {
|
|
101
|
+
id: userId
|
|
102
|
+
},
|
|
103
|
+
skip: !userPropsToDisplay.length || !userId
|
|
104
|
+
}),
|
|
105
|
+
_useQuery2$data = _useQuery2.data;
|
|
106
|
+
|
|
107
|
+
_useQuery2$data = _useQuery2$data === void 0 ? {} : _useQuery2$data;
|
|
108
|
+
var userData = _useQuery2$data.getUser,
|
|
109
|
+
userLoading = _useQuery2.loading;
|
|
110
|
+
if (loading || userLoading) return '';
|
|
90
111
|
if (error) return error.message;
|
|
91
112
|
if (!data) return null;
|
|
92
113
|
if (!sizeId) return null;
|
|
@@ -95,6 +116,7 @@ var Banner = function Banner(_ref) {
|
|
|
95
116
|
var propertiesToDisplay = _ref2.propertiesToDisplay;
|
|
96
117
|
return propertiesToDisplay;
|
|
97
118
|
})) : []);
|
|
119
|
+
var userPropsData = (0, _helpers.buildPropsData)(userData, userPropsToDisplay);
|
|
98
120
|
|
|
99
121
|
var _getEntityRenderProps = (0, _getEntityRenderProps2["default"])(queryProps, data, isPreview),
|
|
100
122
|
actionKey = _getEntityRenderProps.actionKey,
|
|
@@ -109,7 +131,8 @@ var Banner = function Banner(_ref) {
|
|
|
109
131
|
}, otherProps, {
|
|
110
132
|
action: action,
|
|
111
133
|
actionKey: actionKey,
|
|
112
|
-
asPath: asPath
|
|
134
|
+
asPath: asPath,
|
|
135
|
+
userPropsData: userPropsData
|
|
113
136
|
})));
|
|
114
137
|
};
|
|
115
138
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Banner/Banner.js"],"names":["Banner","type","otherProps","router","MainContext","isPreview","asPath","parent","entity","sizeId","propsToDisplay","itemEntity","getSingleEntitySchema","variables","
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Banner/Banner.js"],"names":["Banner","type","otherProps","router","MainContext","isPreview","userId","id","asPath","parent","entity","sizeId","propsToDisplay","userPropsToDisplay","userQuery","itemEntity","getSingleEntitySchema","variables","data","error","loading","skip","length","userData","getUser","userLoading","message","modifiers","queryProps","map","propertiesToDisplay","userPropsData","actionKey","action","bannerKey","propTypes","PropTypes","string","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,OAA6B;AAAA,MAA1BC,IAA0B,QAA1BA,IAA0B;AAAA,MAAjBC,UAAiB;AAC1C,MAAMC,MAAM,GAAG,wBAAf;;AACA,oBAAsB,uBAAWC,6BAAX,CAAtB;AAAA,MAAQC,SAAR,eAAQA,SAAR;;AACA,yBAAuB,kCAAvB;AAAA,MAAYC,MAAZ,oBAAQC,EAAR;;AACA,MAAQC,MAAR,GAAmBL,MAAnB,CAAQK,MAAR;AACA,MAAQC,MAAR,GAAiFP,UAAjF,CAAQO,MAAR;AAAA,MAAgBC,MAAhB,GAAiFR,UAAjF,CAAgBQ,MAAhB;AAAA,MAAwBC,MAAxB,GAAiFT,UAAjF,CAAwBS,MAAxB;AAAA,8BAAiFT,UAAjF,CAAgCU,cAAhC;AAAA,MAAgCA,cAAhC,sCAAiD,EAAjD;AAAA,8BAAiFV,UAAjF,CAAqDW,kBAArD;AAAA,MAAqDA,kBAArD,sCAA0E,EAA1E;AACA,MAAMC,SAAS,GAAG,6BAAeD,kBAAf,CAAlB;AACA,MAAQE,UAAR,GAAuBN,MAAvB,CAAQM,UAAR;;AACA,kBAAiC,sBAASC,4BAAT,EAAgC;AAC/DC,IAAAA,SAAS,EAAE;AAAEV,MAAAA,EAAE,EAAEG,MAAM,IAAIK;AAAhB;AADoD,GAAhC,CAAjC;AAAA,MAAQG,IAAR,aAAQA,IAAR;AAAA,MAAcC,KAAd,aAAcA,KAAd;AAAA,MAAqBC,OAArB,aAAqBA,OAArB;;AAGA,mBAAmE,sBAAS,oBAAQN,SAAR,CAAT,EAA6B;AAC9FG,IAAAA,SAAS,EAAE;AAAEV,MAAAA,EAAE,EAAED;AAAN,KADmF;AAE9Fe,IAAAA,IAAI,EAAE,CAACR,kBAAkB,CAACS,MAApB,IAA8B,CAAChB;AAFyD,GAA7B,CAAnE;AAAA,mCAAQY,IAAR;;AAAA,iDAAsC,EAAtC;AAAA,MAAyBK,QAAzB,mBAAgBC,OAAhB;AAAA,MAAmDC,WAAnD,cAA0CL,OAA1C;AAKA,MAAIA,OAAO,IAAIK,WAAf,EAA4B,OAAO,EAAP;AAC5B,MAAIN,KAAJ,EAAW,OAAOA,KAAK,CAACO,OAAb;AACX,MAAI,CAACR,IAAL,EAAW,OAAO,IAAP;AACX,MAAI,CAACP,MAAL,EAAa,OAAO,IAAP;AAEb,MAAMgB,SAAS,GAAG,8BAAkB,QAAlB,EAA4BzB,UAA5B,CAAlB;AACA,MAAM0B,UAAU,GAAG,iCACjBV,IADiB,EAEjBN,cAAc,CAACU,MAAf,GACI,wBAAQV,cAAc,CAACiB,GAAf,CAAmB;AAAA,QAAGC,mBAAH,SAAGA,mBAAH;AAAA,WAA6BA,mBAA7B;AAAA,GAAnB,CAAR,CADJ,GAEI,EAJa,CAAnB;AAOA,MAAMC,aAAa,GAAG,6BAAeR,QAAf,EAAyBV,kBAAzB,CAAtB;;AACA,8BAA8B,uCAAqBe,UAArB,EAAiCV,IAAjC,EAAuCb,SAAvC,CAA9B;AAAA,MAAQ2B,SAAR,yBAAQA,SAAR;AAAA,MAAmBC,MAAnB,yBAAmBA,MAAnB;;AACA,MAAMC,SAAS,aAAMvB,MAAN,SAAeH,MAAf,CAAf;AAEA,sBACE,gCAAC,mBAAD;AAAS,IAAA,SAAS,EAAEP,IAApB;AAA0B,IAAA,SAAS,EAAE0B;AAArC,kBACE,gCAAC,wBAAD;AACE,IAAA,GAAG,EAAEO;AADP,KAEMhC,UAFN;AAGE,IAAA,MAAM,EAAE+B,MAHV;AAIE,IAAA,SAAS,EAAED,SAJb;AAKE,IAAA,MAAM,EAAExB,MALV;AAME,IAAA,aAAa,EAAEuB;AANjB,KADF,CADF;AAYD,CA7CD;;AA+CA/B,MAAM,CAACmC,SAAP,GAAmB;AACjBlC,EAAAA,IAAI,EAAEmC,sBAAUC;AADC,CAAnB;AAIArC,MAAM,CAACsC,YAAP,GAAsB;AACpBrC,EAAAA,IAAI,EAAE;AADc,CAAtB;eAIeD,M","sourcesContent":["import React, { useContext } from 'react';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { checkIfLoggedIn } from '@blaze-cms/core-auth-ui';\nimport PropTypes from 'prop-types';\nimport flatten from 'lodash.flatten';\nimport { useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { buildUserQuery, buildPropsData } from './helpers';\nimport { getSingleEntitySchema, getUser } from '../../application/query';\nimport Wrapper from '../Wrapper';\nimport BannerRender from './BannerRender';\nimport buildPropsQuery from '../../helpers/build-props-query';\nimport { getClassModifiers } from '../../utils';\nimport getEntityRenderProps from '../../helpers/get-entity-render-props';\n\nconst Banner = ({ type, ...otherProps }) => {\n const router = useRouter();\n const { isPreview } = useContext(MainContext);\n const { id: userId } = checkIfLoggedIn();\n const { asPath } = router;\n const { parent, entity, sizeId, propsToDisplay = [], userPropsToDisplay = [] } = otherProps;\n const userQuery = buildUserQuery(userPropsToDisplay);\n const { itemEntity } = parent;\n const { data, error, loading } = useQuery(getSingleEntitySchema, {\n variables: { id: entity || itemEntity }\n });\n const { data: { getUser: userData } = {}, loading: userLoading } = useQuery(getUser(userQuery), {\n variables: { id: userId },\n skip: !userPropsToDisplay.length || !userId\n });\n\n if (loading || userLoading) return '';\n if (error) return error.message;\n if (!data) return null;\n if (!sizeId) return null;\n\n const modifiers = getClassModifiers('banner', otherProps);\n const queryProps = buildPropsQuery(\n data,\n propsToDisplay.length\n ? flatten(propsToDisplay.map(({ propertiesToDisplay }) => propertiesToDisplay))\n : []\n );\n\n const userPropsData = buildPropsData(userData, userPropsToDisplay);\n const { actionKey, action } = getEntityRenderProps(queryProps, data, isPreview);\n const bannerKey = `${sizeId}${asPath}`;\n\n return (\n <Wrapper className={type} modifiers={modifiers}>\n <BannerRender\n key={bannerKey}\n {...otherProps}\n action={action}\n actionKey={actionKey}\n asPath={asPath}\n userPropsData={userPropsData}\n />\n </Wrapper>\n );\n};\n\nBanner.propTypes = {\n type: PropTypes.string\n};\n\nBanner.defaultProps = {\n type: 'banner'\n};\n\nexport default Banner;\n"],"file":"Banner.js"}
|
|
@@ -47,7 +47,7 @@ var _HOC = require("../../HOC");
|
|
|
47
47
|
|
|
48
48
|
var _AdSlotRender = _interopRequireDefault(require("./AdSlotRender"));
|
|
49
49
|
|
|
50
|
-
var _excluded = ["baseAdunit", "adunit", "sizeId", "sizes", "propsToDisplay", "entity", "targetings", "parent", "asPath", "action", "actionKey", "cardBannerIndex"];
|
|
50
|
+
var _excluded = ["baseAdunit", "adunit", "sizeId", "sizes", "propsToDisplay", "entity", "targetings", "parent", "asPath", "action", "actionKey", "cardBannerIndex", "userPropsData"];
|
|
51
51
|
|
|
52
52
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
53
53
|
|
|
@@ -66,6 +66,7 @@ var BannerRender = function BannerRender(_ref) {
|
|
|
66
66
|
action = _ref.action,
|
|
67
67
|
actionKey = _ref.actionKey,
|
|
68
68
|
cardBannerIndex = _ref.cardBannerIndex,
|
|
69
|
+
userPropsData = _ref.userPropsData,
|
|
69
70
|
otherProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
70
71
|
var id = otherProps.id;
|
|
71
72
|
var itemId = parent.itemId;
|
|
@@ -118,7 +119,7 @@ var BannerRender = function BannerRender(_ref) {
|
|
|
118
119
|
var shouldShowBanner = parsedAdunit && parsedSizes && !!parsedSizes.length && isContextualTargetingReady;
|
|
119
120
|
var customTargetings = (0, _helpers.setCustomTargetings)(targetings, cardBannerIndex);
|
|
120
121
|
|
|
121
|
-
var targetingArguments = _objectSpread(_objectSpread({}, parsedTargetings), customTargetings);
|
|
122
|
+
var targetingArguments = _objectSpread(_objectSpread(_objectSpread({}, parsedTargetings), customTargetings), userPropsData);
|
|
122
123
|
|
|
123
124
|
return /*#__PURE__*/_react["default"].createElement(_AdSlotRender["default"], {
|
|
124
125
|
shouldShowBanner: !!shouldShowBanner,
|
|
@@ -142,7 +143,8 @@ BannerRender.propTypes = {
|
|
|
142
143
|
entity: _propTypes["default"].string,
|
|
143
144
|
targetings: _propTypes["default"].string,
|
|
144
145
|
sizes: _propTypes["default"].string,
|
|
145
|
-
cardBannerIndex: _propTypes["default"].number
|
|
146
|
+
cardBannerIndex: _propTypes["default"].number,
|
|
147
|
+
userPropsData: _propTypes["default"].object
|
|
146
148
|
};
|
|
147
149
|
BannerRender.defaultProps = {
|
|
148
150
|
adunit: '',
|
|
@@ -152,7 +154,8 @@ BannerRender.defaultProps = {
|
|
|
152
154
|
entity: '',
|
|
153
155
|
targetings: '',
|
|
154
156
|
sizes: '',
|
|
155
|
-
cardBannerIndex: null
|
|
157
|
+
cardBannerIndex: null,
|
|
158
|
+
userPropsData: {}
|
|
156
159
|
};
|
|
157
160
|
|
|
158
161
|
var _default = (0, _HOC.withTitle)(BannerRender);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Banner/BannerRender.js"],"names":["BannerRender","baseAdunit","adunit","sizeId","sizes","propsToDisplay","entity","targetings","parent","asPath","action","actionKey","cardBannerIndex","otherProps","id","itemId","variables","where","skip","data","entityRecordData","GET_BANNER","BANNER_QUERY_PROPS","bannerData","COUNT_CONTENT_HIERARCHIES","parentId","childEntity","_ilike","PUBLISHED","parsedTargetings","entityData","bannerSizes","sizeMapping","parsedSizes","countContentHierarchies","parsedAdunit","isContextualTargetingSet","length","Object","keys","isContextualTargetingReady","shouldShowBanner","customTargetings","targetingArguments","propTypes","PropTypes","object","isRequired","string","array","number","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AAOA;;AAMA;;AACA;;;;;;;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Banner/BannerRender.js"],"names":["BannerRender","baseAdunit","adunit","sizeId","sizes","propsToDisplay","entity","targetings","parent","asPath","action","actionKey","cardBannerIndex","userPropsData","otherProps","id","itemId","variables","where","skip","data","entityRecordData","GET_BANNER","BANNER_QUERY_PROPS","bannerData","COUNT_CONTENT_HIERARCHIES","parentId","childEntity","_ilike","PUBLISHED","parsedTargetings","entityData","bannerSizes","sizeMapping","parsedSizes","countContentHierarchies","parsedAdunit","isContextualTargetingSet","length","Object","keys","isContextualTargetingReady","shouldShowBanner","customTargetings","targetingArguments","propTypes","PropTypes","object","isRequired","string","array","number","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useQuery } from '@apollo/client';\n\nimport { generateSingleItemQuery, getCount } from '../../application/query';\nimport {\n buildBannerSizes,\n buildContextualTargeting,\n buildParsedAdunit,\n buildSizeMapping,\n setCustomTargetings\n} from './helpers';\nimport {\n BANNER_QUERY_PROPS,\n COUNT_CONTENT_HIERARCHIES,\n GET_BANNER,\n PUBLISHED\n} from '../../constants';\nimport { withTitle } from '../../HOC';\nimport AdSlotRender from './AdSlotRender';\n\nconst BannerRender = ({\n baseAdunit,\n adunit,\n sizeId,\n sizes,\n propsToDisplay,\n entity,\n targetings,\n parent,\n asPath,\n action,\n actionKey,\n cardBannerIndex,\n userPropsData,\n ...otherProps\n}) => {\n const { id } = otherProps;\n const { itemId } = parent;\n\n const { data: entityRecordData = {} } = useQuery(action, {\n variables: { where: { id: id || itemId } },\n skip: id && id !== itemId\n });\n\n const { data: bannerData = {} } = useQuery(\n generateSingleItemQuery(GET_BANNER, BANNER_QUERY_PROPS),\n {\n variables: { id: sizeId },\n skip: !sizeId\n }\n );\n\n const { data = {} } = useQuery(getCount(COUNT_CONTENT_HIERARCHIES), {\n variables: {\n where: {\n parentId: id || itemId,\n childEntity: {\n _ilike: `${PUBLISHED}_%`\n }\n }\n }\n });\n\n const parsedTargetings = buildContextualTargeting(actionKey, entityRecordData, propsToDisplay);\n const { entityData } = bannerData;\n const { sizes: bannerSizes } = entityData || {};\n\n const sizeMapping = buildSizeMapping(sizeId, bannerSizes);\n const parsedSizes = buildBannerSizes(sizeId, bannerSizes, sizes);\n\n const { countContentHierarchies } = data;\n\n const parsedAdunit = buildParsedAdunit(asPath, countContentHierarchies, baseAdunit, adunit);\n const isContextualTargetingSet =\n propsToDisplay.length && parsedTargetings && Object.keys(parsedTargetings).length;\n const isContextualTargetingReady = isContextualTargetingSet || !propsToDisplay.length;\n const shouldShowBanner =\n parsedAdunit && parsedSizes && !!parsedSizes.length && isContextualTargetingReady;\n\n const customTargetings = setCustomTargetings(targetings, cardBannerIndex);\n\n const targetingArguments = { ...parsedTargetings, ...customTargetings, ...userPropsData };\n\n return (\n <AdSlotRender\n shouldShowBanner={!!shouldShowBanner}\n sizeMapping={sizeMapping}\n sizeId={sizeId}\n parsedAdunit={parsedAdunit}\n parsedSizes={parsedSizes}\n targetingArguments={targetingArguments}\n />\n );\n};\n\nBannerRender.propTypes = {\n parent: PropTypes.object.isRequired,\n asPath: PropTypes.string.isRequired,\n action: PropTypes.object.isRequired,\n actionKey: PropTypes.string.isRequired,\n adunit: PropTypes.string,\n baseAdunit: PropTypes.string,\n sizeId: PropTypes.string,\n propsToDisplay: PropTypes.array,\n entity: PropTypes.string,\n targetings: PropTypes.string,\n sizes: PropTypes.string,\n cardBannerIndex: PropTypes.number,\n userPropsData: PropTypes.object\n};\n\nBannerRender.defaultProps = {\n adunit: '',\n baseAdunit: '',\n sizeId: '',\n propsToDisplay: [],\n entity: '',\n targetings: '',\n sizes: '',\n cardBannerIndex: null,\n userPropsData: {}\n};\n\nexport default withTitle(BannerRender);\n"],"file":"BannerRender.js"}
|
|
@@ -15,7 +15,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", {
|
|
16
16
|
value: true
|
|
17
17
|
});
|
|
18
|
-
exports.setCustomTargetings = exports.getParsedSizes = exports.getMinBannerHeight = exports.getMaxBannerHeight = exports.buildSizeMapping = exports.buildParsedAdunit = exports.buildContextualTargeting = exports.buildBannerSizes = void 0;
|
|
18
|
+
exports.setCustomTargetings = exports.getParsedSizes = exports.getMinBannerHeight = exports.getMaxBannerHeight = exports.buildUserQuery = exports.buildSizeMapping = exports.buildPropsData = exports.buildParsedAdunit = exports.buildContextualTargeting = exports.buildBannerSizes = void 0;
|
|
19
19
|
|
|
20
20
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
21
21
|
|
|
@@ -59,11 +59,9 @@ require("core-js/modules/es.array.reduce.js");
|
|
|
59
59
|
|
|
60
60
|
require("core-js/modules/es.array.is-array.js");
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
var _lodash = _interopRequireDefault(require("lodash.flatten"));
|
|
62
|
+
require("core-js/modules/es.array.index-of.js");
|
|
65
63
|
|
|
66
|
-
var
|
|
64
|
+
var _queryString = require("query-string");
|
|
67
65
|
|
|
68
66
|
var _constants = require("../../constants");
|
|
69
67
|
|
|
@@ -161,14 +159,8 @@ var buildContextualTargeting = function buildContextualTargeting(actionKey) {
|
|
|
161
159
|
var propsToDisplay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
162
160
|
|
|
163
161
|
if (actionKey && props[actionKey] && props[actionKey][0]) {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
propertiesToDisplay = _ref2.propertiesToDisplay;
|
|
167
|
-
var propValue = (0, _getPropValues["default"])(propertiesToDisplay, props[actionKey][0]);
|
|
168
|
-
var parsedValue = Array.isArray(propValue) ? (0, _lodash["default"])(propValue) : propValue;
|
|
169
|
-
acc[label] = parsedValue;
|
|
170
|
-
return acc;
|
|
171
|
-
}, {});
|
|
162
|
+
var data = props[actionKey][0];
|
|
163
|
+
return buildPropsData(data, propsToDisplay);
|
|
172
164
|
}
|
|
173
165
|
|
|
174
166
|
return {};
|
|
@@ -180,17 +172,17 @@ var buildSizeMapping = function buildSizeMapping(sizeId, bannerSizes) {
|
|
|
180
172
|
var sizeMapping = [];
|
|
181
173
|
|
|
182
174
|
if (sizeId && bannerSizes && bannerSizes.length) {
|
|
183
|
-
var groupedViewports = bannerSizes.reduce(function (acc,
|
|
184
|
-
var width =
|
|
185
|
-
height =
|
|
186
|
-
|
|
187
|
-
viewports =
|
|
175
|
+
var groupedViewports = bannerSizes.reduce(function (acc, _ref2) {
|
|
176
|
+
var width = _ref2.width,
|
|
177
|
+
height = _ref2.height,
|
|
178
|
+
_ref2$viewports = _ref2.viewports,
|
|
179
|
+
viewports = _ref2$viewports === void 0 ? [] : _ref2$viewports;
|
|
188
180
|
var size = width && height ? [width, height] : null; // if one dimension is falsey then it shouldn't display
|
|
189
181
|
|
|
190
182
|
if (viewports) {
|
|
191
|
-
viewports.forEach(function (
|
|
192
|
-
var viewportWidth =
|
|
193
|
-
viewportHeight =
|
|
183
|
+
viewports.forEach(function (_ref3) {
|
|
184
|
+
var viewportWidth = _ref3.width,
|
|
185
|
+
viewportHeight = _ref3.height;
|
|
194
186
|
var key = "".concat(viewportWidth || 0, "x").concat(viewportHeight || 0);
|
|
195
187
|
acc[key] = acc[key] || [];
|
|
196
188
|
if (size) acc[key].push(size);
|
|
@@ -240,4 +232,72 @@ var getMinBannerHeight = function getMinBannerHeight(bannerSizes) {
|
|
|
240
232
|
};
|
|
241
233
|
|
|
242
234
|
exports.getMinBannerHeight = getMinBannerHeight;
|
|
235
|
+
|
|
236
|
+
var buildUserQuery = function buildUserQuery(userProps) {
|
|
237
|
+
if (!userProps || !userProps.length) return '';
|
|
238
|
+
var basicProps = [];
|
|
239
|
+
var nestedProps = {};
|
|
240
|
+
userProps.forEach(function (_ref4) {
|
|
241
|
+
var propertiesToDisplay = _ref4.propertiesToDisplay;
|
|
242
|
+
|
|
243
|
+
var _propertiesToDisplay = (0, _slicedToArray2["default"])(propertiesToDisplay, 1),
|
|
244
|
+
propKey = _propertiesToDisplay[0];
|
|
245
|
+
|
|
246
|
+
if (!propKey || propKey === 'id') return;
|
|
247
|
+
|
|
248
|
+
if (propKey.indexOf('.') !== -1) {
|
|
249
|
+
var _propKey$split = propKey.split('.'),
|
|
250
|
+
_propKey$split2 = (0, _slicedToArray2["default"])(_propKey$split, 2),
|
|
251
|
+
baseProp = _propKey$split2[0],
|
|
252
|
+
nestedProp = _propKey$split2[1];
|
|
253
|
+
|
|
254
|
+
if (nestedProps[baseProp]) nestedProps[baseProp].push(nestedProp);else nestedProps[baseProp] = [nestedProp];
|
|
255
|
+
} else basicProps.push(propKey);
|
|
256
|
+
});
|
|
257
|
+
Object.keys(nestedProps).forEach(function (nestedKey) {
|
|
258
|
+
var nested = nestedProps[nestedKey];
|
|
259
|
+
basicProps.push(nestedKey);
|
|
260
|
+
basicProps.push('{');
|
|
261
|
+
nested.forEach(function (prop) {
|
|
262
|
+
return basicProps.push(prop);
|
|
263
|
+
});
|
|
264
|
+
basicProps.push('}');
|
|
265
|
+
});
|
|
266
|
+
return basicProps.join(' ');
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
exports.buildUserQuery = buildUserQuery;
|
|
270
|
+
|
|
271
|
+
var buildPropsData = function buildPropsData(data, props) {
|
|
272
|
+
if (!data || !props.length) return {};
|
|
273
|
+
var propsWithData = {};
|
|
274
|
+
props.forEach(function (_ref5) {
|
|
275
|
+
var propertiesToDisplay = _ref5.propertiesToDisplay,
|
|
276
|
+
label = _ref5.label;
|
|
277
|
+
|
|
278
|
+
var _propertiesToDisplay2 = (0, _slicedToArray2["default"])(propertiesToDisplay, 1),
|
|
279
|
+
key = _propertiesToDisplay2[0];
|
|
280
|
+
|
|
281
|
+
var parsedKey = key.split('.');
|
|
282
|
+
var value = getNestedValue(parsedKey, data);
|
|
283
|
+
var labelToUse = label || key;
|
|
284
|
+
propsWithData[labelToUse] = value;
|
|
285
|
+
});
|
|
286
|
+
return propsWithData;
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
exports.buildPropsData = buildPropsData;
|
|
290
|
+
|
|
291
|
+
var parseArrayValues = function parseArrayValues(arr, key) {
|
|
292
|
+
return arr.map(function (obj) {
|
|
293
|
+
return obj[key];
|
|
294
|
+
}).filter(Boolean).join(', ');
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
var getNestedValue = function getNestedValue(keys, object) {
|
|
298
|
+
var key = keys.shift();
|
|
299
|
+
var nestedValue = Array.isArray(object) ? parseArrayValues(object, key) : object[key];
|
|
300
|
+
if (!nestedValue) return null;
|
|
301
|
+
return keys.length ? getNestedValue(keys, nestedValue) : nestedValue;
|
|
302
|
+
};
|
|
243
303
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Banner/helpers.js"],"names":["getParsedSizes","sizes","sanitizedSizes","replace","toLowerCase","sizeGroups","split","map","group","Number","addPosnToTargetings","targetings","index","posn","buildTargetingValue","valueTargeting","includes","char","setCustomTargetings","cardBannerIndex","bannerTargetings","updatedTargetings","isValidTargeting","customTargeting","splitTargeting","Object","keys","forEach","key","keyTargeting","buildParsedAdunit","path","countContentHierarchies","baseAdunit","adunit","isInteger","base","process","env","DFP_BASE_ADUNIT","hasChildren","url","urlParts","filter","Boolean","urlPart","slice","length","join","endAdunit","END_ADUNIT","getBannerSizes","sizeId","bannerSizes","width","height","buildBannerSizes","parsedSizes","buildContextualTargeting","actionKey","props","propsToDisplay","reduce","acc","label","propertiesToDisplay","propValue","parsedValue","Array","isArray","buildSizeMapping","sizeMapping","groupedViewports","viewports","size","viewportWidth","viewportHeight","push","keyGroupedViewport","viewport","getMaxBannerHeight","Math","max","o","MAX_BANNER_HEIGHT","getMinBannerHeight","min","MIN_BANNER_HEIGHT"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AACrC,MAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B,OAAO,EAAP;AAE/B,MAAMC,cAAc,GAAGD,KAAK,CAACE,OAAN,CAAc,KAAd,EAAqB,EAArB,EAAyBC,WAAzB,EAAvB;AACA,MAAMC,UAAU,GAAGH,cAAc,CAACI,KAAf,CAAqB,GAArB,CAAnB;AAEA,SAAOD,UAAU,CAACE,GAAX,CAAe,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,KAAN,CAAY,GAAZ,EAAiBC,GAAjB,CAAqBE,MAArB,CAAJ;AAAA,GAApB,CAAP;AACD,CAPD;;;;AASA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,UAAD,EAAaC,KAAb,EAAuB;AACjD,MAAMC,IAAI,kBAAWD,KAAX,CAAV;AACA,SAAOD,UAAU,aAAMA,UAAN,cAAoBE,IAApB,IAA6BA,IAA9C;AACD,CAHD;;AAKA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAC,cAAc;AAAA,SACxCA,cAAc,CAACC,QAAf,CAAwB,GAAxB,KAAgCD,cAAc,CAACC,QAAf,CAAwB,GAAxB,CAAhC,GACID,cAAc,CAACZ,OAAf,CAAuB,YAAvB,EAAqC,UAAAc,KAAI;AAAA,WAAKA,KAAI,KAAK,GAAT,GAAe,GAAf,GAAqB,EAA1B;AAAA,GAAzC,EAAwEX,KAAxE,CAA8E,GAA9E,CADJ,GAEIS,cAHoC;AAAA,CAA1C;;AAKA,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACP,UAAD,EAAaQ,eAAb,EAAiC;AAC3D,MAAIC,gBAAgB,GAAG,EAAvB;AAEA,MAAMC,iBAAiB,GAAGF,eAAe,GACrCT,mBAAmB,CAACC,UAAD,EAAaQ,eAAb,CADkB,GAErCR,UAFJ;AAIA,MAAMW,gBAAgB,GAAGD,iBAAiB,IAAI,OAAOA,iBAAP,KAA6B,QAA3E;;AAEA,MAAIC,gBAAJ,EAAsB;AACpB,QAAMC,eAAe,GAAG,EAAxB;AAEA,QAAIC,cAAc,GAAGH,iBAAiB,CAACf,KAAlB,CAAwB,GAAxB,CAArB;AACAkB,IAAAA,cAAc,qBAAQA,cAAR,CAAd;AAEAC,IAAAA,MAAM,CAACC,IAAP,CAAYF,cAAZ,EAA4BG,OAA5B,CAAoC,UAAAC,GAAG,EAAI;AACzC,kCAAuCJ,cAAc,CAACI,GAAD,CAAd,CAAoBtB,KAApB,CAA0B,GAA1B,CAAvC;AAAA;AAAA,UAAOuB,YAAP;AAAA,UAAqBd,cAArB;;AAEA,UAAIc,YAAY,IAAId,cAApB,EAAoC;AAClCQ,QAAAA,eAAe,CAACM,YAAD,CAAf,GAAgCf,mBAAmB,CAACC,cAAD,CAAnD;AACD;AACF,KAND;AAOAK,IAAAA,gBAAgB,mCAAQA,gBAAR,GAA6BG,eAA7B,CAAhB;AACD;;AAED,SAAOH,gBAAP;AACD,CA1BD;;;;AA4BA,IAAMU,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,IAAD,EAAOC,uBAAP,EAAgCC,UAAhC,EAA4CC,MAA5C,EAAuD;AAC/E,MAAI,CAACzB,MAAM,CAAC0B,SAAP,CAAiBH,uBAAjB,CAAL,EAAgD,OAAO,EAAP;AAEhD,MAAMI,IAAI,GAAGH,UAAU,IAAII,OAAO,CAACC,GAAR,CAAYC,eAAvC;AACA,MAAMC,WAAW,GAAGR,uBAAuB,KAAK,CAAhD;;AACA,kBAAgB,2BAASD,IAAT,CAAhB;AAAA,MAAQU,GAAR,aAAQA,GAAR;;AACA,MAAIC,QAAQ,GAAGD,GAAG,CACfnC,KADY,CACN,GADM,EAEZqC,MAFY,CAELC,OAFK,EAGZrC,GAHY,CAGR,UAAAsC,OAAO;AAAA,WAAIA,OAAO,CAAC1C,OAAR,CAAgB,IAAhB,EAAsB,EAAtB,CAAJ;AAAA,GAHC,CAAf;AAIAuC,EAAAA,QAAQ,GAAGA,QAAQ,CAACI,KAAT,CAAe,CAAf,EAAkBN,WAAW,GAAGE,QAAQ,CAACK,MAAZ,GAAqBL,QAAQ,CAACK,MAAT,GAAkB,CAApE,EAAuEC,IAAvE,CAA4E,GAA5E,CAAX;AACAN,EAAAA,QAAQ,GAAGA,QAAQ,aAAMA,QAAN,SAAoBA,QAAvC;AACA,MAAMO,SAAS,GAAGf,MAAM,IAAIgB,qBAA5B;AAEA,mBAAUd,IAAV,cAAkBM,QAAlB,SAA6BO,SAA7B;AACD,CAfD;;;;AAiBA,IAAME,cAAc,GAAG,SAAjBA,cAAiB,CAACC,MAAD,EAASC,WAAT;AAAA,SACrBD,MAAM,IAAIC,WAAV,IAAyBA,WAAW,CAACN,MAArC,GACIM,WAAW,CAAC9C,GAAZ,CAAgB;AAAA,QAAG+C,KAAH,QAAGA,KAAH;AAAA,QAAUC,MAAV,QAAUA,MAAV;AAAA,WAAuB,CAACD,KAAD,EAAQC,MAAR,CAAvB;AAAA,GAAhB,CADJ,GAEI,IAHiB;AAAA,CAAvB;;AAKA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACJ,MAAD,EAASC,WAAT,EAAsBpD,KAAtB,EAAgC;AACvD,MAAIwD,WAAW,GAAGN,cAAc,CAACC,MAAD,EAASC,WAAT,CAAhC;AAEA,MAAI,CAACI,WAAD,IAAgBxD,KAApB,EAA2BwD,WAAW,GAAGzD,cAAc,CAACC,KAAD,CAA5B;AAE3B,SAAOwD,WAAP;AACD,CAND;;;;AAQA,IAAMC,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,SAAD,EAAgD;AAAA,MAApCC,KAAoC,uEAA5B,EAA4B;AAAA,MAAxBC,cAAwB,uEAAP,EAAO;;AAC/E,MAAIF,SAAS,IAAIC,KAAK,CAACD,SAAD,CAAlB,IAAiCC,KAAK,CAACD,SAAD,CAAL,CAAiB,CAAjB,CAArC,EAA0D;AACxD,WAAOE,cAAc,CAACC,MAAf,CAAsB,UAACC,GAAD,SAAyC;AAAA,UAAjCC,KAAiC,SAAjCA,KAAiC;AAAA,UAA1BC,mBAA0B,SAA1BA,mBAA0B;AACpE,UAAMC,SAAS,GAAG,+BAAcD,mBAAd,EAAmCL,KAAK,CAACD,SAAD,CAAL,CAAiB,CAAjB,CAAnC,CAAlB;AACA,UAAMQ,WAAW,GAAGC,KAAK,CAACC,OAAN,CAAcH,SAAd,IAA2B,wBAAQA,SAAR,CAA3B,GAAgDA,SAApE;AACAH,MAAAA,GAAG,CAACC,KAAD,CAAH,GAAaG,WAAb;AACA,aAAOJ,GAAP;AACD,KALM,EAKJ,EALI,CAAP;AAMD;;AACD,SAAO,EAAP;AACD,CAVD;;;;AAYA,IAAMO,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAClB,MAAD,EAASC,WAAT,EAAyB;AAChD,MAAIkB,WAAW,GAAG,EAAlB;;AAEA,MAAInB,MAAM,IAAIC,WAAV,IAAyBA,WAAW,CAACN,MAAzC,EAAiD;AAC/C,QAAMyB,gBAAgB,GAAGnB,WAAW,CAACS,MAAZ,CAAmB,UAACC,GAAD,SAA4C;AAAA,UAApCT,KAAoC,SAApCA,KAAoC;AAAA,UAA7BC,MAA6B,SAA7BA,MAA6B;AAAA,kCAArBkB,SAAqB;AAAA,UAArBA,SAAqB,gCAAT,EAAS;AACtF,UAAMC,IAAI,GAAGpB,KAAK,IAAIC,MAAT,GAAkB,CAACD,KAAD,EAAQC,MAAR,CAAlB,GAAoC,IAAjD,CADsF,CAC/B;;AAEvD,UAAIkB,SAAJ,EAAe;AACbA,QAAAA,SAAS,CAAC9C,OAAV,CAAkB,iBAAsD;AAAA,cAA5CgD,aAA4C,SAAnDrB,KAAmD;AAAA,cAArBsB,cAAqB,SAA7BrB,MAA6B;AACtE,cAAM3B,GAAG,aAAM+C,aAAa,IAAI,CAAvB,cAA4BC,cAAc,IAAI,CAA9C,CAAT;AACAb,UAAAA,GAAG,CAACnC,GAAD,CAAH,GAAWmC,GAAG,CAACnC,GAAD,CAAH,IAAY,EAAvB;AACA,cAAI8C,IAAJ,EAAUX,GAAG,CAACnC,GAAD,CAAH,CAASiD,IAAT,CAAcH,IAAd;AACX,SAJD;AAKD;;AACD,aAAOX,GAAP;AACD,KAXwB,EAWtB,EAXsB,CAAzB;AAaAQ,IAAAA,WAAW,GAAG9C,MAAM,CAACC,IAAP,CAAY8C,gBAAZ,EAA8BjE,GAA9B,CAAkC,UAAAuE,kBAAkB,EAAI;AACpE,kCAAwCA,kBAAkB,CAACxE,KAAnB,CAAyB,GAAzB,CAAxC;AAAA;AAAA,UAAOqE,aAAP;AAAA,UAAsBC,cAAtB;;AACA,aAAO;AACLG,QAAAA,QAAQ,EAAE,CAACtE,MAAM,CAACkE,aAAD,CAAP,EAAwBlE,MAAM,CAACmE,cAAD,CAA9B,CADL;AAEL3E,QAAAA,KAAK,EAAEuE,gBAAgB,CAACM,kBAAD;AAFlB,OAAP;AAID,KANa,CAAd;AAOD;;AAED,SAAOP,WAAP;AACD,CA3BD;;;;AA6BA,IAAMS,kBAAkB,GAAG,SAArBA,kBAAqB,CAAA3B,WAAW,EAAI;AACxC,MAAIe,KAAK,CAACC,OAAN,CAAchB,WAAd,KAA8BA,WAAW,CAACN,MAAZ,GAAqB,CAAvD,EAA0D;AACxD,WAAOkC,IAAI,CAACC,GAAL,OAAAD,IAAI,sCAAQ5B,WAAW,CAAC9C,GAAZ,CAAgB,UAAA4E,CAAC;AAAA,aAAIA,CAAC,CAAC5B,MAAN;AAAA,KAAjB,CAAR,EAAX;AACD;;AACD,SAAO6B,4BAAP;AACD,CALD;;;;AAOA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAhC,WAAW,EAAI;AACxC,MAAIe,KAAK,CAACC,OAAN,CAAchB,WAAd,KAA8BA,WAAW,CAACN,MAAZ,GAAqB,CAAvD,EAA0D;AACxD,WAAOkC,IAAI,CAACK,GAAL,OAAAL,IAAI,sCAAQ5B,WAAW,CAAC9C,GAAZ,CAAgB,UAAA4E,CAAC;AAAA,aAAIA,CAAC,CAAC5B,MAAN;AAAA,KAAjB,CAAR,EAAX;AACD;;AACD,SAAOgC,4BAAP;AACD,CALD","sourcesContent":["import { parseUrl } from 'query-string';\nimport flatten from 'lodash.flatten';\nimport getPropValues from '../../helpers/get-prop-values';\nimport { END_ADUNIT, MAX_BANNER_HEIGHT, MIN_BANNER_HEIGHT } from '../../constants';\n\nconst getParsedSizes = (sizes = '') => {\n if (typeof sizes !== 'string') return [];\n\n const sanitizedSizes = sizes.replace(/\\s+/, '').toLowerCase();\n const sizeGroups = sanitizedSizes.split(',');\n\n return sizeGroups.map(group => group.split('x').map(Number));\n};\n\nconst addPosnToTargetings = (targetings, index) => {\n const posn = `posn=${index}`;\n return targetings ? `${targetings},${posn}` : posn;\n};\n\nconst buildTargetingValue = valueTargeting =>\n valueTargeting.includes('[') && valueTargeting.includes(']')\n ? valueTargeting.replace(/\\;|\\[|\\]/gm, char => (char === ';' ? ',' : '')).split(',')\n : valueTargeting;\n\nconst setCustomTargetings = (targetings, cardBannerIndex) => {\n let bannerTargetings = {};\n\n const updatedTargetings = cardBannerIndex\n ? addPosnToTargetings(targetings, cardBannerIndex)\n : targetings;\n\n const isValidTargeting = updatedTargetings && typeof updatedTargetings === 'string';\n\n if (isValidTargeting) {\n const customTargeting = {};\n\n let splitTargeting = updatedTargetings.split(',');\n splitTargeting = { ...splitTargeting };\n\n Object.keys(splitTargeting).forEach(key => {\n const [keyTargeting, valueTargeting] = splitTargeting[key].split('=');\n\n if (keyTargeting && valueTargeting) {\n customTargeting[keyTargeting] = buildTargetingValue(valueTargeting);\n }\n });\n bannerTargetings = { ...bannerTargetings, ...customTargeting };\n }\n\n return bannerTargetings;\n};\n\nconst buildParsedAdunit = (path, countContentHierarchies, baseAdunit, adunit) => {\n if (!Number.isInteger(countContentHierarchies)) return '';\n\n const base = baseAdunit || process.env.DFP_BASE_ADUNIT;\n const hasChildren = countContentHierarchies !== 0;\n const { url } = parseUrl(path);\n let urlParts = url\n .split('/')\n .filter(Boolean)\n .map(urlPart => urlPart.replace(/-/g, ''));\n urlParts = urlParts.slice(0, hasChildren ? urlParts.length : urlParts.length - 1).join('/');\n urlParts = urlParts ? `${urlParts}/` : urlParts;\n const endAdunit = adunit || END_ADUNIT;\n\n return `${base}/${urlParts}${endAdunit}`;\n};\n\nconst getBannerSizes = (sizeId, bannerSizes) =>\n sizeId && bannerSizes && bannerSizes.length\n ? bannerSizes.map(({ width, height }) => [width, height])\n : null;\n\nconst buildBannerSizes = (sizeId, bannerSizes, sizes) => {\n let parsedSizes = getBannerSizes(sizeId, bannerSizes);\n\n if (!parsedSizes && sizes) parsedSizes = getParsedSizes(sizes);\n\n return parsedSizes;\n};\n\nconst buildContextualTargeting = (actionKey, props = {}, propsToDisplay = []) => {\n if (actionKey && props[actionKey] && props[actionKey][0]) {\n return propsToDisplay.reduce((acc, { label, propertiesToDisplay }) => {\n const propValue = getPropValues(propertiesToDisplay, props[actionKey][0]);\n const parsedValue = Array.isArray(propValue) ? flatten(propValue) : propValue;\n acc[label] = parsedValue;\n return acc;\n }, {});\n }\n return {};\n};\n\nconst buildSizeMapping = (sizeId, bannerSizes) => {\n let sizeMapping = [];\n\n if (sizeId && bannerSizes && bannerSizes.length) {\n const groupedViewports = bannerSizes.reduce((acc, { width, height, viewports = [] }) => {\n const size = width && height ? [width, height] : null; // if one dimension is falsey then it shouldn't display\n\n if (viewports) {\n viewports.forEach(({ width: viewportWidth, height: viewportHeight }) => {\n const key = `${viewportWidth || 0}x${viewportHeight || 0}`;\n acc[key] = acc[key] || [];\n if (size) acc[key].push(size);\n });\n }\n return acc;\n }, {});\n\n sizeMapping = Object.keys(groupedViewports).map(keyGroupedViewport => {\n const [viewportWidth, viewportHeight] = keyGroupedViewport.split('x');\n return {\n viewport: [Number(viewportWidth), Number(viewportHeight)],\n sizes: groupedViewports[keyGroupedViewport]\n };\n });\n }\n\n return sizeMapping;\n};\n\nconst getMaxBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.max(...bannerSizes.map(o => o.height));\n }\n return MAX_BANNER_HEIGHT;\n};\n\nconst getMinBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.min(...bannerSizes.map(o => o.height));\n }\n return MIN_BANNER_HEIGHT;\n};\n\nexport {\n getParsedSizes,\n setCustomTargetings,\n buildParsedAdunit,\n buildBannerSizes,\n buildContextualTargeting,\n buildSizeMapping,\n getMaxBannerHeight,\n getMinBannerHeight\n};\n"],"file":"helpers.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Banner/helpers.js"],"names":["getParsedSizes","sizes","sanitizedSizes","replace","toLowerCase","sizeGroups","split","map","group","Number","addPosnToTargetings","targetings","index","posn","buildTargetingValue","valueTargeting","includes","char","setCustomTargetings","cardBannerIndex","bannerTargetings","updatedTargetings","isValidTargeting","customTargeting","splitTargeting","Object","keys","forEach","key","keyTargeting","buildParsedAdunit","path","countContentHierarchies","baseAdunit","adunit","isInteger","base","process","env","DFP_BASE_ADUNIT","hasChildren","url","urlParts","filter","Boolean","urlPart","slice","length","join","endAdunit","END_ADUNIT","getBannerSizes","sizeId","bannerSizes","width","height","buildBannerSizes","parsedSizes","buildContextualTargeting","actionKey","props","propsToDisplay","data","buildPropsData","buildSizeMapping","sizeMapping","groupedViewports","reduce","acc","viewports","size","viewportWidth","viewportHeight","push","keyGroupedViewport","viewport","getMaxBannerHeight","Array","isArray","Math","max","o","MAX_BANNER_HEIGHT","getMinBannerHeight","min","MIN_BANNER_HEIGHT","buildUserQuery","userProps","basicProps","nestedProps","propertiesToDisplay","propKey","indexOf","baseProp","nestedProp","nestedKey","nested","prop","propsWithData","label","parsedKey","value","getNestedValue","labelToUse","parseArrayValues","arr","obj","object","shift","nestedValue"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AACrC,MAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B,OAAO,EAAP;AAE/B,MAAMC,cAAc,GAAGD,KAAK,CAACE,OAAN,CAAc,KAAd,EAAqB,EAArB,EAAyBC,WAAzB,EAAvB;AACA,MAAMC,UAAU,GAAGH,cAAc,CAACI,KAAf,CAAqB,GAArB,CAAnB;AAEA,SAAOD,UAAU,CAACE,GAAX,CAAe,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,KAAN,CAAY,GAAZ,EAAiBC,GAAjB,CAAqBE,MAArB,CAAJ;AAAA,GAApB,CAAP;AACD,CAPD;;;;AASA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,UAAD,EAAaC,KAAb,EAAuB;AACjD,MAAMC,IAAI,kBAAWD,KAAX,CAAV;AACA,SAAOD,UAAU,aAAMA,UAAN,cAAoBE,IAApB,IAA6BA,IAA9C;AACD,CAHD;;AAKA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAC,cAAc;AAAA,SACxCA,cAAc,CAACC,QAAf,CAAwB,GAAxB,KAAgCD,cAAc,CAACC,QAAf,CAAwB,GAAxB,CAAhC,GACID,cAAc,CAACZ,OAAf,CAAuB,YAAvB,EAAqC,UAAAc,KAAI;AAAA,WAAKA,KAAI,KAAK,GAAT,GAAe,GAAf,GAAqB,EAA1B;AAAA,GAAzC,EAAwEX,KAAxE,CAA8E,GAA9E,CADJ,GAEIS,cAHoC;AAAA,CAA1C;;AAKA,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACP,UAAD,EAAaQ,eAAb,EAAiC;AAC3D,MAAIC,gBAAgB,GAAG,EAAvB;AAEA,MAAMC,iBAAiB,GAAGF,eAAe,GACrCT,mBAAmB,CAACC,UAAD,EAAaQ,eAAb,CADkB,GAErCR,UAFJ;AAIA,MAAMW,gBAAgB,GAAGD,iBAAiB,IAAI,OAAOA,iBAAP,KAA6B,QAA3E;;AAEA,MAAIC,gBAAJ,EAAsB;AACpB,QAAMC,eAAe,GAAG,EAAxB;AAEA,QAAIC,cAAc,GAAGH,iBAAiB,CAACf,KAAlB,CAAwB,GAAxB,CAArB;AACAkB,IAAAA,cAAc,qBAAQA,cAAR,CAAd;AAEAC,IAAAA,MAAM,CAACC,IAAP,CAAYF,cAAZ,EAA4BG,OAA5B,CAAoC,UAAAC,GAAG,EAAI;AACzC,kCAAuCJ,cAAc,CAACI,GAAD,CAAd,CAAoBtB,KAApB,CAA0B,GAA1B,CAAvC;AAAA;AAAA,UAAOuB,YAAP;AAAA,UAAqBd,cAArB;;AAEA,UAAIc,YAAY,IAAId,cAApB,EAAoC;AAClCQ,QAAAA,eAAe,CAACM,YAAD,CAAf,GAAgCf,mBAAmB,CAACC,cAAD,CAAnD;AACD;AACF,KAND;AAOAK,IAAAA,gBAAgB,mCAAQA,gBAAR,GAA6BG,eAA7B,CAAhB;AACD;;AAED,SAAOH,gBAAP;AACD,CA1BD;;;;AA4BA,IAAMU,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,IAAD,EAAOC,uBAAP,EAAgCC,UAAhC,EAA4CC,MAA5C,EAAuD;AAC/E,MAAI,CAACzB,MAAM,CAAC0B,SAAP,CAAiBH,uBAAjB,CAAL,EAAgD,OAAO,EAAP;AAEhD,MAAMI,IAAI,GAAGH,UAAU,IAAII,OAAO,CAACC,GAAR,CAAYC,eAAvC;AACA,MAAMC,WAAW,GAAGR,uBAAuB,KAAK,CAAhD;;AACA,kBAAgB,2BAASD,IAAT,CAAhB;AAAA,MAAQU,GAAR,aAAQA,GAAR;;AACA,MAAIC,QAAQ,GAAGD,GAAG,CACfnC,KADY,CACN,GADM,EAEZqC,MAFY,CAELC,OAFK,EAGZrC,GAHY,CAGR,UAAAsC,OAAO;AAAA,WAAIA,OAAO,CAAC1C,OAAR,CAAgB,IAAhB,EAAsB,EAAtB,CAAJ;AAAA,GAHC,CAAf;AAIAuC,EAAAA,QAAQ,GAAGA,QAAQ,CAACI,KAAT,CAAe,CAAf,EAAkBN,WAAW,GAAGE,QAAQ,CAACK,MAAZ,GAAqBL,QAAQ,CAACK,MAAT,GAAkB,CAApE,EAAuEC,IAAvE,CAA4E,GAA5E,CAAX;AACAN,EAAAA,QAAQ,GAAGA,QAAQ,aAAMA,QAAN,SAAoBA,QAAvC;AACA,MAAMO,SAAS,GAAGf,MAAM,IAAIgB,qBAA5B;AAEA,mBAAUd,IAAV,cAAkBM,QAAlB,SAA6BO,SAA7B;AACD,CAfD;;;;AAiBA,IAAME,cAAc,GAAG,SAAjBA,cAAiB,CAACC,MAAD,EAASC,WAAT;AAAA,SACrBD,MAAM,IAAIC,WAAV,IAAyBA,WAAW,CAACN,MAArC,GACIM,WAAW,CAAC9C,GAAZ,CAAgB;AAAA,QAAG+C,KAAH,QAAGA,KAAH;AAAA,QAAUC,MAAV,QAAUA,MAAV;AAAA,WAAuB,CAACD,KAAD,EAAQC,MAAR,CAAvB;AAAA,GAAhB,CADJ,GAEI,IAHiB;AAAA,CAAvB;;AAKA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACJ,MAAD,EAASC,WAAT,EAAsBpD,KAAtB,EAAgC;AACvD,MAAIwD,WAAW,GAAGN,cAAc,CAACC,MAAD,EAASC,WAAT,CAAhC;AAEA,MAAI,CAACI,WAAD,IAAgBxD,KAApB,EAA2BwD,WAAW,GAAGzD,cAAc,CAACC,KAAD,CAA5B;AAE3B,SAAOwD,WAAP;AACD,CAND;;;;AAQA,IAAMC,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,SAAD,EAAgD;AAAA,MAApCC,KAAoC,uEAA5B,EAA4B;AAAA,MAAxBC,cAAwB,uEAAP,EAAO;;AAC/E,MAAIF,SAAS,IAAIC,KAAK,CAACD,SAAD,CAAlB,IAAiCC,KAAK,CAACD,SAAD,CAAL,CAAiB,CAAjB,CAArC,EAA0D;AACxD,QAAMG,IAAI,GAAGF,KAAK,CAACD,SAAD,CAAL,CAAiB,CAAjB,CAAb;AACA,WAAOI,cAAc,CAACD,IAAD,EAAOD,cAAP,CAArB;AACD;;AACD,SAAO,EAAP;AACD,CAND;;;;AAQA,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACZ,MAAD,EAASC,WAAT,EAAyB;AAChD,MAAIY,WAAW,GAAG,EAAlB;;AAEA,MAAIb,MAAM,IAAIC,WAAV,IAAyBA,WAAW,CAACN,MAAzC,EAAiD;AAC/C,QAAMmB,gBAAgB,GAAGb,WAAW,CAACc,MAAZ,CAAmB,UAACC,GAAD,SAA4C;AAAA,UAApCd,KAAoC,SAApCA,KAAoC;AAAA,UAA7BC,MAA6B,SAA7BA,MAA6B;AAAA,kCAArBc,SAAqB;AAAA,UAArBA,SAAqB,gCAAT,EAAS;AACtF,UAAMC,IAAI,GAAGhB,KAAK,IAAIC,MAAT,GAAkB,CAACD,KAAD,EAAQC,MAAR,CAAlB,GAAoC,IAAjD,CADsF,CAC/B;;AAEvD,UAAIc,SAAJ,EAAe;AACbA,QAAAA,SAAS,CAAC1C,OAAV,CAAkB,iBAAsD;AAAA,cAA5C4C,aAA4C,SAAnDjB,KAAmD;AAAA,cAArBkB,cAAqB,SAA7BjB,MAA6B;AACtE,cAAM3B,GAAG,aAAM2C,aAAa,IAAI,CAAvB,cAA4BC,cAAc,IAAI,CAA9C,CAAT;AACAJ,UAAAA,GAAG,CAACxC,GAAD,CAAH,GAAWwC,GAAG,CAACxC,GAAD,CAAH,IAAY,EAAvB;AACA,cAAI0C,IAAJ,EAAUF,GAAG,CAACxC,GAAD,CAAH,CAAS6C,IAAT,CAAcH,IAAd;AACX,SAJD;AAKD;;AACD,aAAOF,GAAP;AACD,KAXwB,EAWtB,EAXsB,CAAzB;AAaAH,IAAAA,WAAW,GAAGxC,MAAM,CAACC,IAAP,CAAYwC,gBAAZ,EAA8B3D,GAA9B,CAAkC,UAAAmE,kBAAkB,EAAI;AACpE,kCAAwCA,kBAAkB,CAACpE,KAAnB,CAAyB,GAAzB,CAAxC;AAAA;AAAA,UAAOiE,aAAP;AAAA,UAAsBC,cAAtB;;AACA,aAAO;AACLG,QAAAA,QAAQ,EAAE,CAAClE,MAAM,CAAC8D,aAAD,CAAP,EAAwB9D,MAAM,CAAC+D,cAAD,CAA9B,CADL;AAELvE,QAAAA,KAAK,EAAEiE,gBAAgB,CAACQ,kBAAD;AAFlB,OAAP;AAID,KANa,CAAd;AAOD;;AAED,SAAOT,WAAP;AACD,CA3BD;;;;AA6BA,IAAMW,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAvB,WAAW,EAAI;AACxC,MAAIwB,KAAK,CAACC,OAAN,CAAczB,WAAd,KAA8BA,WAAW,CAACN,MAAZ,GAAqB,CAAvD,EAA0D;AACxD,WAAOgC,IAAI,CAACC,GAAL,OAAAD,IAAI,sCAAQ1B,WAAW,CAAC9C,GAAZ,CAAgB,UAAA0E,CAAC;AAAA,aAAIA,CAAC,CAAC1B,MAAN;AAAA,KAAjB,CAAR,EAAX;AACD;;AACD,SAAO2B,4BAAP;AACD,CALD;;;;AAOA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAAA9B,WAAW,EAAI;AACxC,MAAIwB,KAAK,CAACC,OAAN,CAAczB,WAAd,KAA8BA,WAAW,CAACN,MAAZ,GAAqB,CAAvD,EAA0D;AACxD,WAAOgC,IAAI,CAACK,GAAL,OAAAL,IAAI,sCAAQ1B,WAAW,CAAC9C,GAAZ,CAAgB,UAAA0E,CAAC;AAAA,aAAIA,CAAC,CAAC1B,MAAN;AAAA,KAAjB,CAAR,EAAX;AACD;;AACD,SAAO8B,4BAAP;AACD,CALD;;;;AAOA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,SAAS,EAAI;AAClC,MAAI,CAACA,SAAD,IAAc,CAACA,SAAS,CAACxC,MAA7B,EAAqC,OAAO,EAAP;AACrC,MAAMyC,UAAU,GAAG,EAAnB;AACA,MAAMC,WAAW,GAAG,EAApB;AACAF,EAAAA,SAAS,CAAC5D,OAAV,CAAkB,iBAA6B;AAAA,QAA1B+D,mBAA0B,SAA1BA,mBAA0B;;AAC7C,+DAAkBA,mBAAlB;AAAA,QAAOC,OAAP;;AACA,QAAI,CAACA,OAAD,IAAYA,OAAO,KAAK,IAA5B,EAAkC;;AAClC,QAAIA,OAAO,CAACC,OAAR,CAAgB,GAAhB,MAAyB,CAAC,CAA9B,EAAiC;AAC/B,2BAA+BD,OAAO,CAACrF,KAAR,CAAc,GAAd,CAA/B;AAAA;AAAA,UAAOuF,QAAP;AAAA,UAAiBC,UAAjB;;AACA,UAAIL,WAAW,CAACI,QAAD,CAAf,EAA2BJ,WAAW,CAACI,QAAD,CAAX,CAAsBpB,IAAtB,CAA2BqB,UAA3B,EAA3B,KACKL,WAAW,CAACI,QAAD,CAAX,GAAwB,CAACC,UAAD,CAAxB;AACN,KAJD,MAION,UAAU,CAACf,IAAX,CAAgBkB,OAAhB;AACR,GARD;AAUAlE,EAAAA,MAAM,CAACC,IAAP,CAAY+D,WAAZ,EAAyB9D,OAAzB,CAAiC,UAAAoE,SAAS,EAAI;AAC5C,QAAMC,MAAM,GAAGP,WAAW,CAACM,SAAD,CAA1B;AACAP,IAAAA,UAAU,CAACf,IAAX,CAAgBsB,SAAhB;AACAP,IAAAA,UAAU,CAACf,IAAX,CAAgB,GAAhB;AACAuB,IAAAA,MAAM,CAACrE,OAAP,CAAe,UAAAsE,IAAI;AAAA,aAAIT,UAAU,CAACf,IAAX,CAAgBwB,IAAhB,CAAJ;AAAA,KAAnB;AACAT,IAAAA,UAAU,CAACf,IAAX,CAAgB,GAAhB;AACD,GAND;AAQA,SAAOe,UAAU,CAACxC,IAAX,CAAgB,GAAhB,CAAP;AACD,CAvBD;;;;AAyBA,IAAMe,cAAc,GAAG,SAAjBA,cAAiB,CAACD,IAAD,EAAOF,KAAP,EAAiB;AACtC,MAAI,CAACE,IAAD,IAAS,CAACF,KAAK,CAACb,MAApB,EAA4B,OAAO,EAAP;AAC5B,MAAMmD,aAAa,GAAG,EAAtB;AAEAtC,EAAAA,KAAK,CAACjC,OAAN,CAAc,iBAAoC;AAAA,QAAjC+D,mBAAiC,SAAjCA,mBAAiC;AAAA,QAAZS,KAAY,SAAZA,KAAY;;AAChD,gEAAcT,mBAAd;AAAA,QAAO9D,GAAP;;AACA,QAAMwE,SAAS,GAAGxE,GAAG,CAACtB,KAAJ,CAAU,GAAV,CAAlB;AACA,QAAM+F,KAAK,GAAGC,cAAc,CAACF,SAAD,EAAYtC,IAAZ,CAA5B;AACA,QAAMyC,UAAU,GAAGJ,KAAK,IAAIvE,GAA5B;AAEAsE,IAAAA,aAAa,CAACK,UAAD,CAAb,GAA4BF,KAA5B;AACD,GAPD;AAQA,SAAOH,aAAP;AACD,CAbD;;;;AAeA,IAAMM,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,GAAD,EAAM7E,GAAN;AAAA,SACvB6E,GAAG,CACAlG,GADH,CACO,UAAAmG,GAAG;AAAA,WAAIA,GAAG,CAAC9E,GAAD,CAAP;AAAA,GADV,EAEGe,MAFH,CAEUC,OAFV,EAGGI,IAHH,CAGQ,IAHR,CADuB;AAAA,CAAzB;;AAMA,IAAMsD,cAAc,GAAG,SAAjBA,cAAiB,CAAC5E,IAAD,EAAOiF,MAAP,EAAkB;AACvC,MAAM/E,GAAG,GAAGF,IAAI,CAACkF,KAAL,EAAZ;AACA,MAAMC,WAAW,GAAGhC,KAAK,CAACC,OAAN,CAAc6B,MAAd,IAAwBH,gBAAgB,CAACG,MAAD,EAAS/E,GAAT,CAAxC,GAAwD+E,MAAM,CAAC/E,GAAD,CAAlF;AACA,MAAI,CAACiF,WAAL,EAAkB,OAAO,IAAP;AAClB,SAAOnF,IAAI,CAACqB,MAAL,GAAcuD,cAAc,CAAC5E,IAAD,EAAOmF,WAAP,CAA5B,GAAkDA,WAAzD;AACD,CALD","sourcesContent":["import { parseUrl } from 'query-string';\nimport { END_ADUNIT, MAX_BANNER_HEIGHT, MIN_BANNER_HEIGHT } from '../../constants';\n\nconst getParsedSizes = (sizes = '') => {\n if (typeof sizes !== 'string') return [];\n\n const sanitizedSizes = sizes.replace(/\\s+/, '').toLowerCase();\n const sizeGroups = sanitizedSizes.split(',');\n\n return sizeGroups.map(group => group.split('x').map(Number));\n};\n\nconst addPosnToTargetings = (targetings, index) => {\n const posn = `posn=${index}`;\n return targetings ? `${targetings},${posn}` : posn;\n};\n\nconst buildTargetingValue = valueTargeting =>\n valueTargeting.includes('[') && valueTargeting.includes(']')\n ? valueTargeting.replace(/\\;|\\[|\\]/gm, char => (char === ';' ? ',' : '')).split(',')\n : valueTargeting;\n\nconst setCustomTargetings = (targetings, cardBannerIndex) => {\n let bannerTargetings = {};\n\n const updatedTargetings = cardBannerIndex\n ? addPosnToTargetings(targetings, cardBannerIndex)\n : targetings;\n\n const isValidTargeting = updatedTargetings && typeof updatedTargetings === 'string';\n\n if (isValidTargeting) {\n const customTargeting = {};\n\n let splitTargeting = updatedTargetings.split(',');\n splitTargeting = { ...splitTargeting };\n\n Object.keys(splitTargeting).forEach(key => {\n const [keyTargeting, valueTargeting] = splitTargeting[key].split('=');\n\n if (keyTargeting && valueTargeting) {\n customTargeting[keyTargeting] = buildTargetingValue(valueTargeting);\n }\n });\n bannerTargetings = { ...bannerTargetings, ...customTargeting };\n }\n\n return bannerTargetings;\n};\n\nconst buildParsedAdunit = (path, countContentHierarchies, baseAdunit, adunit) => {\n if (!Number.isInteger(countContentHierarchies)) return '';\n\n const base = baseAdunit || process.env.DFP_BASE_ADUNIT;\n const hasChildren = countContentHierarchies !== 0;\n const { url } = parseUrl(path);\n let urlParts = url\n .split('/')\n .filter(Boolean)\n .map(urlPart => urlPart.replace(/-/g, ''));\n urlParts = urlParts.slice(0, hasChildren ? urlParts.length : urlParts.length - 1).join('/');\n urlParts = urlParts ? `${urlParts}/` : urlParts;\n const endAdunit = adunit || END_ADUNIT;\n\n return `${base}/${urlParts}${endAdunit}`;\n};\n\nconst getBannerSizes = (sizeId, bannerSizes) =>\n sizeId && bannerSizes && bannerSizes.length\n ? bannerSizes.map(({ width, height }) => [width, height])\n : null;\n\nconst buildBannerSizes = (sizeId, bannerSizes, sizes) => {\n let parsedSizes = getBannerSizes(sizeId, bannerSizes);\n\n if (!parsedSizes && sizes) parsedSizes = getParsedSizes(sizes);\n\n return parsedSizes;\n};\n\nconst buildContextualTargeting = (actionKey, props = {}, propsToDisplay = []) => {\n if (actionKey && props[actionKey] && props[actionKey][0]) {\n const data = props[actionKey][0];\n return buildPropsData(data, propsToDisplay);\n }\n return {};\n};\n\nconst buildSizeMapping = (sizeId, bannerSizes) => {\n let sizeMapping = [];\n\n if (sizeId && bannerSizes && bannerSizes.length) {\n const groupedViewports = bannerSizes.reduce((acc, { width, height, viewports = [] }) => {\n const size = width && height ? [width, height] : null; // if one dimension is falsey then it shouldn't display\n\n if (viewports) {\n viewports.forEach(({ width: viewportWidth, height: viewportHeight }) => {\n const key = `${viewportWidth || 0}x${viewportHeight || 0}`;\n acc[key] = acc[key] || [];\n if (size) acc[key].push(size);\n });\n }\n return acc;\n }, {});\n\n sizeMapping = Object.keys(groupedViewports).map(keyGroupedViewport => {\n const [viewportWidth, viewportHeight] = keyGroupedViewport.split('x');\n return {\n viewport: [Number(viewportWidth), Number(viewportHeight)],\n sizes: groupedViewports[keyGroupedViewport]\n };\n });\n }\n\n return sizeMapping;\n};\n\nconst getMaxBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.max(...bannerSizes.map(o => o.height));\n }\n return MAX_BANNER_HEIGHT;\n};\n\nconst getMinBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.min(...bannerSizes.map(o => o.height));\n }\n return MIN_BANNER_HEIGHT;\n};\n\nconst buildUserQuery = userProps => {\n if (!userProps || !userProps.length) return '';\n const basicProps = [];\n const nestedProps = {};\n userProps.forEach(({ propertiesToDisplay }) => {\n const [propKey] = propertiesToDisplay;\n if (!propKey || propKey === 'id') return;\n if (propKey.indexOf('.') !== -1) {\n const [baseProp, nestedProp] = propKey.split('.');\n if (nestedProps[baseProp]) nestedProps[baseProp].push(nestedProp);\n else nestedProps[baseProp] = [nestedProp];\n } else basicProps.push(propKey);\n });\n\n Object.keys(nestedProps).forEach(nestedKey => {\n const nested = nestedProps[nestedKey];\n basicProps.push(nestedKey);\n basicProps.push('{');\n nested.forEach(prop => basicProps.push(prop));\n basicProps.push('}');\n });\n\n return basicProps.join(' ');\n};\n\nconst buildPropsData = (data, props) => {\n if (!data || !props.length) return {};\n const propsWithData = {};\n\n props.forEach(({ propertiesToDisplay, label }) => {\n const [key] = propertiesToDisplay;\n const parsedKey = key.split('.');\n const value = getNestedValue(parsedKey, data);\n const labelToUse = label || key;\n\n propsWithData[labelToUse] = value;\n });\n return propsWithData;\n};\n\nconst parseArrayValues = (arr, key) =>\n arr\n .map(obj => obj[key])\n .filter(Boolean)\n .join(', ');\n\nconst getNestedValue = (keys, object) => {\n const key = keys.shift();\n const nestedValue = Array.isArray(object) ? parseArrayValues(object, key) : object[key];\n if (!nestedValue) return null;\n return keys.length ? getNestedValue(keys, nestedValue) : nestedValue;\n};\n\nexport {\n getParsedSizes,\n setCustomTargetings,\n buildParsedAdunit,\n buildBannerSizes,\n buildContextualTargeting,\n buildSizeMapping,\n getMaxBannerHeight,\n getMinBannerHeight,\n buildPropsData,\n buildUserQuery\n};\n"],"file":"helpers.js"}
|
|
@@ -96,7 +96,7 @@ var getGenericRenderVariables = function getGenericRenderVariables(relations) {
|
|
|
96
96
|
var rawQueryStringified = JSON.stringify({
|
|
97
97
|
query: {
|
|
98
98
|
function_score: {
|
|
99
|
-
query: rawQuery,
|
|
99
|
+
query: rawQuery && rawQuery.query ? rawQuery.query : rawQuery,
|
|
100
100
|
random_score: {},
|
|
101
101
|
boost_mode: 'replace'
|
|
102
102
|
}
|
|
@@ -114,9 +114,7 @@ var getGenericRenderVariables = function getGenericRenderVariables(relations) {
|
|
|
114
114
|
limit: limitToUse,
|
|
115
115
|
offset: offsetToUse
|
|
116
116
|
}, sort), {}, {
|
|
117
|
-
rawQueryStringified: JSON.stringify(
|
|
118
|
-
query: rawQuery
|
|
119
|
-
})
|
|
117
|
+
rawQueryStringified: JSON.stringify(rawQuery)
|
|
120
118
|
});
|
|
121
119
|
};
|
|
122
120
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/helpers/get-generic-render-variables.js"],"names":["buildSortValues","sortFilters","relations","stringProps","length","sort","sortValues","map","propsToDisplay","sortFieldName","toLowerCase","filter","Boolean","join","getCorrectSort","filterProps","isTextSearchApplied","sortby","sortProperties","getGenericRenderVariables","rawQuery","isTextSearchFilterApplied","useRandomSort","limit","DEFAULT_LIMIT","offset","limitToUse","Number","offsetToUse","DEFAULT_OFFSET","rawQueryStringified","JSON","stringify","query","function_score","random_score","boost_mode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,WAAD,EAAcC,SAAd,EAAyBC,WAAzB,EAAyC;AAC/D,MAAI,CAACF,WAAD,IAAgB,CAACA,WAAW,CAACG,MAAjC,EAAyC,OAAO;AAAEC,IAAAA,IAAI,EAAE;AAAR,GAAP;AAEzC,MAAMC,UAAU,GAAGL,WAAW,CAC3BM,GADgB,CACZ,gBAA8B;AAAA,QAA3BF,IAA2B,QAA3BA,IAA2B;AAAA,QAArBG,cAAqB,QAArBA,cAAqB;AACjC,QAAI,CAACH,IAAL,EAAW,OAAO,IAAP;AAEX,QAAMI,aAAa,GAAG,oCAAmBP,SAAnB,EAA8BM,cAA9B,EAA8CL,WAA9C,CAAtB;AACA,WAAOM,aAAa,aAAMA,aAAN,cAAuBJ,IAAI,CAACK,WAAL,EAAvB,IAA8C,IAAlE;AACD,GANgB,EAOhBC,MAPgB,CAOTC,OAPS,EAQhBC,IARgB,CAQX,GARW,CAAnB;AAUA,SAAO;AAAER,IAAAA,IAAI,EAAEC;AAAR,GAAP;AACD,CAdD;;AAeA,IAAMQ,cAAc,GAAG,SAAjBA,cAAiB,CAACZ,SAAD,EAAYa,WAAZ,EAAyBZ,WAAzB,EAAsCa,mBAAtC,EAA8D;AACnF,MAAIA,mBAAJ,EAAyB;AACvB,WAAO,EAAP;AACD;;AACD,MAAQX,IAAR,GAA8CU,WAA9C,CAAQV,IAAR;AAAA,MAAcY,MAAd,GAA8CF,WAA9C,CAAcE,MAAd;AAAA,8BAA8CF,WAA9C,CAAsBG,cAAtB;AAAA,MAAsBA,cAAtB,sCAAuC,EAAvC;AAEA,SAAOlB,eAAe,EACnB;AAAEK,IAAAA,IAAI,EAAJA,IAAF;AAAQG,IAAAA,cAAc,EAAES;AAAxB,GADmB,6CACkBC,cADlB,IAEpBhB,SAFoB,EAGpBC,WAHoB,CAAtB;AAKD,CAXD;;AAaA,IAAMgB,yBAAyB,GAAG,SAA5BA,yBAA4B,CAChCjB,SADgC,EAO7B;AAAA,MALHa,WAKG,uEALW,EAKX;AAAA,MAJHZ,WAIG,uEAJW,EAIX;AAAA,MAHHiB,QAGG,uEAHQ,EAGR;AAAA,MAFHC,yBAEG,uEAFyB,KAEzB;AAAA,MADHC,aACG,uEADa,KACb;AACH,2BAA0CP,WAA1C,CAAQQ,KAAR;AAAA,MAAQA,KAAR,mCAAgBC,wBAAhB;AAAA,MAA+BC,MAA/B,GAA0CV,WAA1C,CAA+BU,MAA/B;AACA,MAAMC,UAAU,GAAGC,MAAM,CAACJ,KAAK,IAAIC,wBAAV,CAAzB;AACA,MAAMI,WAAW,GAAGD,MAAM,CAACF,MAAM,IAAII,yBAAX,CAA1B;;AAEA,MAAIP,aAAJ,EAAmB;AACjB,QAAMQ,mBAAmB,GAAGC,IAAI,CAACC,SAAL,CAAe;AACzCC,MAAAA,KAAK,EAAE;AACLC,QAAAA,cAAc,EAAE;AACdD,UAAAA,KAAK,EAAEb,
|
|
1
|
+
{"version":3,"sources":["../../src/helpers/get-generic-render-variables.js"],"names":["buildSortValues","sortFilters","relations","stringProps","length","sort","sortValues","map","propsToDisplay","sortFieldName","toLowerCase","filter","Boolean","join","getCorrectSort","filterProps","isTextSearchApplied","sortby","sortProperties","getGenericRenderVariables","rawQuery","isTextSearchFilterApplied","useRandomSort","limit","DEFAULT_LIMIT","offset","limitToUse","Number","offsetToUse","DEFAULT_OFFSET","rawQueryStringified","JSON","stringify","query","function_score","random_score","boost_mode"],"mappings":"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","sourcesContent":["import getSortbyFieldName from './get-sort-by-field-name';\nimport { DEFAULT_LIMIT, DEFAULT_OFFSET } from '../constants';\n\nconst buildSortValues = (sortFilters, relations, stringProps) => {\n if (!sortFilters || !sortFilters.length) return { sort: [] };\n\n const sortValues = sortFilters\n .map(({ sort, propsToDisplay }) => {\n if (!sort) return null;\n\n const sortFieldName = getSortbyFieldName(relations, propsToDisplay, stringProps);\n return sortFieldName ? `${sortFieldName}:${sort.toLowerCase()}` : null;\n })\n .filter(Boolean)\n .join(',');\n\n return { sort: sortValues };\n};\nconst getCorrectSort = (relations, filterProps, stringProps, isTextSearchApplied) => {\n if (isTextSearchApplied) {\n return {};\n }\n const { sort, sortby, sortProperties = [] } = filterProps;\n\n return buildSortValues(\n [{ sort, propsToDisplay: sortby }, ...sortProperties],\n relations,\n stringProps\n );\n};\n\nconst getGenericRenderVariables = (\n relations,\n filterProps = {},\n stringProps = [],\n rawQuery = {},\n isTextSearchFilterApplied = false,\n useRandomSort = false\n) => {\n const { limit = DEFAULT_LIMIT, offset } = filterProps;\n const limitToUse = Number(limit || DEFAULT_LIMIT);\n const offsetToUse = Number(offset || DEFAULT_OFFSET);\n\n if (useRandomSort) {\n const rawQueryStringified = JSON.stringify({\n query: {\n function_score: {\n query: rawQuery && rawQuery.query ? rawQuery.query : rawQuery,\n random_score: {},\n boost_mode: 'replace'\n }\n }\n });\n\n return {\n limit: limitToUse,\n offset: offsetToUse,\n rawQueryStringified\n };\n }\n\n const sort = getCorrectSort(relations, filterProps, stringProps, isTextSearchFilterApplied);\n\n return {\n limit: limitToUse,\n offset: offsetToUse,\n ...sort,\n rawQueryStringified: JSON.stringify(rawQuery)\n };\n};\n\nexport default getGenericRenderVariables;\n"],"file":"get-generic-render-variables.js"}
|
|
@@ -3,11 +3,13 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
|
|
|
3
3
|
const _excluded = ["type"];
|
|
4
4
|
import React, { useContext } from 'react';
|
|
5
5
|
import { MainContext } from '@blaze-cms/nextjs-components';
|
|
6
|
+
import { checkIfLoggedIn } from '@blaze-cms/core-auth-ui';
|
|
6
7
|
import PropTypes from 'prop-types';
|
|
7
8
|
import flatten from 'lodash.flatten';
|
|
8
9
|
import { useQuery } from '@apollo/client';
|
|
9
10
|
import { useRouter } from 'next/router';
|
|
10
|
-
import {
|
|
11
|
+
import { buildUserQuery, buildPropsData } from './helpers';
|
|
12
|
+
import { getSingleEntitySchema, getUser } from '../../application/query';
|
|
11
13
|
import Wrapper from '../Wrapper';
|
|
12
14
|
import BannerRender from './BannerRender';
|
|
13
15
|
import buildPropsQuery from '../../helpers/build-props-query';
|
|
@@ -24,6 +26,9 @@ const Banner = _ref => {
|
|
|
24
26
|
const {
|
|
25
27
|
isPreview
|
|
26
28
|
} = useContext(MainContext);
|
|
29
|
+
const {
|
|
30
|
+
id: userId
|
|
31
|
+
} = checkIfLoggedIn();
|
|
27
32
|
const {
|
|
28
33
|
asPath
|
|
29
34
|
} = router;
|
|
@@ -31,8 +36,10 @@ const Banner = _ref => {
|
|
|
31
36
|
parent,
|
|
32
37
|
entity,
|
|
33
38
|
sizeId,
|
|
34
|
-
propsToDisplay = []
|
|
39
|
+
propsToDisplay = [],
|
|
40
|
+
userPropsToDisplay = []
|
|
35
41
|
} = otherProps;
|
|
42
|
+
const userQuery = buildUserQuery(userPropsToDisplay);
|
|
36
43
|
const {
|
|
37
44
|
itemEntity
|
|
38
45
|
} = parent;
|
|
@@ -45,7 +52,18 @@ const Banner = _ref => {
|
|
|
45
52
|
id: entity || itemEntity
|
|
46
53
|
}
|
|
47
54
|
});
|
|
48
|
-
|
|
55
|
+
const {
|
|
56
|
+
data: {
|
|
57
|
+
getUser: userData
|
|
58
|
+
} = {},
|
|
59
|
+
loading: userLoading
|
|
60
|
+
} = useQuery(getUser(userQuery), {
|
|
61
|
+
variables: {
|
|
62
|
+
id: userId
|
|
63
|
+
},
|
|
64
|
+
skip: !userPropsToDisplay.length || !userId
|
|
65
|
+
});
|
|
66
|
+
if (loading || userLoading) return '';
|
|
49
67
|
if (error) return error.message;
|
|
50
68
|
if (!data) return null;
|
|
51
69
|
if (!sizeId) return null;
|
|
@@ -53,6 +71,7 @@ const Banner = _ref => {
|
|
|
53
71
|
const queryProps = buildPropsQuery(data, propsToDisplay.length ? flatten(propsToDisplay.map(({
|
|
54
72
|
propertiesToDisplay
|
|
55
73
|
}) => propertiesToDisplay)) : []);
|
|
74
|
+
const userPropsData = buildPropsData(userData, userPropsToDisplay);
|
|
56
75
|
const {
|
|
57
76
|
actionKey,
|
|
58
77
|
action
|
|
@@ -66,7 +85,8 @@ const Banner = _ref => {
|
|
|
66
85
|
}, otherProps, {
|
|
67
86
|
action: action,
|
|
68
87
|
actionKey: actionKey,
|
|
69
|
-
asPath: asPath
|
|
88
|
+
asPath: asPath,
|
|
89
|
+
userPropsData: userPropsData
|
|
70
90
|
})));
|
|
71
91
|
};
|
|
72
92
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Banner/Banner.js"],"names":["React","useContext","MainContext","PropTypes","flatten","useQuery","useRouter","getSingleEntitySchema","Wrapper","BannerRender","buildPropsQuery","getClassModifiers","getEntityRenderProps","Banner","type","otherProps","router","isPreview","asPath","parent","entity","sizeId","propsToDisplay","itemEntity","data","error","loading","variables","
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Banner/Banner.js"],"names":["React","useContext","MainContext","checkIfLoggedIn","PropTypes","flatten","useQuery","useRouter","buildUserQuery","buildPropsData","getSingleEntitySchema","getUser","Wrapper","BannerRender","buildPropsQuery","getClassModifiers","getEntityRenderProps","Banner","type","otherProps","router","isPreview","id","userId","asPath","parent","entity","sizeId","propsToDisplay","userPropsToDisplay","userQuery","itemEntity","data","error","loading","variables","userData","userLoading","skip","length","message","modifiers","queryProps","map","propertiesToDisplay","userPropsData","actionKey","action","bannerKey","propTypes","string","defaultProps"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { checkIfLoggedIn } from '@blaze-cms/core-auth-ui';\nimport PropTypes from 'prop-types';\nimport flatten from 'lodash.flatten';\nimport { useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { buildUserQuery, buildPropsData } from './helpers';\nimport { getSingleEntitySchema, getUser } from '../../application/query';\nimport Wrapper from '../Wrapper';\nimport BannerRender from './BannerRender';\nimport buildPropsQuery from '../../helpers/build-props-query';\nimport { getClassModifiers } from '../../utils';\nimport getEntityRenderProps from '../../helpers/get-entity-render-props';\n\nconst Banner = ({ type, ...otherProps }) => {\n const router = useRouter();\n const { isPreview } = useContext(MainContext);\n const { id: userId } = checkIfLoggedIn();\n const { asPath } = router;\n const { parent, entity, sizeId, propsToDisplay = [], userPropsToDisplay = [] } = otherProps;\n const userQuery = buildUserQuery(userPropsToDisplay);\n const { itemEntity } = parent;\n const { data, error, loading } = useQuery(getSingleEntitySchema, {\n variables: { id: entity || itemEntity }\n });\n const { data: { getUser: userData } = {}, loading: userLoading } = useQuery(getUser(userQuery), {\n variables: { id: userId },\n skip: !userPropsToDisplay.length || !userId\n });\n\n if (loading || userLoading) return '';\n if (error) return error.message;\n if (!data) return null;\n if (!sizeId) return null;\n\n const modifiers = getClassModifiers('banner', otherProps);\n const queryProps = buildPropsQuery(\n data,\n propsToDisplay.length\n ? flatten(propsToDisplay.map(({ propertiesToDisplay }) => propertiesToDisplay))\n : []\n );\n\n const userPropsData = buildPropsData(userData, userPropsToDisplay);\n const { actionKey, action } = getEntityRenderProps(queryProps, data, isPreview);\n const bannerKey = `${sizeId}${asPath}`;\n\n return (\n <Wrapper className={type} modifiers={modifiers}>\n <BannerRender\n key={bannerKey}\n {...otherProps}\n action={action}\n actionKey={actionKey}\n asPath={asPath}\n userPropsData={userPropsData}\n />\n </Wrapper>\n );\n};\n\nBanner.propTypes = {\n type: PropTypes.string\n};\n\nBanner.defaultProps = {\n type: 'banner'\n};\n\nexport default Banner;\n"],"file":"Banner.js"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
const _excluded = ["baseAdunit", "adunit", "sizeId", "sizes", "propsToDisplay", "entity", "targetings", "parent", "asPath", "action", "actionKey", "cardBannerIndex"];
|
|
3
|
+
const _excluded = ["baseAdunit", "adunit", "sizeId", "sizes", "propsToDisplay", "entity", "targetings", "parent", "asPath", "action", "actionKey", "cardBannerIndex", "userPropsData"];
|
|
4
4
|
|
|
5
5
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
6
6
|
|
|
@@ -28,7 +28,8 @@ const BannerRender = _ref => {
|
|
|
28
28
|
asPath,
|
|
29
29
|
action,
|
|
30
30
|
actionKey,
|
|
31
|
-
cardBannerIndex
|
|
31
|
+
cardBannerIndex,
|
|
32
|
+
userPropsData
|
|
32
33
|
} = _ref,
|
|
33
34
|
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
34
35
|
|
|
@@ -86,7 +87,7 @@ const BannerRender = _ref => {
|
|
|
86
87
|
const shouldShowBanner = parsedAdunit && parsedSizes && !!parsedSizes.length && isContextualTargetingReady;
|
|
87
88
|
const customTargetings = setCustomTargetings(targetings, cardBannerIndex);
|
|
88
89
|
|
|
89
|
-
const targetingArguments = _objectSpread(_objectSpread({}, parsedTargetings), customTargetings);
|
|
90
|
+
const targetingArguments = _objectSpread(_objectSpread(_objectSpread({}, parsedTargetings), customTargetings), userPropsData);
|
|
90
91
|
|
|
91
92
|
return /*#__PURE__*/React.createElement(AdSlotRender, {
|
|
92
93
|
shouldShowBanner: !!shouldShowBanner,
|
|
@@ -110,7 +111,8 @@ BannerRender.propTypes = {
|
|
|
110
111
|
entity: PropTypes.string,
|
|
111
112
|
targetings: PropTypes.string,
|
|
112
113
|
sizes: PropTypes.string,
|
|
113
|
-
cardBannerIndex: PropTypes.number
|
|
114
|
+
cardBannerIndex: PropTypes.number,
|
|
115
|
+
userPropsData: PropTypes.object
|
|
114
116
|
};
|
|
115
117
|
BannerRender.defaultProps = {
|
|
116
118
|
adunit: '',
|
|
@@ -120,7 +122,8 @@ BannerRender.defaultProps = {
|
|
|
120
122
|
entity: '',
|
|
121
123
|
targetings: '',
|
|
122
124
|
sizes: '',
|
|
123
|
-
cardBannerIndex: null
|
|
125
|
+
cardBannerIndex: null,
|
|
126
|
+
userPropsData: {}
|
|
124
127
|
};
|
|
125
128
|
export default withTitle(BannerRender);
|
|
126
129
|
//# sourceMappingURL=BannerRender.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Banner/BannerRender.js"],"names":["React","PropTypes","useQuery","generateSingleItemQuery","getCount","buildBannerSizes","buildContextualTargeting","buildParsedAdunit","buildSizeMapping","setCustomTargetings","BANNER_QUERY_PROPS","COUNT_CONTENT_HIERARCHIES","GET_BANNER","PUBLISHED","withTitle","AdSlotRender","BannerRender","baseAdunit","adunit","sizeId","sizes","propsToDisplay","entity","targetings","parent","asPath","action","actionKey","cardBannerIndex","otherProps","id","itemId","data","entityRecordData","variables","where","skip","bannerData","parentId","childEntity","_ilike","parsedTargetings","entityData","bannerSizes","sizeMapping","parsedSizes","countContentHierarchies","parsedAdunit","isContextualTargetingSet","length","Object","keys","isContextualTargetingReady","shouldShowBanner","customTargetings","targetingArguments","propTypes","object","isRequired","string","array","number","defaultProps"],"mappings":";;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,SAASC,QAAT,QAAyB,gBAAzB;AAEA,SAASC,uBAAT,EAAkCC,QAAlC,QAAkD,yBAAlD;AACA,SACEC,gBADF,EAEEC,wBAFF,EAGEC,iBAHF,EAIEC,gBAJF,EAKEC,mBALF,QAMO,WANP;AAOA,SACEC,kBADF,EAEEC,yBAFF,EAGEC,UAHF,EAIEC,SAJF,QAKO,iBALP;AAMA,SAASC,SAAT,QAA0B,WAA1B;AACA,OAAOC,YAAP,MAAyB,gBAAzB;;AAEA,MAAMC,YAAY,GAAG,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Banner/BannerRender.js"],"names":["React","PropTypes","useQuery","generateSingleItemQuery","getCount","buildBannerSizes","buildContextualTargeting","buildParsedAdunit","buildSizeMapping","setCustomTargetings","BANNER_QUERY_PROPS","COUNT_CONTENT_HIERARCHIES","GET_BANNER","PUBLISHED","withTitle","AdSlotRender","BannerRender","baseAdunit","adunit","sizeId","sizes","propsToDisplay","entity","targetings","parent","asPath","action","actionKey","cardBannerIndex","userPropsData","otherProps","id","itemId","data","entityRecordData","variables","where","skip","bannerData","parentId","childEntity","_ilike","parsedTargetings","entityData","bannerSizes","sizeMapping","parsedSizes","countContentHierarchies","parsedAdunit","isContextualTargetingSet","length","Object","keys","isContextualTargetingReady","shouldShowBanner","customTargetings","targetingArguments","propTypes","object","isRequired","string","array","number","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useQuery } from '@apollo/client';\n\nimport { generateSingleItemQuery, getCount } from '../../application/query';\nimport {\n buildBannerSizes,\n buildContextualTargeting,\n buildParsedAdunit,\n buildSizeMapping,\n setCustomTargetings\n} from './helpers';\nimport {\n BANNER_QUERY_PROPS,\n COUNT_CONTENT_HIERARCHIES,\n GET_BANNER,\n PUBLISHED\n} from '../../constants';\nimport { withTitle } from '../../HOC';\nimport AdSlotRender from './AdSlotRender';\n\nconst BannerRender = ({\n baseAdunit,\n adunit,\n sizeId,\n sizes,\n propsToDisplay,\n entity,\n targetings,\n parent,\n asPath,\n action,\n actionKey,\n cardBannerIndex,\n userPropsData,\n ...otherProps\n}) => {\n const { id } = otherProps;\n const { itemId } = parent;\n\n const { data: entityRecordData = {} } = useQuery(action, {\n variables: { where: { id: id || itemId } },\n skip: id && id !== itemId\n });\n\n const { data: bannerData = {} } = useQuery(\n generateSingleItemQuery(GET_BANNER, BANNER_QUERY_PROPS),\n {\n variables: { id: sizeId },\n skip: !sizeId\n }\n );\n\n const { data = {} } = useQuery(getCount(COUNT_CONTENT_HIERARCHIES), {\n variables: {\n where: {\n parentId: id || itemId,\n childEntity: {\n _ilike: `${PUBLISHED}_%`\n }\n }\n }\n });\n\n const parsedTargetings = buildContextualTargeting(actionKey, entityRecordData, propsToDisplay);\n const { entityData } = bannerData;\n const { sizes: bannerSizes } = entityData || {};\n\n const sizeMapping = buildSizeMapping(sizeId, bannerSizes);\n const parsedSizes = buildBannerSizes(sizeId, bannerSizes, sizes);\n\n const { countContentHierarchies } = data;\n\n const parsedAdunit = buildParsedAdunit(asPath, countContentHierarchies, baseAdunit, adunit);\n const isContextualTargetingSet =\n propsToDisplay.length && parsedTargetings && Object.keys(parsedTargetings).length;\n const isContextualTargetingReady = isContextualTargetingSet || !propsToDisplay.length;\n const shouldShowBanner =\n parsedAdunit && parsedSizes && !!parsedSizes.length && isContextualTargetingReady;\n\n const customTargetings = setCustomTargetings(targetings, cardBannerIndex);\n\n const targetingArguments = { ...parsedTargetings, ...customTargetings, ...userPropsData };\n\n return (\n <AdSlotRender\n shouldShowBanner={!!shouldShowBanner}\n sizeMapping={sizeMapping}\n sizeId={sizeId}\n parsedAdunit={parsedAdunit}\n parsedSizes={parsedSizes}\n targetingArguments={targetingArguments}\n />\n );\n};\n\nBannerRender.propTypes = {\n parent: PropTypes.object.isRequired,\n asPath: PropTypes.string.isRequired,\n action: PropTypes.object.isRequired,\n actionKey: PropTypes.string.isRequired,\n adunit: PropTypes.string,\n baseAdunit: PropTypes.string,\n sizeId: PropTypes.string,\n propsToDisplay: PropTypes.array,\n entity: PropTypes.string,\n targetings: PropTypes.string,\n sizes: PropTypes.string,\n cardBannerIndex: PropTypes.number,\n userPropsData: PropTypes.object\n};\n\nBannerRender.defaultProps = {\n adunit: '',\n baseAdunit: '',\n sizeId: '',\n propsToDisplay: [],\n entity: '',\n targetings: '',\n sizes: '',\n cardBannerIndex: null,\n userPropsData: {}\n};\n\nexport default withTitle(BannerRender);\n"],"file":"BannerRender.js"}
|
|
@@ -5,8 +5,6 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
5
5
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6
6
|
|
|
7
7
|
import { parseUrl } from 'query-string';
|
|
8
|
-
import flatten from 'lodash.flatten';
|
|
9
|
-
import getPropValues from '../../helpers/get-prop-values';
|
|
10
8
|
import { END_ADUNIT, MAX_BANNER_HEIGHT, MIN_BANNER_HEIGHT } from '../../constants';
|
|
11
9
|
|
|
12
10
|
const getParsedSizes = (sizes = '') => {
|
|
@@ -72,15 +70,8 @@ const buildBannerSizes = (sizeId, bannerSizes, sizes) => {
|
|
|
72
70
|
|
|
73
71
|
const buildContextualTargeting = (actionKey, props = {}, propsToDisplay = []) => {
|
|
74
72
|
if (actionKey && props[actionKey] && props[actionKey][0]) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
propertiesToDisplay
|
|
78
|
-
}) => {
|
|
79
|
-
const propValue = getPropValues(propertiesToDisplay, props[actionKey][0]);
|
|
80
|
-
const parsedValue = Array.isArray(propValue) ? flatten(propValue) : propValue;
|
|
81
|
-
acc[label] = parsedValue;
|
|
82
|
-
return acc;
|
|
83
|
-
}, {});
|
|
73
|
+
const data = props[actionKey][0];
|
|
74
|
+
return buildPropsData(data, propsToDisplay);
|
|
84
75
|
}
|
|
85
76
|
|
|
86
77
|
return {};
|
|
@@ -138,5 +129,55 @@ const getMinBannerHeight = bannerSizes => {
|
|
|
138
129
|
return MIN_BANNER_HEIGHT;
|
|
139
130
|
};
|
|
140
131
|
|
|
141
|
-
|
|
132
|
+
const buildUserQuery = userProps => {
|
|
133
|
+
if (!userProps || !userProps.length) return '';
|
|
134
|
+
const basicProps = [];
|
|
135
|
+
const nestedProps = {};
|
|
136
|
+
userProps.forEach(({
|
|
137
|
+
propertiesToDisplay
|
|
138
|
+
}) => {
|
|
139
|
+
const [propKey] = propertiesToDisplay;
|
|
140
|
+
if (!propKey || propKey === 'id') return;
|
|
141
|
+
|
|
142
|
+
if (propKey.indexOf('.') !== -1) {
|
|
143
|
+
const [baseProp, nestedProp] = propKey.split('.');
|
|
144
|
+
if (nestedProps[baseProp]) nestedProps[baseProp].push(nestedProp);else nestedProps[baseProp] = [nestedProp];
|
|
145
|
+
} else basicProps.push(propKey);
|
|
146
|
+
});
|
|
147
|
+
Object.keys(nestedProps).forEach(nestedKey => {
|
|
148
|
+
const nested = nestedProps[nestedKey];
|
|
149
|
+
basicProps.push(nestedKey);
|
|
150
|
+
basicProps.push('{');
|
|
151
|
+
nested.forEach(prop => basicProps.push(prop));
|
|
152
|
+
basicProps.push('}');
|
|
153
|
+
});
|
|
154
|
+
return basicProps.join(' ');
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
const buildPropsData = (data, props) => {
|
|
158
|
+
if (!data || !props.length) return {};
|
|
159
|
+
const propsWithData = {};
|
|
160
|
+
props.forEach(({
|
|
161
|
+
propertiesToDisplay,
|
|
162
|
+
label
|
|
163
|
+
}) => {
|
|
164
|
+
const [key] = propertiesToDisplay;
|
|
165
|
+
const parsedKey = key.split('.');
|
|
166
|
+
const value = getNestedValue(parsedKey, data);
|
|
167
|
+
const labelToUse = label || key;
|
|
168
|
+
propsWithData[labelToUse] = value;
|
|
169
|
+
});
|
|
170
|
+
return propsWithData;
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
const parseArrayValues = (arr, key) => arr.map(obj => obj[key]).filter(Boolean).join(', ');
|
|
174
|
+
|
|
175
|
+
const getNestedValue = (keys, object) => {
|
|
176
|
+
const key = keys.shift();
|
|
177
|
+
const nestedValue = Array.isArray(object) ? parseArrayValues(object, key) : object[key];
|
|
178
|
+
if (!nestedValue) return null;
|
|
179
|
+
return keys.length ? getNestedValue(keys, nestedValue) : nestedValue;
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
export { getParsedSizes, setCustomTargetings, buildParsedAdunit, buildBannerSizes, buildContextualTargeting, buildSizeMapping, getMaxBannerHeight, getMinBannerHeight, buildPropsData, buildUserQuery };
|
|
142
183
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Banner/helpers.js"],"names":["parseUrl","flatten","getPropValues","END_ADUNIT","MAX_BANNER_HEIGHT","MIN_BANNER_HEIGHT","getParsedSizes","sizes","sanitizedSizes","replace","toLowerCase","sizeGroups","split","map","group","Number","addPosnToTargetings","targetings","index","posn","buildTargetingValue","valueTargeting","includes","char","setCustomTargetings","cardBannerIndex","bannerTargetings","updatedTargetings","isValidTargeting","customTargeting","splitTargeting","Object","keys","forEach","key","keyTargeting","buildParsedAdunit","path","countContentHierarchies","baseAdunit","adunit","isInteger","base","process","env","DFP_BASE_ADUNIT","hasChildren","url","urlParts","filter","Boolean","urlPart","slice","length","join","endAdunit","getBannerSizes","sizeId","bannerSizes","width","height","buildBannerSizes","parsedSizes","buildContextualTargeting","actionKey","props","propsToDisplay","reduce","acc","label","propertiesToDisplay","propValue","parsedValue","Array","isArray","buildSizeMapping","sizeMapping","groupedViewports","viewports","size","viewportWidth","viewportHeight","push","keyGroupedViewport","viewport","getMaxBannerHeight","Math","max","o","getMinBannerHeight","min"],"mappings":"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","sourcesContent":["import { parseUrl } from 'query-string';\nimport flatten from 'lodash.flatten';\nimport getPropValues from '../../helpers/get-prop-values';\nimport { END_ADUNIT, MAX_BANNER_HEIGHT, MIN_BANNER_HEIGHT } from '../../constants';\n\nconst getParsedSizes = (sizes = '') => {\n if (typeof sizes !== 'string') return [];\n\n const sanitizedSizes = sizes.replace(/\\s+/, '').toLowerCase();\n const sizeGroups = sanitizedSizes.split(',');\n\n return sizeGroups.map(group => group.split('x').map(Number));\n};\n\nconst addPosnToTargetings = (targetings, index) => {\n const posn = `posn=${index}`;\n return targetings ? `${targetings},${posn}` : posn;\n};\n\nconst buildTargetingValue = valueTargeting =>\n valueTargeting.includes('[') && valueTargeting.includes(']')\n ? valueTargeting.replace(/\\;|\\[|\\]/gm, char => (char === ';' ? ',' : '')).split(',')\n : valueTargeting;\n\nconst setCustomTargetings = (targetings, cardBannerIndex) => {\n let bannerTargetings = {};\n\n const updatedTargetings = cardBannerIndex\n ? addPosnToTargetings(targetings, cardBannerIndex)\n : targetings;\n\n const isValidTargeting = updatedTargetings && typeof updatedTargetings === 'string';\n\n if (isValidTargeting) {\n const customTargeting = {};\n\n let splitTargeting = updatedTargetings.split(',');\n splitTargeting = { ...splitTargeting };\n\n Object.keys(splitTargeting).forEach(key => {\n const [keyTargeting, valueTargeting] = splitTargeting[key].split('=');\n\n if (keyTargeting && valueTargeting) {\n customTargeting[keyTargeting] = buildTargetingValue(valueTargeting);\n }\n });\n bannerTargetings = { ...bannerTargetings, ...customTargeting };\n }\n\n return bannerTargetings;\n};\n\nconst buildParsedAdunit = (path, countContentHierarchies, baseAdunit, adunit) => {\n if (!Number.isInteger(countContentHierarchies)) return '';\n\n const base = baseAdunit || process.env.DFP_BASE_ADUNIT;\n const hasChildren = countContentHierarchies !== 0;\n const { url } = parseUrl(path);\n let urlParts = url\n .split('/')\n .filter(Boolean)\n .map(urlPart => urlPart.replace(/-/g, ''));\n urlParts = urlParts.slice(0, hasChildren ? urlParts.length : urlParts.length - 1).join('/');\n urlParts = urlParts ? `${urlParts}/` : urlParts;\n const endAdunit = adunit || END_ADUNIT;\n\n return `${base}/${urlParts}${endAdunit}`;\n};\n\nconst getBannerSizes = (sizeId, bannerSizes) =>\n sizeId && bannerSizes && bannerSizes.length\n ? bannerSizes.map(({ width, height }) => [width, height])\n : null;\n\nconst buildBannerSizes = (sizeId, bannerSizes, sizes) => {\n let parsedSizes = getBannerSizes(sizeId, bannerSizes);\n\n if (!parsedSizes && sizes) parsedSizes = getParsedSizes(sizes);\n\n return parsedSizes;\n};\n\nconst buildContextualTargeting = (actionKey, props = {}, propsToDisplay = []) => {\n if (actionKey && props[actionKey] && props[actionKey][0]) {\n return propsToDisplay.reduce((acc, { label, propertiesToDisplay }) => {\n const propValue = getPropValues(propertiesToDisplay, props[actionKey][0]);\n const parsedValue = Array.isArray(propValue) ? flatten(propValue) : propValue;\n acc[label] = parsedValue;\n return acc;\n }, {});\n }\n return {};\n};\n\nconst buildSizeMapping = (sizeId, bannerSizes) => {\n let sizeMapping = [];\n\n if (sizeId && bannerSizes && bannerSizes.length) {\n const groupedViewports = bannerSizes.reduce((acc, { width, height, viewports = [] }) => {\n const size = width && height ? [width, height] : null; // if one dimension is falsey then it shouldn't display\n\n if (viewports) {\n viewports.forEach(({ width: viewportWidth, height: viewportHeight }) => {\n const key = `${viewportWidth || 0}x${viewportHeight || 0}`;\n acc[key] = acc[key] || [];\n if (size) acc[key].push(size);\n });\n }\n return acc;\n }, {});\n\n sizeMapping = Object.keys(groupedViewports).map(keyGroupedViewport => {\n const [viewportWidth, viewportHeight] = keyGroupedViewport.split('x');\n return {\n viewport: [Number(viewportWidth), Number(viewportHeight)],\n sizes: groupedViewports[keyGroupedViewport]\n };\n });\n }\n\n return sizeMapping;\n};\n\nconst getMaxBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.max(...bannerSizes.map(o => o.height));\n }\n return MAX_BANNER_HEIGHT;\n};\n\nconst getMinBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.min(...bannerSizes.map(o => o.height));\n }\n return MIN_BANNER_HEIGHT;\n};\n\nexport {\n getParsedSizes,\n setCustomTargetings,\n buildParsedAdunit,\n buildBannerSizes,\n buildContextualTargeting,\n buildSizeMapping,\n getMaxBannerHeight,\n getMinBannerHeight\n};\n"],"file":"helpers.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Banner/helpers.js"],"names":["parseUrl","END_ADUNIT","MAX_BANNER_HEIGHT","MIN_BANNER_HEIGHT","getParsedSizes","sizes","sanitizedSizes","replace","toLowerCase","sizeGroups","split","map","group","Number","addPosnToTargetings","targetings","index","posn","buildTargetingValue","valueTargeting","includes","char","setCustomTargetings","cardBannerIndex","bannerTargetings","updatedTargetings","isValidTargeting","customTargeting","splitTargeting","Object","keys","forEach","key","keyTargeting","buildParsedAdunit","path","countContentHierarchies","baseAdunit","adunit","isInteger","base","process","env","DFP_BASE_ADUNIT","hasChildren","url","urlParts","filter","Boolean","urlPart","slice","length","join","endAdunit","getBannerSizes","sizeId","bannerSizes","width","height","buildBannerSizes","parsedSizes","buildContextualTargeting","actionKey","props","propsToDisplay","data","buildPropsData","buildSizeMapping","sizeMapping","groupedViewports","reduce","acc","viewports","size","viewportWidth","viewportHeight","push","keyGroupedViewport","viewport","getMaxBannerHeight","Array","isArray","Math","max","o","getMinBannerHeight","min","buildUserQuery","userProps","basicProps","nestedProps","propertiesToDisplay","propKey","indexOf","baseProp","nestedProp","nestedKey","nested","prop","propsWithData","label","parsedKey","value","getNestedValue","labelToUse","parseArrayValues","arr","obj","object","shift","nestedValue"],"mappings":"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","sourcesContent":["import { parseUrl } from 'query-string';\nimport { END_ADUNIT, MAX_BANNER_HEIGHT, MIN_BANNER_HEIGHT } from '../../constants';\n\nconst getParsedSizes = (sizes = '') => {\n if (typeof sizes !== 'string') return [];\n\n const sanitizedSizes = sizes.replace(/\\s+/, '').toLowerCase();\n const sizeGroups = sanitizedSizes.split(',');\n\n return sizeGroups.map(group => group.split('x').map(Number));\n};\n\nconst addPosnToTargetings = (targetings, index) => {\n const posn = `posn=${index}`;\n return targetings ? `${targetings},${posn}` : posn;\n};\n\nconst buildTargetingValue = valueTargeting =>\n valueTargeting.includes('[') && valueTargeting.includes(']')\n ? valueTargeting.replace(/\\;|\\[|\\]/gm, char => (char === ';' ? ',' : '')).split(',')\n : valueTargeting;\n\nconst setCustomTargetings = (targetings, cardBannerIndex) => {\n let bannerTargetings = {};\n\n const updatedTargetings = cardBannerIndex\n ? addPosnToTargetings(targetings, cardBannerIndex)\n : targetings;\n\n const isValidTargeting = updatedTargetings && typeof updatedTargetings === 'string';\n\n if (isValidTargeting) {\n const customTargeting = {};\n\n let splitTargeting = updatedTargetings.split(',');\n splitTargeting = { ...splitTargeting };\n\n Object.keys(splitTargeting).forEach(key => {\n const [keyTargeting, valueTargeting] = splitTargeting[key].split('=');\n\n if (keyTargeting && valueTargeting) {\n customTargeting[keyTargeting] = buildTargetingValue(valueTargeting);\n }\n });\n bannerTargetings = { ...bannerTargetings, ...customTargeting };\n }\n\n return bannerTargetings;\n};\n\nconst buildParsedAdunit = (path, countContentHierarchies, baseAdunit, adunit) => {\n if (!Number.isInteger(countContentHierarchies)) return '';\n\n const base = baseAdunit || process.env.DFP_BASE_ADUNIT;\n const hasChildren = countContentHierarchies !== 0;\n const { url } = parseUrl(path);\n let urlParts = url\n .split('/')\n .filter(Boolean)\n .map(urlPart => urlPart.replace(/-/g, ''));\n urlParts = urlParts.slice(0, hasChildren ? urlParts.length : urlParts.length - 1).join('/');\n urlParts = urlParts ? `${urlParts}/` : urlParts;\n const endAdunit = adunit || END_ADUNIT;\n\n return `${base}/${urlParts}${endAdunit}`;\n};\n\nconst getBannerSizes = (sizeId, bannerSizes) =>\n sizeId && bannerSizes && bannerSizes.length\n ? bannerSizes.map(({ width, height }) => [width, height])\n : null;\n\nconst buildBannerSizes = (sizeId, bannerSizes, sizes) => {\n let parsedSizes = getBannerSizes(sizeId, bannerSizes);\n\n if (!parsedSizes && sizes) parsedSizes = getParsedSizes(sizes);\n\n return parsedSizes;\n};\n\nconst buildContextualTargeting = (actionKey, props = {}, propsToDisplay = []) => {\n if (actionKey && props[actionKey] && props[actionKey][0]) {\n const data = props[actionKey][0];\n return buildPropsData(data, propsToDisplay);\n }\n return {};\n};\n\nconst buildSizeMapping = (sizeId, bannerSizes) => {\n let sizeMapping = [];\n\n if (sizeId && bannerSizes && bannerSizes.length) {\n const groupedViewports = bannerSizes.reduce((acc, { width, height, viewports = [] }) => {\n const size = width && height ? [width, height] : null; // if one dimension is falsey then it shouldn't display\n\n if (viewports) {\n viewports.forEach(({ width: viewportWidth, height: viewportHeight }) => {\n const key = `${viewportWidth || 0}x${viewportHeight || 0}`;\n acc[key] = acc[key] || [];\n if (size) acc[key].push(size);\n });\n }\n return acc;\n }, {});\n\n sizeMapping = Object.keys(groupedViewports).map(keyGroupedViewport => {\n const [viewportWidth, viewportHeight] = keyGroupedViewport.split('x');\n return {\n viewport: [Number(viewportWidth), Number(viewportHeight)],\n sizes: groupedViewports[keyGroupedViewport]\n };\n });\n }\n\n return sizeMapping;\n};\n\nconst getMaxBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.max(...bannerSizes.map(o => o.height));\n }\n return MAX_BANNER_HEIGHT;\n};\n\nconst getMinBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.min(...bannerSizes.map(o => o.height));\n }\n return MIN_BANNER_HEIGHT;\n};\n\nconst buildUserQuery = userProps => {\n if (!userProps || !userProps.length) return '';\n const basicProps = [];\n const nestedProps = {};\n userProps.forEach(({ propertiesToDisplay }) => {\n const [propKey] = propertiesToDisplay;\n if (!propKey || propKey === 'id') return;\n if (propKey.indexOf('.') !== -1) {\n const [baseProp, nestedProp] = propKey.split('.');\n if (nestedProps[baseProp]) nestedProps[baseProp].push(nestedProp);\n else nestedProps[baseProp] = [nestedProp];\n } else basicProps.push(propKey);\n });\n\n Object.keys(nestedProps).forEach(nestedKey => {\n const nested = nestedProps[nestedKey];\n basicProps.push(nestedKey);\n basicProps.push('{');\n nested.forEach(prop => basicProps.push(prop));\n basicProps.push('}');\n });\n\n return basicProps.join(' ');\n};\n\nconst buildPropsData = (data, props) => {\n if (!data || !props.length) return {};\n const propsWithData = {};\n\n props.forEach(({ propertiesToDisplay, label }) => {\n const [key] = propertiesToDisplay;\n const parsedKey = key.split('.');\n const value = getNestedValue(parsedKey, data);\n const labelToUse = label || key;\n\n propsWithData[labelToUse] = value;\n });\n return propsWithData;\n};\n\nconst parseArrayValues = (arr, key) =>\n arr\n .map(obj => obj[key])\n .filter(Boolean)\n .join(', ');\n\nconst getNestedValue = (keys, object) => {\n const key = keys.shift();\n const nestedValue = Array.isArray(object) ? parseArrayValues(object, key) : object[key];\n if (!nestedValue) return null;\n return keys.length ? getNestedValue(keys, nestedValue) : nestedValue;\n};\n\nexport {\n getParsedSizes,\n setCustomTargetings,\n buildParsedAdunit,\n buildBannerSizes,\n buildContextualTargeting,\n buildSizeMapping,\n getMaxBannerHeight,\n getMinBannerHeight,\n buildPropsData,\n buildUserQuery\n};\n"],"file":"helpers.js"}
|
|
@@ -52,7 +52,7 @@ const getGenericRenderVariables = (relations, filterProps = {}, stringProps = []
|
|
|
52
52
|
const rawQueryStringified = JSON.stringify({
|
|
53
53
|
query: {
|
|
54
54
|
function_score: {
|
|
55
|
-
query: rawQuery,
|
|
55
|
+
query: rawQuery && rawQuery.query ? rawQuery.query : rawQuery,
|
|
56
56
|
random_score: {},
|
|
57
57
|
boost_mode: 'replace'
|
|
58
58
|
}
|
|
@@ -70,9 +70,7 @@ const getGenericRenderVariables = (relations, filterProps = {}, stringProps = []
|
|
|
70
70
|
limit: limitToUse,
|
|
71
71
|
offset: offsetToUse
|
|
72
72
|
}, sort), {}, {
|
|
73
|
-
rawQueryStringified: JSON.stringify(
|
|
74
|
-
query: rawQuery
|
|
75
|
-
})
|
|
73
|
+
rawQueryStringified: JSON.stringify(rawQuery)
|
|
76
74
|
});
|
|
77
75
|
};
|
|
78
76
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/helpers/get-generic-render-variables.js"],"names":["getSortbyFieldName","DEFAULT_LIMIT","DEFAULT_OFFSET","buildSortValues","sortFilters","relations","stringProps","length","sort","sortValues","map","propsToDisplay","sortFieldName","toLowerCase","filter","Boolean","join","getCorrectSort","filterProps","isTextSearchApplied","sortby","sortProperties","getGenericRenderVariables","rawQuery","isTextSearchFilterApplied","useRandomSort","limit","offset","limitToUse","Number","offsetToUse","rawQueryStringified","JSON","stringify","query","function_score","random_score","boost_mode"],"mappings":";;;;;;AAAA,OAAOA,kBAAP,MAA+B,0BAA/B;AACA,SAASC,aAAT,EAAwBC,cAAxB,QAA8C,cAA9C;;AAEA,MAAMC,eAAe,GAAG,CAACC,WAAD,EAAcC,SAAd,EAAyBC,WAAzB,KAAyC;AAC/D,MAAI,CAACF,WAAD,IAAgB,CAACA,WAAW,CAACG,MAAjC,EAAyC,OAAO;AAAEC,IAAAA,IAAI,EAAE;AAAR,GAAP;AAEzC,QAAMC,UAAU,GAAGL,WAAW,CAC3BM,GADgB,CACZ,CAAC;AAAEF,IAAAA,IAAF;AAAQG,IAAAA;AAAR,GAAD,KAA8B;AACjC,QAAI,CAACH,IAAL,EAAW,OAAO,IAAP;AAEX,UAAMI,aAAa,GAAGZ,kBAAkB,CAACK,SAAD,EAAYM,cAAZ,EAA4BL,WAA5B,CAAxC;AACA,WAAOM,aAAa,GAAI,GAAEA,aAAc,IAAGJ,IAAI,CAACK,WAAL,EAAmB,EAA1C,GAA8C,IAAlE;AACD,GANgB,EAOhBC,MAPgB,CAOTC,OAPS,EAQhBC,IARgB,CAQX,GARW,CAAnB;AAUA,SAAO;AAAER,IAAAA,IAAI,EAAEC;AAAR,GAAP;AACD,CAdD;;AAeA,MAAMQ,cAAc,GAAG,CAACZ,SAAD,EAAYa,WAAZ,EAAyBZ,WAAzB,EAAsCa,mBAAtC,KAA8D;AACnF,MAAIA,mBAAJ,EAAyB;AACvB,WAAO,EAAP;AACD;;AACD,QAAM;AAAEX,IAAAA,IAAF;AAAQY,IAAAA,MAAR;AAAgBC,IAAAA,cAAc,GAAG;AAAjC,MAAwCH,WAA9C;AAEA,SAAOf,eAAe,CACpB,CAAC;AAAEK,IAAAA,IAAF;AAAQG,IAAAA,cAAc,EAAES;AAAxB,GAAD,EAAmC,GAAGC,cAAtC,CADoB,EAEpBhB,SAFoB,EAGpBC,WAHoB,CAAtB;AAKD,CAXD;;AAaA,MAAMgB,yBAAyB,GAAG,CAChCjB,SADgC,EAEhCa,WAAW,GAAG,EAFkB,EAGhCZ,WAAW,GAAG,EAHkB,EAIhCiB,QAAQ,GAAG,EAJqB,EAKhCC,yBAAyB,GAAG,KALI,EAMhCC,aAAa,GAAG,KANgB,KAO7B;AACH,QAAM;AAAEC,IAAAA,KAAK,GAAGzB,aAAV;AAAyB0B,IAAAA;AAAzB,MAAoCT,WAA1C;AACA,QAAMU,UAAU,GAAGC,MAAM,CAACH,KAAK,IAAIzB,aAAV,CAAzB;AACA,QAAM6B,WAAW,GAAGD,MAAM,CAACF,MAAM,IAAIzB,cAAX,CAA1B;;AAEA,MAAIuB,aAAJ,EAAmB;AACjB,UAAMM,mBAAmB,GAAGC,IAAI,CAACC,SAAL,CAAe;AACzCC,MAAAA,KAAK,EAAE;AACLC,QAAAA,cAAc,EAAE;AACdD,UAAAA,KAAK,EAAEX,
|
|
1
|
+
{"version":3,"sources":["../../src/helpers/get-generic-render-variables.js"],"names":["getSortbyFieldName","DEFAULT_LIMIT","DEFAULT_OFFSET","buildSortValues","sortFilters","relations","stringProps","length","sort","sortValues","map","propsToDisplay","sortFieldName","toLowerCase","filter","Boolean","join","getCorrectSort","filterProps","isTextSearchApplied","sortby","sortProperties","getGenericRenderVariables","rawQuery","isTextSearchFilterApplied","useRandomSort","limit","offset","limitToUse","Number","offsetToUse","rawQueryStringified","JSON","stringify","query","function_score","random_score","boost_mode"],"mappings":";;;;;;AAAA,OAAOA,kBAAP,MAA+B,0BAA/B;AACA,SAASC,aAAT,EAAwBC,cAAxB,QAA8C,cAA9C;;AAEA,MAAMC,eAAe,GAAG,CAACC,WAAD,EAAcC,SAAd,EAAyBC,WAAzB,KAAyC;AAC/D,MAAI,CAACF,WAAD,IAAgB,CAACA,WAAW,CAACG,MAAjC,EAAyC,OAAO;AAAEC,IAAAA,IAAI,EAAE;AAAR,GAAP;AAEzC,QAAMC,UAAU,GAAGL,WAAW,CAC3BM,GADgB,CACZ,CAAC;AAAEF,IAAAA,IAAF;AAAQG,IAAAA;AAAR,GAAD,KAA8B;AACjC,QAAI,CAACH,IAAL,EAAW,OAAO,IAAP;AAEX,UAAMI,aAAa,GAAGZ,kBAAkB,CAACK,SAAD,EAAYM,cAAZ,EAA4BL,WAA5B,CAAxC;AACA,WAAOM,aAAa,GAAI,GAAEA,aAAc,IAAGJ,IAAI,CAACK,WAAL,EAAmB,EAA1C,GAA8C,IAAlE;AACD,GANgB,EAOhBC,MAPgB,CAOTC,OAPS,EAQhBC,IARgB,CAQX,GARW,CAAnB;AAUA,SAAO;AAAER,IAAAA,IAAI,EAAEC;AAAR,GAAP;AACD,CAdD;;AAeA,MAAMQ,cAAc,GAAG,CAACZ,SAAD,EAAYa,WAAZ,EAAyBZ,WAAzB,EAAsCa,mBAAtC,KAA8D;AACnF,MAAIA,mBAAJ,EAAyB;AACvB,WAAO,EAAP;AACD;;AACD,QAAM;AAAEX,IAAAA,IAAF;AAAQY,IAAAA,MAAR;AAAgBC,IAAAA,cAAc,GAAG;AAAjC,MAAwCH,WAA9C;AAEA,SAAOf,eAAe,CACpB,CAAC;AAAEK,IAAAA,IAAF;AAAQG,IAAAA,cAAc,EAAES;AAAxB,GAAD,EAAmC,GAAGC,cAAtC,CADoB,EAEpBhB,SAFoB,EAGpBC,WAHoB,CAAtB;AAKD,CAXD;;AAaA,MAAMgB,yBAAyB,GAAG,CAChCjB,SADgC,EAEhCa,WAAW,GAAG,EAFkB,EAGhCZ,WAAW,GAAG,EAHkB,EAIhCiB,QAAQ,GAAG,EAJqB,EAKhCC,yBAAyB,GAAG,KALI,EAMhCC,aAAa,GAAG,KANgB,KAO7B;AACH,QAAM;AAAEC,IAAAA,KAAK,GAAGzB,aAAV;AAAyB0B,IAAAA;AAAzB,MAAoCT,WAA1C;AACA,QAAMU,UAAU,GAAGC,MAAM,CAACH,KAAK,IAAIzB,aAAV,CAAzB;AACA,QAAM6B,WAAW,GAAGD,MAAM,CAACF,MAAM,IAAIzB,cAAX,CAA1B;;AAEA,MAAIuB,aAAJ,EAAmB;AACjB,UAAMM,mBAAmB,GAAGC,IAAI,CAACC,SAAL,CAAe;AACzCC,MAAAA,KAAK,EAAE;AACLC,QAAAA,cAAc,EAAE;AACdD,UAAAA,KAAK,EAAEX,QAAQ,IAAIA,QAAQ,CAACW,KAArB,GAA6BX,QAAQ,CAACW,KAAtC,GAA8CX,QADvC;AAEda,UAAAA,YAAY,EAAE,EAFA;AAGdC,UAAAA,UAAU,EAAE;AAHE;AADX;AADkC,KAAf,CAA5B;AAUA,WAAO;AACLX,MAAAA,KAAK,EAAEE,UADF;AAELD,MAAAA,MAAM,EAAEG,WAFH;AAGLC,MAAAA;AAHK,KAAP;AAKD;;AAED,QAAMvB,IAAI,GAAGS,cAAc,CAACZ,SAAD,EAAYa,WAAZ,EAAyBZ,WAAzB,EAAsCkB,yBAAtC,CAA3B;AAEA;AACEE,IAAAA,KAAK,EAAEE,UADT;AAEED,IAAAA,MAAM,EAAEG;AAFV,KAGKtB,IAHL;AAIEuB,IAAAA,mBAAmB,EAAEC,IAAI,CAACC,SAAL,CAAeV,QAAf;AAJvB;AAMD,CAtCD;;AAwCA,eAAeD,yBAAf","sourcesContent":["import getSortbyFieldName from './get-sort-by-field-name';\nimport { DEFAULT_LIMIT, DEFAULT_OFFSET } from '../constants';\n\nconst buildSortValues = (sortFilters, relations, stringProps) => {\n if (!sortFilters || !sortFilters.length) return { sort: [] };\n\n const sortValues = sortFilters\n .map(({ sort, propsToDisplay }) => {\n if (!sort) return null;\n\n const sortFieldName = getSortbyFieldName(relations, propsToDisplay, stringProps);\n return sortFieldName ? `${sortFieldName}:${sort.toLowerCase()}` : null;\n })\n .filter(Boolean)\n .join(',');\n\n return { sort: sortValues };\n};\nconst getCorrectSort = (relations, filterProps, stringProps, isTextSearchApplied) => {\n if (isTextSearchApplied) {\n return {};\n }\n const { sort, sortby, sortProperties = [] } = filterProps;\n\n return buildSortValues(\n [{ sort, propsToDisplay: sortby }, ...sortProperties],\n relations,\n stringProps\n );\n};\n\nconst getGenericRenderVariables = (\n relations,\n filterProps = {},\n stringProps = [],\n rawQuery = {},\n isTextSearchFilterApplied = false,\n useRandomSort = false\n) => {\n const { limit = DEFAULT_LIMIT, offset } = filterProps;\n const limitToUse = Number(limit || DEFAULT_LIMIT);\n const offsetToUse = Number(offset || DEFAULT_OFFSET);\n\n if (useRandomSort) {\n const rawQueryStringified = JSON.stringify({\n query: {\n function_score: {\n query: rawQuery && rawQuery.query ? rawQuery.query : rawQuery,\n random_score: {},\n boost_mode: 'replace'\n }\n }\n });\n\n return {\n limit: limitToUse,\n offset: offsetToUse,\n rawQueryStringified\n };\n }\n\n const sort = getCorrectSort(relations, filterProps, stringProps, isTextSearchFilterApplied);\n\n return {\n limit: limitToUse,\n offset: offsetToUse,\n ...sort,\n rawQueryStringified: JSON.stringify(rawQuery)\n };\n};\n\nexport default getGenericRenderVariables;\n"],"file":"get-generic-render-variables.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.120.0-alpha.
|
|
3
|
+
"version": "0.120.0-alpha.5",
|
|
4
4
|
"description": "Blaze react page builder",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -83,5 +83,5 @@
|
|
|
83
83
|
"lib/*",
|
|
84
84
|
"lib-es/*"
|
|
85
85
|
],
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "1d1badcf0d16f82f00fa93a1d09294d8cf64312e"
|
|
87
87
|
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import React, { useContext } from 'react';
|
|
2
2
|
import { MainContext } from '@blaze-cms/nextjs-components';
|
|
3
|
+
import { checkIfLoggedIn } from '@blaze-cms/core-auth-ui';
|
|
3
4
|
import PropTypes from 'prop-types';
|
|
4
5
|
import flatten from 'lodash.flatten';
|
|
5
6
|
import { useQuery } from '@apollo/client';
|
|
6
7
|
import { useRouter } from 'next/router';
|
|
7
|
-
import {
|
|
8
|
+
import { buildUserQuery, buildPropsData } from './helpers';
|
|
9
|
+
import { getSingleEntitySchema, getUser } from '../../application/query';
|
|
8
10
|
import Wrapper from '../Wrapper';
|
|
9
11
|
import BannerRender from './BannerRender';
|
|
10
12
|
import buildPropsQuery from '../../helpers/build-props-query';
|
|
@@ -14,15 +16,20 @@ import getEntityRenderProps from '../../helpers/get-entity-render-props';
|
|
|
14
16
|
const Banner = ({ type, ...otherProps }) => {
|
|
15
17
|
const router = useRouter();
|
|
16
18
|
const { isPreview } = useContext(MainContext);
|
|
19
|
+
const { id: userId } = checkIfLoggedIn();
|
|
17
20
|
const { asPath } = router;
|
|
18
|
-
const { parent, entity, sizeId, propsToDisplay = [] } = otherProps;
|
|
19
|
-
|
|
21
|
+
const { parent, entity, sizeId, propsToDisplay = [], userPropsToDisplay = [] } = otherProps;
|
|
22
|
+
const userQuery = buildUserQuery(userPropsToDisplay);
|
|
20
23
|
const { itemEntity } = parent;
|
|
21
24
|
const { data, error, loading } = useQuery(getSingleEntitySchema, {
|
|
22
25
|
variables: { id: entity || itemEntity }
|
|
23
26
|
});
|
|
27
|
+
const { data: { getUser: userData } = {}, loading: userLoading } = useQuery(getUser(userQuery), {
|
|
28
|
+
variables: { id: userId },
|
|
29
|
+
skip: !userPropsToDisplay.length || !userId
|
|
30
|
+
});
|
|
24
31
|
|
|
25
|
-
if (loading) return '';
|
|
32
|
+
if (loading || userLoading) return '';
|
|
26
33
|
if (error) return error.message;
|
|
27
34
|
if (!data) return null;
|
|
28
35
|
if (!sizeId) return null;
|
|
@@ -35,6 +42,7 @@ const Banner = ({ type, ...otherProps }) => {
|
|
|
35
42
|
: []
|
|
36
43
|
);
|
|
37
44
|
|
|
45
|
+
const userPropsData = buildPropsData(userData, userPropsToDisplay);
|
|
38
46
|
const { actionKey, action } = getEntityRenderProps(queryProps, data, isPreview);
|
|
39
47
|
const bannerKey = `${sizeId}${asPath}`;
|
|
40
48
|
|
|
@@ -46,6 +54,7 @@ const Banner = ({ type, ...otherProps }) => {
|
|
|
46
54
|
action={action}
|
|
47
55
|
actionKey={actionKey}
|
|
48
56
|
asPath={asPath}
|
|
57
|
+
userPropsData={userPropsData}
|
|
49
58
|
/>
|
|
50
59
|
</Wrapper>
|
|
51
60
|
);
|
|
@@ -33,6 +33,7 @@ const BannerRender = ({
|
|
|
33
33
|
action,
|
|
34
34
|
actionKey,
|
|
35
35
|
cardBannerIndex,
|
|
36
|
+
userPropsData,
|
|
36
37
|
...otherProps
|
|
37
38
|
}) => {
|
|
38
39
|
const { id } = otherProps;
|
|
@@ -63,7 +64,6 @@ const BannerRender = ({
|
|
|
63
64
|
});
|
|
64
65
|
|
|
65
66
|
const parsedTargetings = buildContextualTargeting(actionKey, entityRecordData, propsToDisplay);
|
|
66
|
-
|
|
67
67
|
const { entityData } = bannerData;
|
|
68
68
|
const { sizes: bannerSizes } = entityData || {};
|
|
69
69
|
|
|
@@ -81,7 +81,7 @@ const BannerRender = ({
|
|
|
81
81
|
|
|
82
82
|
const customTargetings = setCustomTargetings(targetings, cardBannerIndex);
|
|
83
83
|
|
|
84
|
-
const targetingArguments = { ...parsedTargetings, ...customTargetings };
|
|
84
|
+
const targetingArguments = { ...parsedTargetings, ...customTargetings, ...userPropsData };
|
|
85
85
|
|
|
86
86
|
return (
|
|
87
87
|
<AdSlotRender
|
|
@@ -107,7 +107,8 @@ BannerRender.propTypes = {
|
|
|
107
107
|
entity: PropTypes.string,
|
|
108
108
|
targetings: PropTypes.string,
|
|
109
109
|
sizes: PropTypes.string,
|
|
110
|
-
cardBannerIndex: PropTypes.number
|
|
110
|
+
cardBannerIndex: PropTypes.number,
|
|
111
|
+
userPropsData: PropTypes.object
|
|
111
112
|
};
|
|
112
113
|
|
|
113
114
|
BannerRender.defaultProps = {
|
|
@@ -118,7 +119,8 @@ BannerRender.defaultProps = {
|
|
|
118
119
|
entity: '',
|
|
119
120
|
targetings: '',
|
|
120
121
|
sizes: '',
|
|
121
|
-
cardBannerIndex: null
|
|
122
|
+
cardBannerIndex: null,
|
|
123
|
+
userPropsData: {}
|
|
122
124
|
};
|
|
123
125
|
|
|
124
126
|
export default withTitle(BannerRender);
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { parseUrl } from 'query-string';
|
|
2
|
-
import flatten from 'lodash.flatten';
|
|
3
|
-
import getPropValues from '../../helpers/get-prop-values';
|
|
4
2
|
import { END_ADUNIT, MAX_BANNER_HEIGHT, MIN_BANNER_HEIGHT } from '../../constants';
|
|
5
3
|
|
|
6
4
|
const getParsedSizes = (sizes = '') => {
|
|
@@ -82,12 +80,8 @@ const buildBannerSizes = (sizeId, bannerSizes, sizes) => {
|
|
|
82
80
|
|
|
83
81
|
const buildContextualTargeting = (actionKey, props = {}, propsToDisplay = []) => {
|
|
84
82
|
if (actionKey && props[actionKey] && props[actionKey][0]) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const parsedValue = Array.isArray(propValue) ? flatten(propValue) : propValue;
|
|
88
|
-
acc[label] = parsedValue;
|
|
89
|
-
return acc;
|
|
90
|
-
}, {});
|
|
83
|
+
const data = props[actionKey][0];
|
|
84
|
+
return buildPropsData(data, propsToDisplay);
|
|
91
85
|
}
|
|
92
86
|
return {};
|
|
93
87
|
};
|
|
@@ -135,6 +129,59 @@ const getMinBannerHeight = bannerSizes => {
|
|
|
135
129
|
return MIN_BANNER_HEIGHT;
|
|
136
130
|
};
|
|
137
131
|
|
|
132
|
+
const buildUserQuery = userProps => {
|
|
133
|
+
if (!userProps || !userProps.length) return '';
|
|
134
|
+
const basicProps = [];
|
|
135
|
+
const nestedProps = {};
|
|
136
|
+
userProps.forEach(({ propertiesToDisplay }) => {
|
|
137
|
+
const [propKey] = propertiesToDisplay;
|
|
138
|
+
if (!propKey || propKey === 'id') return;
|
|
139
|
+
if (propKey.indexOf('.') !== -1) {
|
|
140
|
+
const [baseProp, nestedProp] = propKey.split('.');
|
|
141
|
+
if (nestedProps[baseProp]) nestedProps[baseProp].push(nestedProp);
|
|
142
|
+
else nestedProps[baseProp] = [nestedProp];
|
|
143
|
+
} else basicProps.push(propKey);
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
Object.keys(nestedProps).forEach(nestedKey => {
|
|
147
|
+
const nested = nestedProps[nestedKey];
|
|
148
|
+
basicProps.push(nestedKey);
|
|
149
|
+
basicProps.push('{');
|
|
150
|
+
nested.forEach(prop => basicProps.push(prop));
|
|
151
|
+
basicProps.push('}');
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
return basicProps.join(' ');
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
const buildPropsData = (data, props) => {
|
|
158
|
+
if (!data || !props.length) return {};
|
|
159
|
+
const propsWithData = {};
|
|
160
|
+
|
|
161
|
+
props.forEach(({ propertiesToDisplay, label }) => {
|
|
162
|
+
const [key] = propertiesToDisplay;
|
|
163
|
+
const parsedKey = key.split('.');
|
|
164
|
+
const value = getNestedValue(parsedKey, data);
|
|
165
|
+
const labelToUse = label || key;
|
|
166
|
+
|
|
167
|
+
propsWithData[labelToUse] = value;
|
|
168
|
+
});
|
|
169
|
+
return propsWithData;
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
const parseArrayValues = (arr, key) =>
|
|
173
|
+
arr
|
|
174
|
+
.map(obj => obj[key])
|
|
175
|
+
.filter(Boolean)
|
|
176
|
+
.join(', ');
|
|
177
|
+
|
|
178
|
+
const getNestedValue = (keys, object) => {
|
|
179
|
+
const key = keys.shift();
|
|
180
|
+
const nestedValue = Array.isArray(object) ? parseArrayValues(object, key) : object[key];
|
|
181
|
+
if (!nestedValue) return null;
|
|
182
|
+
return keys.length ? getNestedValue(keys, nestedValue) : nestedValue;
|
|
183
|
+
};
|
|
184
|
+
|
|
138
185
|
export {
|
|
139
186
|
getParsedSizes,
|
|
140
187
|
setCustomTargetings,
|
|
@@ -143,5 +190,7 @@ export {
|
|
|
143
190
|
buildContextualTargeting,
|
|
144
191
|
buildSizeMapping,
|
|
145
192
|
getMaxBannerHeight,
|
|
146
|
-
getMinBannerHeight
|
|
193
|
+
getMinBannerHeight,
|
|
194
|
+
buildPropsData,
|
|
195
|
+
buildUserQuery
|
|
147
196
|
};
|
|
@@ -45,7 +45,7 @@ const getGenericRenderVariables = (
|
|
|
45
45
|
const rawQueryStringified = JSON.stringify({
|
|
46
46
|
query: {
|
|
47
47
|
function_score: {
|
|
48
|
-
query: rawQuery,
|
|
48
|
+
query: rawQuery && rawQuery.query ? rawQuery.query : rawQuery,
|
|
49
49
|
random_score: {},
|
|
50
50
|
boost_mode: 'replace'
|
|
51
51
|
}
|
|
@@ -65,9 +65,7 @@ const getGenericRenderVariables = (
|
|
|
65
65
|
limit: limitToUse,
|
|
66
66
|
offset: offsetToUse,
|
|
67
67
|
...sort,
|
|
68
|
-
rawQueryStringified: JSON.stringify(
|
|
69
|
-
query: rawQuery
|
|
70
|
-
})
|
|
68
|
+
rawQueryStringified: JSON.stringify(rawQuery)
|
|
71
69
|
};
|
|
72
70
|
};
|
|
73
71
|
|
|
@@ -17,10 +17,6 @@ const tagsTargetingResult = { tags: ['destinations', 'models'] };
|
|
|
17
17
|
|
|
18
18
|
describe('getParsedSizes helper', () => {
|
|
19
19
|
const sizes = getParsedSizes(mockedSizes);
|
|
20
|
-
it('should be a function', () => {
|
|
21
|
-
expect(typeof getParsedSizes).toEqual('function');
|
|
22
|
-
});
|
|
23
|
-
|
|
24
20
|
it('should match snapshot', () => {
|
|
25
21
|
expect(getParsedSizes).toMatchSnapshot();
|
|
26
22
|
});
|
|
@@ -46,10 +42,6 @@ describe('getParsedSizes helper', () => {
|
|
|
46
42
|
describe('setCustomTargetings helper', () => {
|
|
47
43
|
const targetingsEmpty = setCustomTargetings('');
|
|
48
44
|
|
|
49
|
-
it('should be a function', () => {
|
|
50
|
-
expect(typeof setCustomTargetings).toEqual('function');
|
|
51
|
-
});
|
|
52
|
-
|
|
53
45
|
it('should always return an object', () => {
|
|
54
46
|
expect(typeof targetingsEmpty).toBe('object');
|
|
55
47
|
});
|
|
@@ -85,10 +77,6 @@ describe('buildParsedAdunit helper', () => {
|
|
|
85
77
|
const parsedAdunit = buildParsedAdunit('/test-path/article', 0, '', '');
|
|
86
78
|
const parsedAdunitEmpty = buildParsedAdunit('/test-path/article', undefined, '', '');
|
|
87
79
|
|
|
88
|
-
it('should be a function', () => {
|
|
89
|
-
expect(typeof buildParsedAdunit).toEqual('function');
|
|
90
|
-
});
|
|
91
|
-
|
|
92
80
|
it('should always return a string', () => {
|
|
93
81
|
expect(typeof parsedAdunit).toBe('string');
|
|
94
82
|
expect(typeof parsedAdunitEmpty).toBe('string');
|
|
@@ -125,10 +113,6 @@ describe('buildParsedAdunit helper', () => {
|
|
|
125
113
|
});
|
|
126
114
|
|
|
127
115
|
describe('buildBannerSizes helper', () => {
|
|
128
|
-
it('should be a function', () => {
|
|
129
|
-
expect(typeof buildBannerSizes).toEqual('function');
|
|
130
|
-
});
|
|
131
|
-
|
|
132
116
|
it('should return an array of sizes based on given sizeId', () => {
|
|
133
117
|
const parsedSizes = buildBannerSizes(
|
|
134
118
|
'sizeId',
|
|
@@ -145,10 +129,6 @@ describe('buildBannerSizes helper', () => {
|
|
|
145
129
|
});
|
|
146
130
|
|
|
147
131
|
describe('buildContextualTargeting helper', () => {
|
|
148
|
-
it('should be a function', () => {
|
|
149
|
-
expect(typeof buildContextualTargeting).toEqual('function');
|
|
150
|
-
});
|
|
151
|
-
|
|
152
132
|
it('should return an empty object if no data received', () => {
|
|
153
133
|
const contextualTargeting = buildContextualTargeting('getPages', {}, []);
|
|
154
134
|
expect(contextualTargeting).toEqual({});
|
|
@@ -174,7 +154,7 @@ describe('buildContextualTargeting helper', () => {
|
|
|
174
154
|
{ getPages: [{ metaTitle: 'test' }] },
|
|
175
155
|
[{ label: 'definedKey', propertiesToDisplay: ['metaTitle'] }]
|
|
176
156
|
);
|
|
177
|
-
expect(contextualTargeting).toEqual({ definedKey:
|
|
157
|
+
expect(contextualTargeting).toEqual({ definedKey: 'test' });
|
|
178
158
|
});
|
|
179
159
|
|
|
180
160
|
it('should return an object with correct targeting when the selected prop value is array', () => {
|
|
@@ -183,15 +163,11 @@ describe('buildContextualTargeting helper', () => {
|
|
|
183
163
|
{ getPages: [{ tags: [{ name: 'tag1' }, { name: 'tag2' }] }] },
|
|
184
164
|
[{ label: 'tagKey', propertiesToDisplay: ['tags.name'] }]
|
|
185
165
|
);
|
|
186
|
-
expect(contextualTargeting).toEqual({ tagKey:
|
|
166
|
+
expect(contextualTargeting).toEqual({ tagKey: 'tag1, tag2' });
|
|
187
167
|
});
|
|
188
168
|
});
|
|
189
169
|
|
|
190
170
|
describe('buildSizeMapping helper', () => {
|
|
191
|
-
it('should be a function', () => {
|
|
192
|
-
expect(typeof buildSizeMapping).toEqual('function');
|
|
193
|
-
});
|
|
194
|
-
|
|
195
171
|
it('should always return an array', () => {
|
|
196
172
|
const sizeMapping = buildSizeMapping('id', [
|
|
197
173
|
{ width: 1, height: 1, viewport: [{ width: 1024, height: 0 }] }
|