@blaze-cms/react-page-builder 0.120.0-alpha.1 → 0.120.0-alpha.2

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,17 @@
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.2](https://github.com/thebyte9/blaze/compare/v0.120.0-alpha.1...v0.120.0-alpha.2) (2022-02-15)
7
+
8
+
9
+ ### Features
10
+
11
+ * add user props to baners ([#3332](https://github.com/thebyte9/blaze/issues/3332)) ([e6818c7](https://github.com/thebyte9/blaze/commit/e6818c738864e7e1ccf7ea7072c9c2bb3bb3d367))
12
+
13
+
14
+
15
+
16
+
6
17
  # [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
18
 
8
19
 
@@ -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,16 @@ 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
+ userData = _useQuery2.data,
106
+ userLoading = _useQuery2.loading;
107
+
108
+ if (loading || userLoading) return '';
90
109
  if (error) return error.message;
91
110
  if (!data) return null;
92
111
  if (!sizeId) return null;
@@ -95,6 +114,7 @@ var Banner = function Banner(_ref) {
95
114
  var propertiesToDisplay = _ref2.propertiesToDisplay;
96
115
  return propertiesToDisplay;
97
116
  })) : []);
117
+ var userPropsData = (0, _helpers.buildUserPropsData)(userData, userPropsToDisplay);
98
118
 
99
119
  var _getEntityRenderProps = (0, _getEntityRenderProps2["default"])(queryProps, data, isPreview),
100
120
  actionKey = _getEntityRenderProps.actionKey,
@@ -109,7 +129,8 @@ var Banner = function Banner(_ref) {
109
129
  }, otherProps, {
110
130
  action: action,
111
131
  actionKey: actionKey,
112
- asPath: asPath
132
+ asPath: asPath,
133
+ userPropsData: userPropsData
113
134
  })));
114
135
  };
115
136
 
@@ -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","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, buildUserPropsData } 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: 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 = buildUserPropsData(userData, userPropsToDisplay);\n const { actionKey, action } = getEntityRenderProps(queryProps, data, isPreview);\n const bannerKey = `${sizeId}${asPath}`;\n\n return (\n <Wrapper className={type} modifiers={modifiers}>\n <BannerRender\n key={bannerKey}\n {...otherProps}\n action={action}\n actionKey={actionKey}\n asPath={asPath}\n userPropsData={userPropsData}\n />\n </Wrapper>\n );\n};\n\nBanner.propTypes = {\n type: PropTypes.string\n};\n\nBanner.defaultProps = {\n type: 'banner'\n};\n\nexport default Banner;\n"],"file":"Banner.js"}
@@ -47,7 +47,7 @@ var _HOC = require("../../HOC");
47
47
 
48
48
  var _AdSlotRender = _interopRequireDefault(require("./AdSlotRender"));
49
49
 
50
- var _excluded = ["baseAdunit", "adunit", "sizeId", "sizes", "propsToDisplay", "entity", "targetings", "parent", "asPath", "action", "actionKey", "cardBannerIndex"];
50
+ var _excluded = ["baseAdunit", "adunit", "sizeId", "sizes", "propsToDisplay", "entity", "targetings", "parent", "asPath", "action", "actionKey", "cardBannerIndex", "userPropsData"];
51
51
 
52
52
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
53
53
 
@@ -66,6 +66,7 @@ var BannerRender = function BannerRender(_ref) {
66
66
  action = _ref.action,
67
67
  actionKey = _ref.actionKey,
68
68
  cardBannerIndex = _ref.cardBannerIndex,
69
+ userPropsData = _ref.userPropsData,
69
70
  otherProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
70
71
  var id = otherProps.id;
71
72
  var itemId = parent.itemId;
@@ -118,7 +119,7 @@ var BannerRender = function BannerRender(_ref) {
118
119
  var shouldShowBanner = parsedAdunit && parsedSizes && !!parsedSizes.length && isContextualTargetingReady;
119
120
  var customTargetings = (0, _helpers.setCustomTargetings)(targetings, cardBannerIndex);
120
121
 
121
- var targetingArguments = _objectSpread(_objectSpread({}, parsedTargetings), customTargetings);
122
+ var targetingArguments = _objectSpread(_objectSpread(_objectSpread({}, parsedTargetings), customTargetings), userPropsData);
122
123
 
123
124
  return /*#__PURE__*/_react["default"].createElement(_AdSlotRender["default"], {
124
125
  shouldShowBanner: !!shouldShowBanner,
@@ -142,7 +143,8 @@ BannerRender.propTypes = {
142
143
  entity: _propTypes["default"].string,
143
144
  targetings: _propTypes["default"].string,
144
145
  sizes: _propTypes["default"].string,
145
- cardBannerIndex: _propTypes["default"].number
146
+ cardBannerIndex: _propTypes["default"].number,
147
+ userPropsData: _propTypes["default"].object
146
148
  };
147
149
  BannerRender.defaultProps = {
148
150
  adunit: '',
@@ -152,7 +154,8 @@ BannerRender.defaultProps = {
152
154
  entity: '',
153
155
  targetings: '',
154
156
  sizes: '',
155
- cardBannerIndex: null
157
+ cardBannerIndex: null,
158
+ userPropsData: {}
156
159
  };
157
160
 
158
161
  var _default = (0, _HOC.withTitle)(BannerRender);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Banner/BannerRender.js"],"names":["BannerRender","baseAdunit","adunit","sizeId","sizes","propsToDisplay","entity","targetings","parent","asPath","action","actionKey","cardBannerIndex","otherProps","id","itemId","variables","where","skip","data","entityRecordData","GET_BANNER","BANNER_QUERY_PROPS","bannerData","COUNT_CONTENT_HIERARCHIES","parentId","childEntity","_ilike","PUBLISHED","parsedTargetings","entityData","bannerSizes","sizeMapping","parsedSizes","countContentHierarchies","parsedAdunit","isContextualTargetingSet","length","Object","keys","isContextualTargetingReady","shouldShowBanner","customTargetings","targetingArguments","propTypes","PropTypes","object","isRequired","string","array","number","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AAOA;;AAMA;;AACA;;;;;;;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe,OAcf;AAAA,MAbJC,UAaI,QAbJA,UAaI;AAAA,MAZJC,MAYI,QAZJA,MAYI;AAAA,MAXJC,MAWI,QAXJA,MAWI;AAAA,MAVJC,KAUI,QAVJA,KAUI;AAAA,MATJC,cASI,QATJA,cASI;AAAA,MARJC,MAQI,QARJA,MAQI;AAAA,MAPJC,UAOI,QAPJA,UAOI;AAAA,MANJC,MAMI,QANJA,MAMI;AAAA,MALJC,MAKI,QALJA,MAKI;AAAA,MAJJC,MAII,QAJJA,MAII;AAAA,MAHJC,SAGI,QAHJA,SAGI;AAAA,MAFJC,eAEI,QAFJA,eAEI;AAAA,MADDC,UACC;AACJ,MAAQC,EAAR,GAAeD,UAAf,CAAQC,EAAR;AACA,MAAQC,MAAR,GAAmBP,MAAnB,CAAQO,MAAR;;AAEA,kBAAwC,sBAASL,MAAT,EAAiB;AACvDM,IAAAA,SAAS,EAAE;AAAEC,MAAAA,KAAK,EAAE;AAAEH,QAAAA,EAAE,EAAEA,EAAE,IAAIC;AAAZ;AAAT,KAD4C;AAEvDG,IAAAA,IAAI,EAAEJ,EAAE,IAAIA,EAAE,KAAKC;AAFoC,GAAjB,CAAxC;AAAA,iCAAQI,IAAR;AAAA,MAAcC,gBAAd,+BAAiC,EAAjC;;AAKA,mBAAkC,sBAChC,oCAAwBC,qBAAxB,EAAoCC,6BAApC,CADgC,EAEhC;AACEN,IAAAA,SAAS,EAAE;AAAEF,MAAAA,EAAE,EAAEX;AAAN,KADb;AAEEe,IAAAA,IAAI,EAAE,CAACf;AAFT,GAFgC,CAAlC;AAAA,mCAAQgB,IAAR;AAAA,MAAcI,UAAd,gCAA2B,EAA3B;;AAQA,mBAAsB,sBAAS,qBAASC,oCAAT,CAAT,EAA8C;AAClER,IAAAA,SAAS,EAAE;AACTC,MAAAA,KAAK,EAAE;AACLQ,QAAAA,QAAQ,EAAEX,EAAE,IAAIC,MADX;AAELW,QAAAA,WAAW,EAAE;AACXC,UAAAA,MAAM,YAAKC,oBAAL;AADK;AAFR;AADE;AADuD,GAA9C,CAAtB;AAAA,mCAAQT,IAAR;AAAA,MAAQA,IAAR,gCAAe,EAAf;;AAWA,MAAMU,gBAAgB,GAAG,uCAAyBlB,SAAzB,EAAoCS,gBAApC,EAAsDf,cAAtD,CAAzB;AAEA,MAAQyB,UAAR,GAAuBP,UAAvB,CAAQO,UAAR;;AACA,cAA+BA,UAAU,IAAI,EAA7C;AAAA,MAAeC,WAAf,SAAQ3B,KAAR;;AAEA,MAAM4B,WAAW,GAAG,+BAAiB7B,MAAjB,EAAyB4B,WAAzB,CAApB;AACA,MAAME,WAAW,GAAG,+BAAiB9B,MAAjB,EAAyB4B,WAAzB,EAAsC3B,KAAtC,CAApB;AAEA,MAAQ8B,uBAAR,GAAoCf,IAApC,CAAQe,uBAAR;AAEA,MAAMC,YAAY,GAAG,gCAAkB1B,MAAlB,EAA0ByB,uBAA1B,EAAmDjC,UAAnD,EAA+DC,MAA/D,CAArB;AACA,MAAMkC,wBAAwB,GAC5B/B,cAAc,CAACgC,MAAf,IAAyBR,gBAAzB,IAA6CS,MAAM,CAACC,IAAP,CAAYV,gBAAZ,EAA8BQ,MAD7E;AAEA,MAAMG,0BAA0B,GAAGJ,wBAAwB,IAAI,CAAC/B,cAAc,CAACgC,MAA/E;AACA,MAAMI,gBAAgB,GACpBN,YAAY,IAAIF,WAAhB,IAA+B,CAAC,CAACA,WAAW,CAACI,MAA7C,IAAuDG,0BADzD;AAGA,MAAME,gBAAgB,GAAG,kCAAoBnC,UAApB,EAAgCK,eAAhC,CAAzB;;AAEA,MAAM+B,kBAAkB,mCAAQd,gBAAR,GAA6Ba,gBAA7B,CAAxB;;AAEA,sBACE,gCAAC,wBAAD;AACE,IAAA,gBAAgB,EAAE,CAAC,CAACD,gBADtB;AAEE,IAAA,WAAW,EAAET,WAFf;AAGE,IAAA,MAAM,EAAE7B,MAHV;AAIE,IAAA,YAAY,EAAEgC,YAJhB;AAKE,IAAA,WAAW,EAAEF,WALf;AAME,IAAA,kBAAkB,EAAEU;AANtB,IADF;AAUD,CAzED;;AA2EA3C,YAAY,CAAC4C,SAAb,GAAyB;AACvBpC,EAAAA,MAAM,EAAEqC,sBAAUC,MAAV,CAAiBC,UADF;AAEvBtC,EAAAA,MAAM,EAAEoC,sBAAUG,MAAV,CAAiBD,UAFF;AAGvBrC,EAAAA,MAAM,EAAEmC,sBAAUC,MAAV,CAAiBC,UAHF;AAIvBpC,EAAAA,SAAS,EAAEkC,sBAAUG,MAAV,CAAiBD,UAJL;AAKvB7C,EAAAA,MAAM,EAAE2C,sBAAUG,MALK;AAMvB/C,EAAAA,UAAU,EAAE4C,sBAAUG,MANC;AAOvB7C,EAAAA,MAAM,EAAE0C,sBAAUG,MAPK;AAQvB3C,EAAAA,cAAc,EAAEwC,sBAAUI,KARH;AASvB3C,EAAAA,MAAM,EAAEuC,sBAAUG,MATK;AAUvBzC,EAAAA,UAAU,EAAEsC,sBAAUG,MAVC;AAWvB5C,EAAAA,KAAK,EAAEyC,sBAAUG,MAXM;AAYvBpC,EAAAA,eAAe,EAAEiC,sBAAUK;AAZJ,CAAzB;AAeAlD,YAAY,CAACmD,YAAb,GAA4B;AAC1BjD,EAAAA,MAAM,EAAE,EADkB;AAE1BD,EAAAA,UAAU,EAAE,EAFc;AAG1BE,EAAAA,MAAM,EAAE,EAHkB;AAI1BE,EAAAA,cAAc,EAAE,EAJU;AAK1BC,EAAAA,MAAM,EAAE,EALkB;AAM1BC,EAAAA,UAAU,EAAE,EANc;AAO1BH,EAAAA,KAAK,EAAE,EAPmB;AAQ1BQ,EAAAA,eAAe,EAAE;AARS,CAA5B;;eAWe,oBAAUZ,YAAV,C","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.buildUserPropsData = exports.buildSizeMapping = exports.buildParsedAdunit = exports.buildContextualTargeting = exports.buildBannerSizes = void 0;
19
19
 
20
20
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
21
21
 
@@ -59,6 +59,8 @@ require("core-js/modules/es.array.reduce.js");
59
59
 
60
60
  require("core-js/modules/es.array.is-array.js");
61
61
 
62
+ require("core-js/modules/es.array.index-of.js");
63
+
62
64
  var _queryString = require("query-string");
63
65
 
64
66
  var _lodash = _interopRequireDefault(require("lodash.flatten"));
@@ -240,4 +242,67 @@ var getMinBannerHeight = function getMinBannerHeight(bannerSizes) {
240
242
  };
241
243
 
242
244
  exports.getMinBannerHeight = getMinBannerHeight;
245
+
246
+ var buildUserQuery = function buildUserQuery(userProps) {
247
+ if (!userProps || !userProps.length) return '';
248
+ var basicProps = [];
249
+ var nestedProps = {};
250
+ userProps.forEach(function (_ref5) {
251
+ var propertiesToDisplay = _ref5.propertiesToDisplay;
252
+
253
+ var _propertiesToDisplay = (0, _slicedToArray2["default"])(propertiesToDisplay, 1),
254
+ propKey = _propertiesToDisplay[0];
255
+
256
+ if (!propKey || propKey === 'id') return;
257
+
258
+ if (propKey.indexOf('.') !== -1) {
259
+ var _propKey$split = propKey.split('.'),
260
+ _propKey$split2 = (0, _slicedToArray2["default"])(_propKey$split, 2),
261
+ baseProp = _propKey$split2[0],
262
+ nestedProp = _propKey$split2[1];
263
+
264
+ if (nestedProps[baseProp]) nestedProps[baseProp].push(nestedProp);else nestedProps[baseProp] = [nestedProp];
265
+ } else basicProps.push(propKey);
266
+ });
267
+ Object.keys(nestedProps).forEach(function (nestedKey) {
268
+ var nested = nestedProps[nestedKey];
269
+ basicProps.push(nestedKey);
270
+ basicProps.push('{');
271
+ nested.forEach(function (prop) {
272
+ return basicProps.push(prop);
273
+ });
274
+ basicProps.push('}');
275
+ });
276
+ return basicProps.join(' ');
277
+ };
278
+
279
+ exports.buildUserQuery = buildUserQuery;
280
+
281
+ var buildUserPropsData = function buildUserPropsData(userData, userProps) {
282
+ if (!userData || !userProps.length) return {};
283
+ var user = userData.getUser;
284
+ var propsWithData = {};
285
+ userProps.forEach(function (_ref6) {
286
+ var propertiesToDisplay = _ref6.propertiesToDisplay,
287
+ label = _ref6.label;
288
+
289
+ var _propertiesToDisplay2 = (0, _slicedToArray2["default"])(propertiesToDisplay, 1),
290
+ key = _propertiesToDisplay2[0];
291
+
292
+ var parsedKey = key.split('.');
293
+ var value = getNestedValue(parsedKey, user);
294
+ var labelToUse = label || key;
295
+ if (value) propsWithData[labelToUse] = value;
296
+ });
297
+ return propsWithData;
298
+ };
299
+
300
+ exports.buildUserPropsData = buildUserPropsData;
301
+
302
+ var getNestedValue = function getNestedValue(keys, object) {
303
+ var key = keys.shift();
304
+ var nestedValue = object[key];
305
+ if (!nestedValue) return null;
306
+ return keys.length ? getNestedValue(keys, nestedValue) : nestedValue;
307
+ };
243
308
  //# 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","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","buildUserQuery","userProps","basicProps","nestedProps","propKey","indexOf","baseProp","nestedProp","nestedKey","nested","prop","buildUserPropsData","userData","user","getUser","propsWithData","parsedKey","value","getNestedValue","labelToUse","object","shift","nestedValue"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AACrC,MAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B,OAAO,EAAP;AAE/B,MAAMC,cAAc,GAAGD,KAAK,CAACE,OAAN,CAAc,KAAd,EAAqB,EAArB,EAAyBC,WAAzB,EAAvB;AACA,MAAMC,UAAU,GAAGH,cAAc,CAACI,KAAf,CAAqB,GAArB,CAAnB;AAEA,SAAOD,UAAU,CAACE,GAAX,CAAe,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,KAAN,CAAY,GAAZ,EAAiBC,GAAjB,CAAqBE,MAArB,CAAJ;AAAA,GAApB,CAAP;AACD,CAPD;;;;AASA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,UAAD,EAAaC,KAAb,EAAuB;AACjD,MAAMC,IAAI,kBAAWD,KAAX,CAAV;AACA,SAAOD,UAAU,aAAMA,UAAN,cAAoBE,IAApB,IAA6BA,IAA9C;AACD,CAHD;;AAKA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAC,cAAc;AAAA,SACxCA,cAAc,CAACC,QAAf,CAAwB,GAAxB,KAAgCD,cAAc,CAACC,QAAf,CAAwB,GAAxB,CAAhC,GACID,cAAc,CAACZ,OAAf,CAAuB,YAAvB,EAAqC,UAAAc,KAAI;AAAA,WAAKA,KAAI,KAAK,GAAT,GAAe,GAAf,GAAqB,EAA1B;AAAA,GAAzC,EAAwEX,KAAxE,CAA8E,GAA9E,CADJ,GAEIS,cAHoC;AAAA,CAA1C;;AAKA,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACP,UAAD,EAAaQ,eAAb,EAAiC;AAC3D,MAAIC,gBAAgB,GAAG,EAAvB;AAEA,MAAMC,iBAAiB,GAAGF,eAAe,GACrCT,mBAAmB,CAACC,UAAD,EAAaQ,eAAb,CADkB,GAErCR,UAFJ;AAIA,MAAMW,gBAAgB,GAAGD,iBAAiB,IAAI,OAAOA,iBAAP,KAA6B,QAA3E;;AAEA,MAAIC,gBAAJ,EAAsB;AACpB,QAAMC,eAAe,GAAG,EAAxB;AAEA,QAAIC,cAAc,GAAGH,iBAAiB,CAACf,KAAlB,CAAwB,GAAxB,CAArB;AACAkB,IAAAA,cAAc,qBAAQA,cAAR,CAAd;AAEAC,IAAAA,MAAM,CAACC,IAAP,CAAYF,cAAZ,EAA4BG,OAA5B,CAAoC,UAAAC,GAAG,EAAI;AACzC,kCAAuCJ,cAAc,CAACI,GAAD,CAAd,CAAoBtB,KAApB,CAA0B,GAA1B,CAAvC;AAAA;AAAA,UAAOuB,YAAP;AAAA,UAAqBd,cAArB;;AAEA,UAAIc,YAAY,IAAId,cAApB,EAAoC;AAClCQ,QAAAA,eAAe,CAACM,YAAD,CAAf,GAAgCf,mBAAmB,CAACC,cAAD,CAAnD;AACD;AACF,KAND;AAOAK,IAAAA,gBAAgB,mCAAQA,gBAAR,GAA6BG,eAA7B,CAAhB;AACD;;AAED,SAAOH,gBAAP;AACD,CA1BD;;;;AA4BA,IAAMU,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,IAAD,EAAOC,uBAAP,EAAgCC,UAAhC,EAA4CC,MAA5C,EAAuD;AAC/E,MAAI,CAACzB,MAAM,CAAC0B,SAAP,CAAiBH,uBAAjB,CAAL,EAAgD,OAAO,EAAP;AAEhD,MAAMI,IAAI,GAAGH,UAAU,IAAII,OAAO,CAACC,GAAR,CAAYC,eAAvC;AACA,MAAMC,WAAW,GAAGR,uBAAuB,KAAK,CAAhD;;AACA,kBAAgB,2BAASD,IAAT,CAAhB;AAAA,MAAQU,GAAR,aAAQA,GAAR;;AACA,MAAIC,QAAQ,GAAGD,GAAG,CACfnC,KADY,CACN,GADM,EAEZqC,MAFY,CAELC,OAFK,EAGZrC,GAHY,CAGR,UAAAsC,OAAO;AAAA,WAAIA,OAAO,CAAC1C,OAAR,CAAgB,IAAhB,EAAsB,EAAtB,CAAJ;AAAA,GAHC,CAAf;AAIAuC,EAAAA,QAAQ,GAAGA,QAAQ,CAACI,KAAT,CAAe,CAAf,EAAkBN,WAAW,GAAGE,QAAQ,CAACK,MAAZ,GAAqBL,QAAQ,CAACK,MAAT,GAAkB,CAApE,EAAuEC,IAAvE,CAA4E,GAA5E,CAAX;AACAN,EAAAA,QAAQ,GAAGA,QAAQ,aAAMA,QAAN,SAAoBA,QAAvC;AACA,MAAMO,SAAS,GAAGf,MAAM,IAAIgB,qBAA5B;AAEA,mBAAUd,IAAV,cAAkBM,QAAlB,SAA6BO,SAA7B;AACD,CAfD;;;;AAiBA,IAAME,cAAc,GAAG,SAAjBA,cAAiB,CAACC,MAAD,EAASC,WAAT;AAAA,SACrBD,MAAM,IAAIC,WAAV,IAAyBA,WAAW,CAACN,MAArC,GACIM,WAAW,CAAC9C,GAAZ,CAAgB;AAAA,QAAG+C,KAAH,QAAGA,KAAH;AAAA,QAAUC,MAAV,QAAUA,MAAV;AAAA,WAAuB,CAACD,KAAD,EAAQC,MAAR,CAAvB;AAAA,GAAhB,CADJ,GAEI,IAHiB;AAAA,CAAvB;;AAKA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACJ,MAAD,EAASC,WAAT,EAAsBpD,KAAtB,EAAgC;AACvD,MAAIwD,WAAW,GAAGN,cAAc,CAACC,MAAD,EAASC,WAAT,CAAhC;AAEA,MAAI,CAACI,WAAD,IAAgBxD,KAApB,EAA2BwD,WAAW,GAAGzD,cAAc,CAACC,KAAD,CAA5B;AAE3B,SAAOwD,WAAP;AACD,CAND;;;;AAQA,IAAMC,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,SAAD,EAAgD;AAAA,MAApCC,KAAoC,uEAA5B,EAA4B;AAAA,MAAxBC,cAAwB,uEAAP,EAAO;;AAC/E,MAAIF,SAAS,IAAIC,KAAK,CAACD,SAAD,CAAlB,IAAiCC,KAAK,CAACD,SAAD,CAAL,CAAiB,CAAjB,CAArC,EAA0D;AACxD,WAAOE,cAAc,CAACC,MAAf,CAAsB,UAACC,GAAD,SAAyC;AAAA,UAAjCC,KAAiC,SAAjCA,KAAiC;AAAA,UAA1BC,mBAA0B,SAA1BA,mBAA0B;AACpE,UAAMC,SAAS,GAAG,+BAAcD,mBAAd,EAAmCL,KAAK,CAACD,SAAD,CAAL,CAAiB,CAAjB,CAAnC,CAAlB;AACA,UAAMQ,WAAW,GAAGC,KAAK,CAACC,OAAN,CAAcH,SAAd,IAA2B,wBAAQA,SAAR,CAA3B,GAAgDA,SAApE;AACAH,MAAAA,GAAG,CAACC,KAAD,CAAH,GAAaG,WAAb;AACA,aAAOJ,GAAP;AACD,KALM,EAKJ,EALI,CAAP;AAMD;;AACD,SAAO,EAAP;AACD,CAVD;;;;AAYA,IAAMO,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAClB,MAAD,EAASC,WAAT,EAAyB;AAChD,MAAIkB,WAAW,GAAG,EAAlB;;AAEA,MAAInB,MAAM,IAAIC,WAAV,IAAyBA,WAAW,CAACN,MAAzC,EAAiD;AAC/C,QAAMyB,gBAAgB,GAAGnB,WAAW,CAACS,MAAZ,CAAmB,UAACC,GAAD,SAA4C;AAAA,UAApCT,KAAoC,SAApCA,KAAoC;AAAA,UAA7BC,MAA6B,SAA7BA,MAA6B;AAAA,kCAArBkB,SAAqB;AAAA,UAArBA,SAAqB,gCAAT,EAAS;AACtF,UAAMC,IAAI,GAAGpB,KAAK,IAAIC,MAAT,GAAkB,CAACD,KAAD,EAAQC,MAAR,CAAlB,GAAoC,IAAjD,CADsF,CAC/B;;AAEvD,UAAIkB,SAAJ,EAAe;AACbA,QAAAA,SAAS,CAAC9C,OAAV,CAAkB,iBAAsD;AAAA,cAA5CgD,aAA4C,SAAnDrB,KAAmD;AAAA,cAArBsB,cAAqB,SAA7BrB,MAA6B;AACtE,cAAM3B,GAAG,aAAM+C,aAAa,IAAI,CAAvB,cAA4BC,cAAc,IAAI,CAA9C,CAAT;AACAb,UAAAA,GAAG,CAACnC,GAAD,CAAH,GAAWmC,GAAG,CAACnC,GAAD,CAAH,IAAY,EAAvB;AACA,cAAI8C,IAAJ,EAAUX,GAAG,CAACnC,GAAD,CAAH,CAASiD,IAAT,CAAcH,IAAd;AACX,SAJD;AAKD;;AACD,aAAOX,GAAP;AACD,KAXwB,EAWtB,EAXsB,CAAzB;AAaAQ,IAAAA,WAAW,GAAG9C,MAAM,CAACC,IAAP,CAAY8C,gBAAZ,EAA8BjE,GAA9B,CAAkC,UAAAuE,kBAAkB,EAAI;AACpE,kCAAwCA,kBAAkB,CAACxE,KAAnB,CAAyB,GAAzB,CAAxC;AAAA;AAAA,UAAOqE,aAAP;AAAA,UAAsBC,cAAtB;;AACA,aAAO;AACLG,QAAAA,QAAQ,EAAE,CAACtE,MAAM,CAACkE,aAAD,CAAP,EAAwBlE,MAAM,CAACmE,cAAD,CAA9B,CADL;AAEL3E,QAAAA,KAAK,EAAEuE,gBAAgB,CAACM,kBAAD;AAFlB,OAAP;AAID,KANa,CAAd;AAOD;;AAED,SAAOP,WAAP;AACD,CA3BD;;;;AA6BA,IAAMS,kBAAkB,GAAG,SAArBA,kBAAqB,CAAA3B,WAAW,EAAI;AACxC,MAAIe,KAAK,CAACC,OAAN,CAAchB,WAAd,KAA8BA,WAAW,CAACN,MAAZ,GAAqB,CAAvD,EAA0D;AACxD,WAAOkC,IAAI,CAACC,GAAL,OAAAD,IAAI,sCAAQ5B,WAAW,CAAC9C,GAAZ,CAAgB,UAAA4E,CAAC;AAAA,aAAIA,CAAC,CAAC5B,MAAN;AAAA,KAAjB,CAAR,EAAX;AACD;;AACD,SAAO6B,4BAAP;AACD,CALD;;;;AAOA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAhC,WAAW,EAAI;AACxC,MAAIe,KAAK,CAACC,OAAN,CAAchB,WAAd,KAA8BA,WAAW,CAACN,MAAZ,GAAqB,CAAvD,EAA0D;AACxD,WAAOkC,IAAI,CAACK,GAAL,OAAAL,IAAI,sCAAQ5B,WAAW,CAAC9C,GAAZ,CAAgB,UAAA4E,CAAC;AAAA,aAAIA,CAAC,CAAC5B,MAAN;AAAA,KAAjB,CAAR,EAAX;AACD;;AACD,SAAOgC,4BAAP;AACD,CALD;;;;AAOA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,SAAS,EAAI;AAClC,MAAI,CAACA,SAAD,IAAc,CAACA,SAAS,CAAC1C,MAA7B,EAAqC,OAAO,EAAP;AACrC,MAAM2C,UAAU,GAAG,EAAnB;AACA,MAAMC,WAAW,GAAG,EAApB;AACAF,EAAAA,SAAS,CAAC9D,OAAV,CAAkB,iBAA6B;AAAA,QAA1BsC,mBAA0B,SAA1BA,mBAA0B;;AAC7C,+DAAkBA,mBAAlB;AAAA,QAAO2B,OAAP;;AACA,QAAI,CAACA,OAAD,IAAYA,OAAO,KAAK,IAA5B,EAAkC;;AAClC,QAAIA,OAAO,CAACC,OAAR,CAAgB,GAAhB,MAAyB,CAAC,CAA9B,EAAiC;AAC/B,2BAA+BD,OAAO,CAACtF,KAAR,CAAc,GAAd,CAA/B;AAAA;AAAA,UAAOwF,QAAP;AAAA,UAAiBC,UAAjB;;AACA,UAAIJ,WAAW,CAACG,QAAD,CAAf,EAA2BH,WAAW,CAACG,QAAD,CAAX,CAAsBjB,IAAtB,CAA2BkB,UAA3B,EAA3B,KACKJ,WAAW,CAACG,QAAD,CAAX,GAAwB,CAACC,UAAD,CAAxB;AACN,KAJD,MAIOL,UAAU,CAACb,IAAX,CAAgBe,OAAhB;AACR,GARD;AAUAnE,EAAAA,MAAM,CAACC,IAAP,CAAYiE,WAAZ,EAAyBhE,OAAzB,CAAiC,UAAAqE,SAAS,EAAI;AAC5C,QAAMC,MAAM,GAAGN,WAAW,CAACK,SAAD,CAA1B;AACAN,IAAAA,UAAU,CAACb,IAAX,CAAgBmB,SAAhB;AACAN,IAAAA,UAAU,CAACb,IAAX,CAAgB,GAAhB;AACAoB,IAAAA,MAAM,CAACtE,OAAP,CAAe,UAAAuE,IAAI;AAAA,aAAIR,UAAU,CAACb,IAAX,CAAgBqB,IAAhB,CAAJ;AAAA,KAAnB;AACAR,IAAAA,UAAU,CAACb,IAAX,CAAgB,GAAhB;AACD,GAND;AAQA,SAAOa,UAAU,CAAC1C,IAAX,CAAgB,GAAhB,CAAP;AACD,CAvBD;;;;AAyBA,IAAMmD,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,QAAD,EAAWX,SAAX,EAAyB;AAClD,MAAI,CAACW,QAAD,IAAa,CAACX,SAAS,CAAC1C,MAA5B,EAAoC,OAAO,EAAP;AACpC,MAAiBsD,IAAjB,GAA0BD,QAA1B,CAAQE,OAAR;AACA,MAAMC,aAAa,GAAG,EAAtB;AACAd,EAAAA,SAAS,CAAC9D,OAAV,CAAkB,iBAAoC;AAAA,QAAjCsC,mBAAiC,SAAjCA,mBAAiC;AAAA,QAAZD,KAAY,SAAZA,KAAY;;AACpD,gEAAcC,mBAAd;AAAA,QAAOrC,GAAP;;AACA,QAAM4E,SAAS,GAAG5E,GAAG,CAACtB,KAAJ,CAAU,GAAV,CAAlB;AACA,QAAMmG,KAAK,GAAGC,cAAc,CAACF,SAAD,EAAYH,IAAZ,CAA5B;AACA,QAAMM,UAAU,GAAG3C,KAAK,IAAIpC,GAA5B;AACA,QAAI6E,KAAJ,EAAWF,aAAa,CAACI,UAAD,CAAb,GAA4BF,KAA5B;AACZ,GAND;AAOA,SAAOF,aAAP;AACD,CAZD;;;;AAcA,IAAMG,cAAc,GAAG,SAAjBA,cAAiB,CAAChF,IAAD,EAAOkF,MAAP,EAAkB;AACvC,MAAMhF,GAAG,GAAGF,IAAI,CAACmF,KAAL,EAAZ;AACA,MAAMC,WAAW,GAAGF,MAAM,CAAChF,GAAD,CAA1B;AACA,MAAI,CAACkF,WAAL,EAAkB,OAAO,IAAP;AAClB,SAAOpF,IAAI,CAACqB,MAAL,GAAc2D,cAAc,CAAChF,IAAD,EAAOoF,WAAP,CAA5B,GAAkDA,WAAzD;AACD,CALD","sourcesContent":["import { parseUrl } from 'query-string';\nimport flatten from 'lodash.flatten';\nimport getPropValues from '../../helpers/get-prop-values';\nimport { END_ADUNIT, MAX_BANNER_HEIGHT, MIN_BANNER_HEIGHT } from '../../constants';\n\nconst getParsedSizes = (sizes = '') => {\n if (typeof sizes !== 'string') return [];\n\n const sanitizedSizes = sizes.replace(/\\s+/, '').toLowerCase();\n const sizeGroups = sanitizedSizes.split(',');\n\n return sizeGroups.map(group => group.split('x').map(Number));\n};\n\nconst addPosnToTargetings = (targetings, index) => {\n const posn = `posn=${index}`;\n return targetings ? `${targetings},${posn}` : posn;\n};\n\nconst buildTargetingValue = valueTargeting =>\n valueTargeting.includes('[') && valueTargeting.includes(']')\n ? valueTargeting.replace(/\\;|\\[|\\]/gm, char => (char === ';' ? ',' : '')).split(',')\n : valueTargeting;\n\nconst setCustomTargetings = (targetings, cardBannerIndex) => {\n let bannerTargetings = {};\n\n const updatedTargetings = cardBannerIndex\n ? addPosnToTargetings(targetings, cardBannerIndex)\n : targetings;\n\n const isValidTargeting = updatedTargetings && typeof updatedTargetings === 'string';\n\n if (isValidTargeting) {\n const customTargeting = {};\n\n let splitTargeting = updatedTargetings.split(',');\n splitTargeting = { ...splitTargeting };\n\n Object.keys(splitTargeting).forEach(key => {\n const [keyTargeting, valueTargeting] = splitTargeting[key].split('=');\n\n if (keyTargeting && valueTargeting) {\n customTargeting[keyTargeting] = buildTargetingValue(valueTargeting);\n }\n });\n bannerTargetings = { ...bannerTargetings, ...customTargeting };\n }\n\n return bannerTargetings;\n};\n\nconst buildParsedAdunit = (path, countContentHierarchies, baseAdunit, adunit) => {\n if (!Number.isInteger(countContentHierarchies)) return '';\n\n const base = baseAdunit || process.env.DFP_BASE_ADUNIT;\n const hasChildren = countContentHierarchies !== 0;\n const { url } = parseUrl(path);\n let urlParts = url\n .split('/')\n .filter(Boolean)\n .map(urlPart => urlPart.replace(/-/g, ''));\n urlParts = urlParts.slice(0, hasChildren ? urlParts.length : urlParts.length - 1).join('/');\n urlParts = urlParts ? `${urlParts}/` : urlParts;\n const endAdunit = adunit || END_ADUNIT;\n\n return `${base}/${urlParts}${endAdunit}`;\n};\n\nconst getBannerSizes = (sizeId, bannerSizes) =>\n sizeId && bannerSizes && bannerSizes.length\n ? bannerSizes.map(({ width, height }) => [width, height])\n : null;\n\nconst buildBannerSizes = (sizeId, bannerSizes, sizes) => {\n let parsedSizes = getBannerSizes(sizeId, bannerSizes);\n\n if (!parsedSizes && sizes) parsedSizes = getParsedSizes(sizes);\n\n return parsedSizes;\n};\n\nconst buildContextualTargeting = (actionKey, props = {}, propsToDisplay = []) => {\n if (actionKey && props[actionKey] && props[actionKey][0]) {\n return propsToDisplay.reduce((acc, { label, propertiesToDisplay }) => {\n const propValue = getPropValues(propertiesToDisplay, props[actionKey][0]);\n const parsedValue = Array.isArray(propValue) ? flatten(propValue) : propValue;\n acc[label] = parsedValue;\n return acc;\n }, {});\n }\n return {};\n};\n\nconst buildSizeMapping = (sizeId, bannerSizes) => {\n let sizeMapping = [];\n\n if (sizeId && bannerSizes && bannerSizes.length) {\n const groupedViewports = bannerSizes.reduce((acc, { width, height, viewports = [] }) => {\n const size = width && height ? [width, height] : null; // if one dimension is falsey then it shouldn't display\n\n if (viewports) {\n viewports.forEach(({ width: viewportWidth, height: viewportHeight }) => {\n const key = `${viewportWidth || 0}x${viewportHeight || 0}`;\n acc[key] = acc[key] || [];\n if (size) acc[key].push(size);\n });\n }\n return acc;\n }, {});\n\n sizeMapping = Object.keys(groupedViewports).map(keyGroupedViewport => {\n const [viewportWidth, viewportHeight] = keyGroupedViewport.split('x');\n return {\n viewport: [Number(viewportWidth), Number(viewportHeight)],\n sizes: groupedViewports[keyGroupedViewport]\n };\n });\n }\n\n return sizeMapping;\n};\n\nconst getMaxBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.max(...bannerSizes.map(o => o.height));\n }\n return MAX_BANNER_HEIGHT;\n};\n\nconst getMinBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.min(...bannerSizes.map(o => o.height));\n }\n return MIN_BANNER_HEIGHT;\n};\n\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 buildUserPropsData = (userData, userProps) => {\n if (!userData || !userProps.length) return {};\n const { getUser: user } = userData;\n const propsWithData = {};\n userProps.forEach(({ propertiesToDisplay, label }) => {\n const [key] = propertiesToDisplay;\n const parsedKey = key.split('.');\n const value = getNestedValue(parsedKey, user);\n const labelToUse = label || key;\n if (value) propsWithData[labelToUse] = value;\n });\n return propsWithData;\n};\n\nconst getNestedValue = (keys, object) => {\n const key = keys.shift();\n const nestedValue = 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 buildUserPropsData,\n buildUserQuery\n};\n"],"file":"helpers.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, buildUserPropsData } 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,16 @@ const Banner = _ref => {
45
52
  id: entity || itemEntity
46
53
  }
47
54
  });
48
- if (loading) return '';
55
+ const {
56
+ data: userData,
57
+ loading: userLoading
58
+ } = useQuery(getUser(userQuery), {
59
+ variables: {
60
+ id: userId
61
+ },
62
+ skip: !userPropsToDisplay.length || !userId
63
+ });
64
+ if (loading || userLoading) return '';
49
65
  if (error) return error.message;
50
66
  if (!data) return null;
51
67
  if (!sizeId) return null;
@@ -53,6 +69,7 @@ const Banner = _ref => {
53
69
  const queryProps = buildPropsQuery(data, propsToDisplay.length ? flatten(propsToDisplay.map(({
54
70
  propertiesToDisplay
55
71
  }) => propertiesToDisplay)) : []);
72
+ const userPropsData = buildUserPropsData(userData, userPropsToDisplay);
56
73
  const {
57
74
  actionKey,
58
75
  action
@@ -66,7 +83,8 @@ const Banner = _ref => {
66
83
  }, otherProps, {
67
84
  action: action,
68
85
  actionKey: actionKey,
69
- asPath: asPath
86
+ asPath: asPath,
87
+ userPropsData: userPropsData
70
88
  })));
71
89
  };
72
90
 
@@ -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","buildUserPropsData","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, buildUserPropsData } 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: 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 = buildUserPropsData(userData, userPropsToDisplay);\n const { actionKey, action } = getEntityRenderProps(queryProps, data, isPreview);\n const bannerKey = `${sizeId}${asPath}`;\n\n return (\n <Wrapper className={type} modifiers={modifiers}>\n <BannerRender\n key={bannerKey}\n {...otherProps}\n action={action}\n actionKey={actionKey}\n asPath={asPath}\n userPropsData={userPropsData}\n />\n </Wrapper>\n );\n};\n\nBanner.propTypes = {\n type: PropTypes.string\n};\n\nBanner.defaultProps = {\n type: 'banner'\n};\n\nexport default Banner;\n"],"file":"Banner.js"}
@@ -1,6 +1,6 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- const _excluded = ["baseAdunit", "adunit", "sizeId", "sizes", "propsToDisplay", "entity", "targetings", "parent", "asPath", "action", "actionKey", "cardBannerIndex"];
3
+ const _excluded = ["baseAdunit", "adunit", "sizeId", "sizes", "propsToDisplay", "entity", "targetings", "parent", "asPath", "action", "actionKey", "cardBannerIndex", "userPropsData"];
4
4
 
5
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
6
 
@@ -28,7 +28,8 @@ const BannerRender = _ref => {
28
28
  asPath,
29
29
  action,
30
30
  actionKey,
31
- cardBannerIndex
31
+ cardBannerIndex,
32
+ userPropsData
32
33
  } = _ref,
33
34
  otherProps = _objectWithoutProperties(_ref, _excluded);
34
35
 
@@ -86,7 +87,7 @@ const BannerRender = _ref => {
86
87
  const shouldShowBanner = parsedAdunit && parsedSizes && !!parsedSizes.length && isContextualTargetingReady;
87
88
  const customTargetings = setCustomTargetings(targetings, cardBannerIndex);
88
89
 
89
- const targetingArguments = _objectSpread(_objectSpread({}, parsedTargetings), customTargetings);
90
+ const targetingArguments = _objectSpread(_objectSpread(_objectSpread({}, parsedTargetings), customTargetings), userPropsData);
90
91
 
91
92
  return /*#__PURE__*/React.createElement(AdSlotRender, {
92
93
  shouldShowBanner: !!shouldShowBanner,
@@ -110,7 +111,8 @@ BannerRender.propTypes = {
110
111
  entity: PropTypes.string,
111
112
  targetings: PropTypes.string,
112
113
  sizes: PropTypes.string,
113
- cardBannerIndex: PropTypes.number
114
+ cardBannerIndex: PropTypes.number,
115
+ userPropsData: PropTypes.object
114
116
  };
115
117
  BannerRender.defaultProps = {
116
118
  adunit: '',
@@ -120,7 +122,8 @@ BannerRender.defaultProps = {
120
122
  entity: '',
121
123
  targetings: '',
122
124
  sizes: '',
123
- cardBannerIndex: null
125
+ cardBannerIndex: null,
126
+ userPropsData: {}
124
127
  };
125
128
  export default withTitle(BannerRender);
126
129
  //# sourceMappingURL=BannerRender.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Banner/BannerRender.js"],"names":["React","PropTypes","useQuery","generateSingleItemQuery","getCount","buildBannerSizes","buildContextualTargeting","buildParsedAdunit","buildSizeMapping","setCustomTargetings","BANNER_QUERY_PROPS","COUNT_CONTENT_HIERARCHIES","GET_BANNER","PUBLISHED","withTitle","AdSlotRender","BannerRender","baseAdunit","adunit","sizeId","sizes","propsToDisplay","entity","targetings","parent","asPath","action","actionKey","cardBannerIndex","otherProps","id","itemId","data","entityRecordData","variables","where","skip","bannerData","parentId","childEntity","_ilike","parsedTargetings","entityData","bannerSizes","sizeMapping","parsedSizes","countContentHierarchies","parsedAdunit","isContextualTargetingSet","length","Object","keys","isContextualTargetingReady","shouldShowBanner","customTargetings","targetingArguments","propTypes","object","isRequired","string","array","number","defaultProps"],"mappings":";;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,SAASC,QAAT,QAAyB,gBAAzB;AAEA,SAASC,uBAAT,EAAkCC,QAAlC,QAAkD,yBAAlD;AACA,SACEC,gBADF,EAEEC,wBAFF,EAGEC,iBAHF,EAIEC,gBAJF,EAKEC,mBALF,QAMO,WANP;AAOA,SACEC,kBADF,EAEEC,yBAFF,EAGEC,UAHF,EAIEC,SAJF,QAKO,iBALP;AAMA,SAASC,SAAT,QAA0B,WAA1B;AACA,OAAOC,YAAP,MAAyB,gBAAzB;;AAEA,MAAMC,YAAY,GAAG,QAcf;AAAA,MAdgB;AACpBC,IAAAA,UADoB;AAEpBC,IAAAA,MAFoB;AAGpBC,IAAAA,MAHoB;AAIpBC,IAAAA,KAJoB;AAKpBC,IAAAA,cALoB;AAMpBC,IAAAA,MANoB;AAOpBC,IAAAA,UAPoB;AAQpBC,IAAAA,MARoB;AASpBC,IAAAA,MAToB;AAUpBC,IAAAA,MAVoB;AAWpBC,IAAAA,SAXoB;AAYpBC,IAAAA;AAZoB,GAchB;AAAA,MADDC,UACC;;AACJ,QAAM;AAAEC,IAAAA;AAAF,MAASD,UAAf;AACA,QAAM;AAAEE,IAAAA;AAAF,MAAaP,MAAnB;AAEA,QAAM;AAAEQ,IAAAA,IAAI,EAAEC,gBAAgB,GAAG;AAA3B,MAAkC/B,QAAQ,CAACwB,MAAD,EAAS;AACvDQ,IAAAA,SAAS,EAAE;AAAEC,MAAAA,KAAK,EAAE;AAAEL,QAAAA,EAAE,EAAEA,EAAE,IAAIC;AAAZ;AAAT,KAD4C;AAEvDK,IAAAA,IAAI,EAAEN,EAAE,IAAIA,EAAE,KAAKC;AAFoC,GAAT,CAAhD;AAKA,QAAM;AAAEC,IAAAA,IAAI,EAAEK,UAAU,GAAG;AAArB,MAA4BnC,QAAQ,CACxCC,uBAAuB,CAACS,UAAD,EAAaF,kBAAb,CADiB,EAExC;AACEwB,IAAAA,SAAS,EAAE;AAAEJ,MAAAA,EAAE,EAAEX;AAAN,KADb;AAEEiB,IAAAA,IAAI,EAAE,CAACjB;AAFT,GAFwC,CAA1C;AAQA,QAAM;AAAEa,IAAAA,IAAI,GAAG;AAAT,MAAgB9B,QAAQ,CAACE,QAAQ,CAACO,yBAAD,CAAT,EAAsC;AAClEuB,IAAAA,SAAS,EAAE;AACTC,MAAAA,KAAK,EAAE;AACLG,QAAAA,QAAQ,EAAER,EAAE,IAAIC,MADX;AAELQ,QAAAA,WAAW,EAAE;AACXC,UAAAA,MAAM,EAAG,GAAE3B,SAAU;AADV;AAFR;AADE;AADuD,GAAtC,CAA9B;AAWA,QAAM4B,gBAAgB,GAAGnC,wBAAwB,CAACqB,SAAD,EAAYM,gBAAZ,EAA8BZ,cAA9B,CAAjD;AAEA,QAAM;AAAEqB,IAAAA;AAAF,MAAiBL,UAAvB;AACA,QAAM;AAAEjB,IAAAA,KAAK,EAAEuB;AAAT,MAAyBD,UAAU,IAAI,EAA7C;AAEA,QAAME,WAAW,GAAGpC,gBAAgB,CAACW,MAAD,EAASwB,WAAT,CAApC;AACA,QAAME,WAAW,GAAGxC,gBAAgB,CAACc,MAAD,EAASwB,WAAT,EAAsBvB,KAAtB,CAApC;AAEA,QAAM;AAAE0B,IAAAA;AAAF,MAA8Bd,IAApC;AAEA,QAAMe,YAAY,GAAGxC,iBAAiB,CAACkB,MAAD,EAASqB,uBAAT,EAAkC7B,UAAlC,EAA8CC,MAA9C,CAAtC;AACA,QAAM8B,wBAAwB,GAC5B3B,cAAc,CAAC4B,MAAf,IAAyBR,gBAAzB,IAA6CS,MAAM,CAACC,IAAP,CAAYV,gBAAZ,EAA8BQ,MAD7E;AAEA,QAAMG,0BAA0B,GAAGJ,wBAAwB,IAAI,CAAC3B,cAAc,CAAC4B,MAA/E;AACA,QAAMI,gBAAgB,GACpBN,YAAY,IAAIF,WAAhB,IAA+B,CAAC,CAACA,WAAW,CAACI,MAA7C,IAAuDG,0BADzD;AAGA,QAAME,gBAAgB,GAAG7C,mBAAmB,CAACc,UAAD,EAAaK,eAAb,CAA5C;;AAEA,QAAM2B,kBAAkB,mCAAQd,gBAAR,GAA6Ba,gBAA7B,CAAxB;;AAEA,sBACE,oBAAC,YAAD;AACE,IAAA,gBAAgB,EAAE,CAAC,CAACD,gBADtB;AAEE,IAAA,WAAW,EAAET,WAFf;AAGE,IAAA,MAAM,EAAEzB,MAHV;AAIE,IAAA,YAAY,EAAE4B,YAJhB;AAKE,IAAA,WAAW,EAAEF,WALf;AAME,IAAA,kBAAkB,EAAEU;AANtB,IADF;AAUD,CAzED;;AA2EAvC,YAAY,CAACwC,SAAb,GAAyB;AACvBhC,EAAAA,MAAM,EAAEvB,SAAS,CAACwD,MAAV,CAAiBC,UADF;AAEvBjC,EAAAA,MAAM,EAAExB,SAAS,CAAC0D,MAAV,CAAiBD,UAFF;AAGvBhC,EAAAA,MAAM,EAAEzB,SAAS,CAACwD,MAAV,CAAiBC,UAHF;AAIvB/B,EAAAA,SAAS,EAAE1B,SAAS,CAAC0D,MAAV,CAAiBD,UAJL;AAKvBxC,EAAAA,MAAM,EAAEjB,SAAS,CAAC0D,MALK;AAMvB1C,EAAAA,UAAU,EAAEhB,SAAS,CAAC0D,MANC;AAOvBxC,EAAAA,MAAM,EAAElB,SAAS,CAAC0D,MAPK;AAQvBtC,EAAAA,cAAc,EAAEpB,SAAS,CAAC2D,KARH;AASvBtC,EAAAA,MAAM,EAAErB,SAAS,CAAC0D,MATK;AAUvBpC,EAAAA,UAAU,EAAEtB,SAAS,CAAC0D,MAVC;AAWvBvC,EAAAA,KAAK,EAAEnB,SAAS,CAAC0D,MAXM;AAYvB/B,EAAAA,eAAe,EAAE3B,SAAS,CAAC4D;AAZJ,CAAzB;AAeA7C,YAAY,CAAC8C,YAAb,GAA4B;AAC1B5C,EAAAA,MAAM,EAAE,EADkB;AAE1BD,EAAAA,UAAU,EAAE,EAFc;AAG1BE,EAAAA,MAAM,EAAE,EAHkB;AAI1BE,EAAAA,cAAc,EAAE,EAJU;AAK1BC,EAAAA,MAAM,EAAE,EALkB;AAM1BC,EAAAA,UAAU,EAAE,EANc;AAO1BH,EAAAA,KAAK,EAAE,EAPmB;AAQ1BQ,EAAAA,eAAe,EAAE;AARS,CAA5B;AAWA,eAAed,SAAS,CAACE,YAAD,CAAxB","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"}
@@ -138,5 +138,56 @@ const getMinBannerHeight = bannerSizes => {
138
138
  return MIN_BANNER_HEIGHT;
139
139
  };
140
140
 
141
- export { getParsedSizes, setCustomTargetings, buildParsedAdunit, buildBannerSizes, buildContextualTargeting, buildSizeMapping, getMaxBannerHeight, getMinBannerHeight };
141
+ const buildUserQuery = userProps => {
142
+ if (!userProps || !userProps.length) return '';
143
+ const basicProps = [];
144
+ const nestedProps = {};
145
+ userProps.forEach(({
146
+ propertiesToDisplay
147
+ }) => {
148
+ const [propKey] = propertiesToDisplay;
149
+ if (!propKey || propKey === 'id') return;
150
+
151
+ if (propKey.indexOf('.') !== -1) {
152
+ const [baseProp, nestedProp] = propKey.split('.');
153
+ if (nestedProps[baseProp]) nestedProps[baseProp].push(nestedProp);else nestedProps[baseProp] = [nestedProp];
154
+ } else basicProps.push(propKey);
155
+ });
156
+ Object.keys(nestedProps).forEach(nestedKey => {
157
+ const nested = nestedProps[nestedKey];
158
+ basicProps.push(nestedKey);
159
+ basicProps.push('{');
160
+ nested.forEach(prop => basicProps.push(prop));
161
+ basicProps.push('}');
162
+ });
163
+ return basicProps.join(' ');
164
+ };
165
+
166
+ const buildUserPropsData = (userData, userProps) => {
167
+ if (!userData || !userProps.length) return {};
168
+ const {
169
+ getUser: user
170
+ } = userData;
171
+ const propsWithData = {};
172
+ userProps.forEach(({
173
+ propertiesToDisplay,
174
+ label
175
+ }) => {
176
+ const [key] = propertiesToDisplay;
177
+ const parsedKey = key.split('.');
178
+ const value = getNestedValue(parsedKey, user);
179
+ const labelToUse = label || key;
180
+ if (value) propsWithData[labelToUse] = value;
181
+ });
182
+ return propsWithData;
183
+ };
184
+
185
+ const getNestedValue = (keys, object) => {
186
+ const key = keys.shift();
187
+ const nestedValue = object[key];
188
+ if (!nestedValue) return null;
189
+ return keys.length ? getNestedValue(keys, nestedValue) : nestedValue;
190
+ };
191
+
192
+ export { getParsedSizes, setCustomTargetings, buildParsedAdunit, buildBannerSizes, buildContextualTargeting, buildSizeMapping, getMaxBannerHeight, getMinBannerHeight, buildUserPropsData, buildUserQuery };
142
193
  //# 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","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","buildUserQuery","userProps","basicProps","nestedProps","propKey","indexOf","baseProp","nestedProp","nestedKey","nested","prop","buildUserPropsData","userData","getUser","user","propsWithData","parsedKey","value","getNestedValue","labelToUse","object","shift","nestedValue"],"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\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 buildUserPropsData = (userData, userProps) => {\n if (!userData || !userProps.length) return {};\n const { getUser: user } = userData;\n const propsWithData = {};\n userProps.forEach(({ propertiesToDisplay, label }) => {\n const [key] = propertiesToDisplay;\n const parsedKey = key.split('.');\n const value = getNestedValue(parsedKey, user);\n const labelToUse = label || key;\n if (value) propsWithData[labelToUse] = value;\n });\n return propsWithData;\n};\n\nconst getNestedValue = (keys, object) => {\n const key = keys.shift();\n const nestedValue = 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 buildUserPropsData,\n buildUserQuery\n};\n"],"file":"helpers.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.2",
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": "4100a7f4e48face4e0e60c66ac6d095720436ef9"
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, buildUserPropsData } 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: 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 = buildUserPropsData(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);
@@ -135,6 +135,52 @@ const getMinBannerHeight = bannerSizes => {
135
135
  return MIN_BANNER_HEIGHT;
136
136
  };
137
137
 
138
+ const buildUserQuery = userProps => {
139
+ if (!userProps || !userProps.length) return '';
140
+ const basicProps = [];
141
+ const nestedProps = {};
142
+ userProps.forEach(({ propertiesToDisplay }) => {
143
+ const [propKey] = propertiesToDisplay;
144
+ if (!propKey || propKey === 'id') return;
145
+ if (propKey.indexOf('.') !== -1) {
146
+ const [baseProp, nestedProp] = propKey.split('.');
147
+ if (nestedProps[baseProp]) nestedProps[baseProp].push(nestedProp);
148
+ else nestedProps[baseProp] = [nestedProp];
149
+ } else basicProps.push(propKey);
150
+ });
151
+
152
+ Object.keys(nestedProps).forEach(nestedKey => {
153
+ const nested = nestedProps[nestedKey];
154
+ basicProps.push(nestedKey);
155
+ basicProps.push('{');
156
+ nested.forEach(prop => basicProps.push(prop));
157
+ basicProps.push('}');
158
+ });
159
+
160
+ return basicProps.join(' ');
161
+ };
162
+
163
+ const buildUserPropsData = (userData, userProps) => {
164
+ if (!userData || !userProps.length) return {};
165
+ const { getUser: user } = userData;
166
+ const propsWithData = {};
167
+ userProps.forEach(({ propertiesToDisplay, label }) => {
168
+ const [key] = propertiesToDisplay;
169
+ const parsedKey = key.split('.');
170
+ const value = getNestedValue(parsedKey, user);
171
+ const labelToUse = label || key;
172
+ if (value) propsWithData[labelToUse] = value;
173
+ });
174
+ return propsWithData;
175
+ };
176
+
177
+ const getNestedValue = (keys, object) => {
178
+ const key = keys.shift();
179
+ const nestedValue = object[key];
180
+ if (!nestedValue) return null;
181
+ return keys.length ? getNestedValue(keys, nestedValue) : nestedValue;
182
+ };
183
+
138
184
  export {
139
185
  getParsedSizes,
140
186
  setCustomTargetings,
@@ -143,5 +189,7 @@ export {
143
189
  buildContextualTargeting,
144
190
  buildSizeMapping,
145
191
  getMaxBannerHeight,
146
- getMinBannerHeight
192
+ getMinBannerHeight,
193
+ buildUserPropsData,
194
+ buildUserQuery
147
195
  };