@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 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
- if (loading) return '';
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","id","data","error","loading","message","modifiers","queryProps","length","map","propertiesToDisplay","actionKey","action","bannerKey","propTypes","PropTypes","string","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;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,MAAQC,MAAR,GAAmBH,MAAnB,CAAQG,MAAR;AACA,MAAQC,MAAR,GAAwDL,UAAxD,CAAQK,MAAR;AAAA,MAAgBC,MAAhB,GAAwDN,UAAxD,CAAgBM,MAAhB;AAAA,MAAwBC,MAAxB,GAAwDP,UAAxD,CAAwBO,MAAxB;AAAA,8BAAwDP,UAAxD,CAAgCQ,cAAhC;AAAA,MAAgCA,cAAhC,sCAAiD,EAAjD;AAEA,MAAQC,UAAR,GAAuBJ,MAAvB,CAAQI,UAAR;;AACA,kBAAiC,sBAASC,4BAAT,EAAgC;AAC/DC,IAAAA,SAAS,EAAE;AAAEC,MAAAA,EAAE,EAAEN,MAAM,IAAIG;AAAhB;AADoD,GAAhC,CAAjC;AAAA,MAAQI,IAAR,aAAQA,IAAR;AAAA,MAAcC,KAAd,aAAcA,KAAd;AAAA,MAAqBC,OAArB,aAAqBA,OAArB;;AAIA,MAAIA,OAAJ,EAAa,OAAO,EAAP;AACb,MAAID,KAAJ,EAAW,OAAOA,KAAK,CAACE,OAAb;AACX,MAAI,CAACH,IAAL,EAAW,OAAO,IAAP;AACX,MAAI,CAACN,MAAL,EAAa,OAAO,IAAP;AAEb,MAAMU,SAAS,GAAG,8BAAkB,QAAlB,EAA4BjB,UAA5B,CAAlB;AACA,MAAMkB,UAAU,GAAG,iCACjBL,IADiB,EAEjBL,cAAc,CAACW,MAAf,GACI,wBAAQX,cAAc,CAACY,GAAf,CAAmB;AAAA,QAAGC,mBAAH,SAAGA,mBAAH;AAAA,WAA6BA,mBAA7B;AAAA,GAAnB,CAAR,CADJ,GAEI,EAJa,CAAnB;;AAOA,8BAA8B,uCAAqBH,UAArB,EAAiCL,IAAjC,EAAuCV,SAAvC,CAA9B;AAAA,MAAQmB,SAAR,yBAAQA,SAAR;AAAA,MAAmBC,MAAnB,yBAAmBA,MAAnB;;AACA,MAAMC,SAAS,aAAMjB,MAAN,SAAeH,MAAf,CAAf;AAEA,sBACE,gCAAC,mBAAD;AAAS,IAAA,SAAS,EAAEL,IAApB;AAA0B,IAAA,SAAS,EAAEkB;AAArC,kBACE,gCAAC,wBAAD;AACE,IAAA,GAAG,EAAEO;AADP,KAEMxB,UAFN;AAGE,IAAA,MAAM,EAAEuB,MAHV;AAIE,IAAA,SAAS,EAAED,SAJb;AAKE,IAAA,MAAM,EAAElB;AALV,KADF,CADF;AAWD,CAtCD;;AAwCAN,MAAM,CAAC2B,SAAP,GAAmB;AACjB1B,EAAAA,IAAI,EAAE2B,sBAAUC;AADC,CAAnB;AAIA7B,MAAM,CAAC8B,YAAP,GAAsB;AACpB7B,EAAAA,IAAI,EAAE;AADc,CAAtB;eAIeD,M","sourcesContent":["import React, { useContext } from 'react';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport PropTypes from 'prop-types';\nimport flatten from 'lodash.flatten';\nimport { useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { getSingleEntitySchema } 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 { asPath } = router;\n const { parent, entity, sizeId, propsToDisplay = [] } = otherProps;\n\n const { itemEntity } = parent;\n const { data, error, loading } = useQuery(getSingleEntitySchema, {\n variables: { id: entity || itemEntity }\n });\n\n if (loading) 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 { 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 />\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
+ {"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":"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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"}
@@ -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":"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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 ...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\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 };\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};\n\nBannerRender.defaultProps = {\n adunit: '',\n baseAdunit: '',\n sizeId: '',\n propsToDisplay: [],\n entity: '',\n targetings: '',\n sizes: '',\n cardBannerIndex: null\n};\n\nexport default withTitle(BannerRender);\n"],"file":"BannerRender.js"}
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
- var _queryString = require("query-string");
63
-
64
- var _lodash = _interopRequireDefault(require("lodash.flatten"));
62
+ require("core-js/modules/es.array.index-of.js");
65
63
 
66
- var _getPropValues = _interopRequireDefault(require("../../helpers/get-prop-values"));
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
- return propsToDisplay.reduce(function (acc, _ref2) {
165
- var label = _ref2.label,
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, _ref3) {
184
- var width = _ref3.width,
185
- height = _ref3.height,
186
- _ref3$viewports = _ref3.viewports,
187
- viewports = _ref3$viewports === void 0 ? [] : _ref3$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 (_ref4) {
192
- var viewportWidth = _ref4.width,
193
- viewportHeight = _ref4.height;
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":"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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":["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":"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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"}
@@ -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":"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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,\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({\n query: rawQuery\n })\n };\n};\n\nexport default getGenericRenderVariables;\n"],"file":"get-generic-render-variables.js"}
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 { getSingleEntitySchema } from '../../application/query';
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
- if (loading) return '';
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","id","message","modifiers","queryProps","length","map","propertiesToDisplay","actionKey","action","bannerKey","propTypes","string","defaultProps"],"mappings":";;;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,SAASC,WAAT,QAA4B,8BAA5B;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,OAAP,MAAoB,gBAApB;AACA,SAASC,QAAT,QAAyB,gBAAzB;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,SAASC,qBAAT,QAAsC,yBAAtC;AACA,OAAOC,OAAP,MAAoB,YAApB;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AACA,OAAOC,eAAP,MAA4B,iCAA5B;AACA,SAASC,iBAAT,QAAkC,aAAlC;AACA,OAAOC,oBAAP,MAAiC,uCAAjC;;AAEA,MAAMC,MAAM,GAAG,QAA6B;AAAA,MAA5B;AAAEC,IAAAA;AAAF,GAA4B;AAAA,MAAjBC,UAAiB;;AAC1C,QAAMC,MAAM,GAAGV,SAAS,EAAxB;AACA,QAAM;AAAEW,IAAAA;AAAF,MAAgBhB,UAAU,CAACC,WAAD,CAAhC;AACA,QAAM;AAAEgB,IAAAA;AAAF,MAAaF,MAAnB;AACA,QAAM;AAAEG,IAAAA,MAAF;AAAUC,IAAAA,MAAV;AAAkBC,IAAAA,MAAlB;AAA0BC,IAAAA,cAAc,GAAG;AAA3C,MAAkDP,UAAxD;AAEA,QAAM;AAAEQ,IAAAA;AAAF,MAAiBJ,MAAvB;AACA,QAAM;AAAEK,IAAAA,IAAF;AAAQC,IAAAA,KAAR;AAAeC,IAAAA;AAAf,MAA2BrB,QAAQ,CAACE,qBAAD,EAAwB;AAC/DoB,IAAAA,SAAS,EAAE;AAAEC,MAAAA,EAAE,EAAER,MAAM,IAAIG;AAAhB;AADoD,GAAxB,CAAzC;AAIA,MAAIG,OAAJ,EAAa,OAAO,EAAP;AACb,MAAID,KAAJ,EAAW,OAAOA,KAAK,CAACI,OAAb;AACX,MAAI,CAACL,IAAL,EAAW,OAAO,IAAP;AACX,MAAI,CAACH,MAAL,EAAa,OAAO,IAAP;AAEb,QAAMS,SAAS,GAAGnB,iBAAiB,CAAC,QAAD,EAAWI,UAAX,CAAnC;AACA,QAAMgB,UAAU,GAAGrB,eAAe,CAChCc,IADgC,EAEhCF,cAAc,CAACU,MAAf,GACI5B,OAAO,CAACkB,cAAc,CAACW,GAAf,CAAmB,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAA6BA,mBAAhD,CAAD,CADX,GAEI,EAJ4B,CAAlC;AAOA,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAAwBxB,oBAAoB,CAACmB,UAAD,EAAaP,IAAb,EAAmBP,SAAnB,CAAlD;AACA,QAAMoB,SAAS,GAAI,GAAEhB,MAAO,GAAEH,MAAO,EAArC;AAEA,sBACE,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAEJ,IAApB;AAA0B,IAAA,SAAS,EAAEgB;AAArC,kBACE,oBAAC,YAAD;AACE,IAAA,GAAG,EAAEO;AADP,KAEMtB,UAFN;AAGE,IAAA,MAAM,EAAEqB,MAHV;AAIE,IAAA,SAAS,EAAED,SAJb;AAKE,IAAA,MAAM,EAAEjB;AALV,KADF,CADF;AAWD,CAtCD;;AAwCAL,MAAM,CAACyB,SAAP,GAAmB;AACjBxB,EAAAA,IAAI,EAAEX,SAAS,CAACoC;AADC,CAAnB;AAIA1B,MAAM,CAAC2B,YAAP,GAAsB;AACpB1B,EAAAA,IAAI,EAAE;AADc,CAAtB;AAIA,eAAeD,MAAf","sourcesContent":["import React, { useContext } from 'react';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport PropTypes from 'prop-types';\nimport flatten from 'lodash.flatten';\nimport { useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { getSingleEntitySchema } 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 { asPath } = router;\n const { parent, entity, sizeId, propsToDisplay = [] } = otherProps;\n\n const { itemEntity } = parent;\n const { data, error, loading } = useQuery(getSingleEntitySchema, {\n variables: { id: entity || itemEntity }\n });\n\n if (loading) 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 { 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 />\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
+ {"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":"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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 ...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\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 };\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};\n\nBannerRender.defaultProps = {\n adunit: '',\n baseAdunit: '',\n sizeId: '',\n propsToDisplay: [],\n entity: '',\n targetings: '',\n sizes: '',\n cardBannerIndex: null\n};\n\nexport default withTitle(BannerRender);\n"],"file":"BannerRender.js"}
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
- return propsToDisplay.reduce((acc, {
76
- label,
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
- export { getParsedSizes, setCustomTargetings, buildParsedAdunit, buildBannerSizes, buildContextualTargeting, buildSizeMapping, getMaxBannerHeight, getMinBannerHeight };
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,QADO;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,CAAe;AAClCC,MAAAA,KAAK,EAAEX;AAD2B,KAAf;AAJvB;AAQD,CAxCD;;AA0CA,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,\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({\n query: rawQuery\n })\n };\n};\n\nexport default getGenericRenderVariables;\n"],"file":"get-generic-render-variables.js"}
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.1",
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": "141778c58187ccf5dcce736bd5829ba3d805a755"
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 { getSingleEntitySchema } from '../../application/query';
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
- return propsToDisplay.reduce((acc, { label, propertiesToDisplay }) => {
86
- const propValue = getPropValues(propertiesToDisplay, props[actionKey][0]);
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: ['test'] });
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: ['tag1', 'tag2'] });
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 }] }