@blaze-cms/react-page-builder 0.119.1 → 0.120.0-alpha.3

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.
Files changed (70) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/lib/components/Banner/Banner.js +26 -3
  3. package/lib/components/Banner/Banner.js.map +1 -1
  4. package/lib/components/Banner/BannerRender.js +7 -4
  5. package/lib/components/Banner/BannerRender.js.map +1 -1
  6. package/lib/components/Banner/helpers.js +81 -21
  7. package/lib/components/Banner/helpers.js.map +1 -1
  8. package/lib/components/BlazeLink.js +1 -0
  9. package/lib/components/BlazeLink.js.map +1 -1
  10. package/lib/components/Card/Card.js +1 -1
  11. package/lib/components/Card/Card.js.map +1 -1
  12. package/lib/components/Card/CardContainer.js +6 -2
  13. package/lib/components/Card/CardContainer.js.map +1 -1
  14. package/lib/components/Card/CardRender.js +27 -12
  15. package/lib/components/Card/CardRender.js.map +1 -1
  16. package/lib/components/Card/helpers/filter-query-setup.js +7 -3
  17. package/lib/components/Card/helpers/filter-query-setup.js.map +1 -1
  18. package/lib/components/Card/helpers/filters-setup.js +5 -16
  19. package/lib/components/Card/helpers/filters-setup.js.map +1 -1
  20. package/lib/components/List/ListBuilder.js +3 -3
  21. package/lib/components/List/ListBuilder.js.map +1 -1
  22. package/lib/helpers/build-props-query.js +15 -7
  23. package/lib/helpers/build-props-query.js.map +1 -1
  24. package/lib/helpers/get-entity-data.js +27 -5
  25. package/lib/helpers/get-entity-data.js.map +1 -1
  26. package/lib/helpers/get-generic-render-variables.js +29 -7
  27. package/lib/helpers/get-generic-render-variables.js.map +1 -1
  28. package/lib-es/components/Banner/Banner.js +24 -4
  29. package/lib-es/components/Banner/Banner.js.map +1 -1
  30. package/lib-es/components/Banner/BannerRender.js +8 -5
  31. package/lib-es/components/Banner/BannerRender.js.map +1 -1
  32. package/lib-es/components/Banner/helpers.js +53 -12
  33. package/lib-es/components/Banner/helpers.js.map +1 -1
  34. package/lib-es/components/BlazeLink.js +1 -0
  35. package/lib-es/components/BlazeLink.js.map +1 -1
  36. package/lib-es/components/Card/Card.js +1 -1
  37. package/lib-es/components/Card/Card.js.map +1 -1
  38. package/lib-es/components/Card/CardContainer.js +6 -2
  39. package/lib-es/components/Card/CardContainer.js.map +1 -1
  40. package/lib-es/components/Card/CardRender.js +19 -10
  41. package/lib-es/components/Card/CardRender.js.map +1 -1
  42. package/lib-es/components/Card/helpers/filter-query-setup.js +7 -3
  43. package/lib-es/components/Card/helpers/filter-query-setup.js.map +1 -1
  44. package/lib-es/components/Card/helpers/filters-setup.js +2 -7
  45. package/lib-es/components/Card/helpers/filters-setup.js.map +1 -1
  46. package/lib-es/components/List/ListBuilder.js +3 -3
  47. package/lib-es/components/List/ListBuilder.js.map +1 -1
  48. package/lib-es/helpers/build-props-query.js +11 -8
  49. package/lib-es/helpers/build-props-query.js.map +1 -1
  50. package/lib-es/helpers/get-entity-data.js +23 -5
  51. package/lib-es/helpers/get-entity-data.js.map +1 -1
  52. package/lib-es/helpers/get-generic-render-variables.js +28 -7
  53. package/lib-es/helpers/get-generic-render-variables.js.map +1 -1
  54. package/package.json +2 -2
  55. package/src/components/Banner/Banner.js +13 -4
  56. package/src/components/Banner/BannerRender.js +6 -4
  57. package/src/components/Banner/helpers.js +58 -9
  58. package/src/components/BlazeLink.js +1 -0
  59. package/src/components/Card/Card.js +3 -5
  60. package/src/components/Card/CardContainer.js +6 -2
  61. package/src/components/Card/CardRender.js +15 -9
  62. package/src/components/Card/helpers/filter-query-setup.js +9 -3
  63. package/src/components/Card/helpers/filters-setup.js +2 -5
  64. package/src/components/List/ListBuilder.js +3 -3
  65. package/src/helpers/build-props-query.js +7 -10
  66. package/src/helpers/get-entity-data.js +12 -4
  67. package/src/helpers/get-generic-render-variables.js +30 -6
  68. package/tests/unit/src/components/Banner/helpers.test.js +2 -26
  69. package/tests/unit/src/components/List/components/Cards/__snapshots__/CardsRender.test.js.snap +18 -6
  70. package/tests/unit/src/helpers/build-props-query.test.js +28 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,50 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.120.0-alpha.3](https://github.com/thebyte9/blaze/compare/v0.120.0-alpha.2...v0.120.0-alpha.3) (2022-02-16)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * added array handling for banner props ([#3339](https://github.com/thebyte9/blaze/issues/3339)) ([b6e7b84](https://github.com/thebyte9/blaze/commit/b6e7b84b95d63ff978de1ac5921cdbf8e3be5f8a))
12
+
13
+
14
+
15
+
16
+
17
+ # [0.120.0-alpha.2](https://github.com/thebyte9/blaze/compare/v0.120.0-alpha.1...v0.120.0-alpha.2) (2022-02-15)
18
+
19
+
20
+ ### Features
21
+
22
+ * add user props to baners ([#3332](https://github.com/thebyte9/blaze/issues/3332)) ([e6818c7](https://github.com/thebyte9/blaze/commit/e6818c738864e7e1ccf7ea7072c9c2bb3bb3d367))
23
+
24
+
25
+
26
+
27
+
28
+ # [0.120.0-alpha.1](https://github.com/thebyte9/blaze/compare/v0.120.0-alpha.0...v0.120.0-alpha.1) (2022-02-10)
29
+
30
+
31
+ ### Features
32
+
33
+ * allow card images for non content entities ([#3335](https://github.com/thebyte9/blaze/issues/3335)) ([ebbcdaf](https://github.com/thebyte9/blaze/commit/ebbcdaf3310c3ddc4f39f4bb70ed5f9939099559))
34
+
35
+
36
+
37
+
38
+
39
+ # [0.120.0-alpha.0](https://github.com/thebyte9/blaze/compare/v0.119.1...v0.120.0-alpha.0) (2022-02-09)
40
+
41
+
42
+ ### Features
43
+
44
+ * added random sort and non published entities to cards ([#3327](https://github.com/thebyte9/blaze/issues/3327)) ([7e60156](https://github.com/thebyte9/blaze/commit/7e60156e55769f3fc83d276c73ac3726e1c9cade))
45
+
46
+
47
+
48
+
49
+
6
50
  ## [0.119.1](https://github.com/thebyte9/blaze/compare/v0.119.0...v0.119.1) (2022-01-31)
7
51
 
8
52
 
@@ -35,6 +35,8 @@ var _react = _interopRequireWildcard(require("react"));
35
35
 
36
36
  var _nextjsComponents = require("@blaze-cms/nextjs-components");
37
37
 
38
+ var _coreAuthUi = require("@blaze-cms/core-auth-ui");
39
+
38
40
  var _propTypes = _interopRequireDefault(require("prop-types"));
39
41
 
40
42
  var _lodash = _interopRequireDefault(require("lodash.flatten"));
@@ -43,6 +45,8 @@ var _client = require("@apollo/client");
43
45
 
44
46
  var _router = require("next/router");
45
47
 
48
+ var _helpers = require("./helpers");
49
+
46
50
  var _query = require("../../application/query");
47
51
 
48
52
  var _Wrapper = _interopRequireDefault(require("../Wrapper"));
@@ -69,12 +73,18 @@ var Banner = function Banner(_ref) {
69
73
  var _useContext = (0, _react.useContext)(_nextjsComponents.MainContext),
70
74
  isPreview = _useContext.isPreview;
71
75
 
76
+ var _checkIfLoggedIn = (0, _coreAuthUi.checkIfLoggedIn)(),
77
+ userId = _checkIfLoggedIn.id;
78
+
72
79
  var asPath = router.asPath;
73
80
  var parent = otherProps.parent,
74
81
  entity = otherProps.entity,
75
82
  sizeId = otherProps.sizeId,
76
83
  _otherProps$propsToDi = otherProps.propsToDisplay,
77
- propsToDisplay = _otherProps$propsToDi === void 0 ? [] : _otherProps$propsToDi;
84
+ propsToDisplay = _otherProps$propsToDi === void 0 ? [] : _otherProps$propsToDi,
85
+ _otherProps$userProps = otherProps.userPropsToDisplay,
86
+ userPropsToDisplay = _otherProps$userProps === void 0 ? [] : _otherProps$userProps;
87
+ var userQuery = (0, _helpers.buildUserQuery)(userPropsToDisplay);
78
88
  var itemEntity = parent.itemEntity;
79
89
 
80
90
  var _useQuery = (0, _client.useQuery)(_query.getSingleEntitySchema, {
@@ -86,7 +96,18 @@ var Banner = function Banner(_ref) {
86
96
  error = _useQuery.error,
87
97
  loading = _useQuery.loading;
88
98
 
89
- if (loading) return '';
99
+ var _useQuery2 = (0, _client.useQuery)((0, _query.getUser)(userQuery), {
100
+ variables: {
101
+ id: userId
102
+ },
103
+ skip: !userPropsToDisplay.length || !userId
104
+ }),
105
+ _useQuery2$data = _useQuery2.data;
106
+
107
+ _useQuery2$data = _useQuery2$data === void 0 ? {} : _useQuery2$data;
108
+ var userData = _useQuery2$data.getUser,
109
+ userLoading = _useQuery2.loading;
110
+ if (loading || userLoading) return '';
90
111
  if (error) return error.message;
91
112
  if (!data) return null;
92
113
  if (!sizeId) return null;
@@ -95,6 +116,7 @@ var Banner = function Banner(_ref) {
95
116
  var propertiesToDisplay = _ref2.propertiesToDisplay;
96
117
  return propertiesToDisplay;
97
118
  })) : []);
119
+ var userPropsData = (0, _helpers.buildPropsData)(userData, userPropsToDisplay);
98
120
 
99
121
  var _getEntityRenderProps = (0, _getEntityRenderProps2["default"])(queryProps, data, isPreview),
100
122
  actionKey = _getEntityRenderProps.actionKey,
@@ -109,7 +131,8 @@ var Banner = function Banner(_ref) {
109
131
  }, otherProps, {
110
132
  action: action,
111
133
  actionKey: actionKey,
112
- asPath: asPath
134
+ asPath: asPath,
135
+ userPropsData: userPropsData
113
136
  })));
114
137
  };
115
138
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Banner/Banner.js"],"names":["Banner","type","otherProps","router","MainContext","isPreview","asPath","parent","entity","sizeId","propsToDisplay","itemEntity","getSingleEntitySchema","variables","id","data","error","loading","message","modifiers","queryProps","length","map","propertiesToDisplay","actionKey","action","bannerKey","propTypes","PropTypes","string","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,OAA6B;AAAA,MAA1BC,IAA0B,QAA1BA,IAA0B;AAAA,MAAjBC,UAAiB;AAC1C,MAAMC,MAAM,GAAG,wBAAf;;AACA,oBAAsB,uBAAWC,6BAAX,CAAtB;AAAA,MAAQC,SAAR,eAAQA,SAAR;;AACA,MAAQC,MAAR,GAAmBH,MAAnB,CAAQG,MAAR;AACA,MAAQC,MAAR,GAAwDL,UAAxD,CAAQK,MAAR;AAAA,MAAgBC,MAAhB,GAAwDN,UAAxD,CAAgBM,MAAhB;AAAA,MAAwBC,MAAxB,GAAwDP,UAAxD,CAAwBO,MAAxB;AAAA,8BAAwDP,UAAxD,CAAgCQ,cAAhC;AAAA,MAAgCA,cAAhC,sCAAiD,EAAjD;AAEA,MAAQC,UAAR,GAAuBJ,MAAvB,CAAQI,UAAR;;AACA,kBAAiC,sBAASC,4BAAT,EAAgC;AAC/DC,IAAAA,SAAS,EAAE;AAAEC,MAAAA,EAAE,EAAEN,MAAM,IAAIG;AAAhB;AADoD,GAAhC,CAAjC;AAAA,MAAQI,IAAR,aAAQA,IAAR;AAAA,MAAcC,KAAd,aAAcA,KAAd;AAAA,MAAqBC,OAArB,aAAqBA,OAArB;;AAIA,MAAIA,OAAJ,EAAa,OAAO,EAAP;AACb,MAAID,KAAJ,EAAW,OAAOA,KAAK,CAACE,OAAb;AACX,MAAI,CAACH,IAAL,EAAW,OAAO,IAAP;AACX,MAAI,CAACN,MAAL,EAAa,OAAO,IAAP;AAEb,MAAMU,SAAS,GAAG,8BAAkB,QAAlB,EAA4BjB,UAA5B,CAAlB;AACA,MAAMkB,UAAU,GAAG,iCACjBL,IADiB,EAEjBL,cAAc,CAACW,MAAf,GACI,wBAAQX,cAAc,CAACY,GAAf,CAAmB;AAAA,QAAGC,mBAAH,SAAGA,mBAAH;AAAA,WAA6BA,mBAA7B;AAAA,GAAnB,CAAR,CADJ,GAEI,EAJa,CAAnB;;AAOA,8BAA8B,uCAAqBH,UAArB,EAAiCL,IAAjC,EAAuCV,SAAvC,CAA9B;AAAA,MAAQmB,SAAR,yBAAQA,SAAR;AAAA,MAAmBC,MAAnB,yBAAmBA,MAAnB;;AACA,MAAMC,SAAS,aAAMjB,MAAN,SAAeH,MAAf,CAAf;AAEA,sBACE,gCAAC,mBAAD;AAAS,IAAA,SAAS,EAAEL,IAApB;AAA0B,IAAA,SAAS,EAAEkB;AAArC,kBACE,gCAAC,wBAAD;AACE,IAAA,GAAG,EAAEO;AADP,KAEMxB,UAFN;AAGE,IAAA,MAAM,EAAEuB,MAHV;AAIE,IAAA,SAAS,EAAED,SAJb;AAKE,IAAA,MAAM,EAAElB;AALV,KADF,CADF;AAWD,CAtCD;;AAwCAN,MAAM,CAAC2B,SAAP,GAAmB;AACjB1B,EAAAA,IAAI,EAAE2B,sBAAUC;AADC,CAAnB;AAIA7B,MAAM,CAAC8B,YAAP,GAAsB;AACpB7B,EAAAA,IAAI,EAAE;AADc,CAAtB;eAIeD,M","sourcesContent":["import React, { useContext } from 'react';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport PropTypes from 'prop-types';\nimport flatten from 'lodash.flatten';\nimport { useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { getSingleEntitySchema } from '../../application/query';\nimport Wrapper from '../Wrapper';\nimport BannerRender from './BannerRender';\nimport buildPropsQuery from '../../helpers/build-props-query';\nimport { getClassModifiers } from '../../utils';\nimport getEntityRenderProps from '../../helpers/get-entity-render-props';\n\nconst Banner = ({ type, ...otherProps }) => {\n const router = useRouter();\n const { isPreview } = useContext(MainContext);\n const { asPath } = router;\n const { parent, entity, sizeId, propsToDisplay = [] } = otherProps;\n\n const { itemEntity } = parent;\n const { data, error, loading } = useQuery(getSingleEntitySchema, {\n variables: { id: entity || itemEntity }\n });\n\n if (loading) return '';\n if (error) return error.message;\n if (!data) return null;\n if (!sizeId) return null;\n\n const modifiers = getClassModifiers('banner', otherProps);\n const queryProps = buildPropsQuery(\n data,\n propsToDisplay.length\n ? flatten(propsToDisplay.map(({ propertiesToDisplay }) => propertiesToDisplay))\n : []\n );\n\n const { actionKey, action } = getEntityRenderProps(queryProps, data, isPreview);\n const bannerKey = `${sizeId}${asPath}`;\n\n return (\n <Wrapper className={type} modifiers={modifiers}>\n <BannerRender\n key={bannerKey}\n {...otherProps}\n action={action}\n actionKey={actionKey}\n asPath={asPath}\n />\n </Wrapper>\n );\n};\n\nBanner.propTypes = {\n type: PropTypes.string\n};\n\nBanner.defaultProps = {\n type: 'banner'\n};\n\nexport default Banner;\n"],"file":"Banner.js"}
1
+ {"version":3,"sources":["../../../src/components/Banner/Banner.js"],"names":["Banner","type","otherProps","router","MainContext","isPreview","userId","id","asPath","parent","entity","sizeId","propsToDisplay","userPropsToDisplay","userQuery","itemEntity","getSingleEntitySchema","variables","data","error","loading","skip","length","userData","getUser","userLoading","message","modifiers","queryProps","map","propertiesToDisplay","userPropsData","actionKey","action","bannerKey","propTypes","PropTypes","string","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,OAA6B;AAAA,MAA1BC,IAA0B,QAA1BA,IAA0B;AAAA,MAAjBC,UAAiB;AAC1C,MAAMC,MAAM,GAAG,wBAAf;;AACA,oBAAsB,uBAAWC,6BAAX,CAAtB;AAAA,MAAQC,SAAR,eAAQA,SAAR;;AACA,yBAAuB,kCAAvB;AAAA,MAAYC,MAAZ,oBAAQC,EAAR;;AACA,MAAQC,MAAR,GAAmBL,MAAnB,CAAQK,MAAR;AACA,MAAQC,MAAR,GAAiFP,UAAjF,CAAQO,MAAR;AAAA,MAAgBC,MAAhB,GAAiFR,UAAjF,CAAgBQ,MAAhB;AAAA,MAAwBC,MAAxB,GAAiFT,UAAjF,CAAwBS,MAAxB;AAAA,8BAAiFT,UAAjF,CAAgCU,cAAhC;AAAA,MAAgCA,cAAhC,sCAAiD,EAAjD;AAAA,8BAAiFV,UAAjF,CAAqDW,kBAArD;AAAA,MAAqDA,kBAArD,sCAA0E,EAA1E;AACA,MAAMC,SAAS,GAAG,6BAAeD,kBAAf,CAAlB;AACA,MAAQE,UAAR,GAAuBN,MAAvB,CAAQM,UAAR;;AACA,kBAAiC,sBAASC,4BAAT,EAAgC;AAC/DC,IAAAA,SAAS,EAAE;AAAEV,MAAAA,EAAE,EAAEG,MAAM,IAAIK;AAAhB;AADoD,GAAhC,CAAjC;AAAA,MAAQG,IAAR,aAAQA,IAAR;AAAA,MAAcC,KAAd,aAAcA,KAAd;AAAA,MAAqBC,OAArB,aAAqBA,OAArB;;AAGA,mBAAmE,sBAAS,oBAAQN,SAAR,CAAT,EAA6B;AAC9FG,IAAAA,SAAS,EAAE;AAAEV,MAAAA,EAAE,EAAED;AAAN,KADmF;AAE9Fe,IAAAA,IAAI,EAAE,CAACR,kBAAkB,CAACS,MAApB,IAA8B,CAAChB;AAFyD,GAA7B,CAAnE;AAAA,mCAAQY,IAAR;;AAAA,iDAAsC,EAAtC;AAAA,MAAyBK,QAAzB,mBAAgBC,OAAhB;AAAA,MAAmDC,WAAnD,cAA0CL,OAA1C;AAKA,MAAIA,OAAO,IAAIK,WAAf,EAA4B,OAAO,EAAP;AAC5B,MAAIN,KAAJ,EAAW,OAAOA,KAAK,CAACO,OAAb;AACX,MAAI,CAACR,IAAL,EAAW,OAAO,IAAP;AACX,MAAI,CAACP,MAAL,EAAa,OAAO,IAAP;AAEb,MAAMgB,SAAS,GAAG,8BAAkB,QAAlB,EAA4BzB,UAA5B,CAAlB;AACA,MAAM0B,UAAU,GAAG,iCACjBV,IADiB,EAEjBN,cAAc,CAACU,MAAf,GACI,wBAAQV,cAAc,CAACiB,GAAf,CAAmB;AAAA,QAAGC,mBAAH,SAAGA,mBAAH;AAAA,WAA6BA,mBAA7B;AAAA,GAAnB,CAAR,CADJ,GAEI,EAJa,CAAnB;AAOA,MAAMC,aAAa,GAAG,6BAAeR,QAAf,EAAyBV,kBAAzB,CAAtB;;AACA,8BAA8B,uCAAqBe,UAArB,EAAiCV,IAAjC,EAAuCb,SAAvC,CAA9B;AAAA,MAAQ2B,SAAR,yBAAQA,SAAR;AAAA,MAAmBC,MAAnB,yBAAmBA,MAAnB;;AACA,MAAMC,SAAS,aAAMvB,MAAN,SAAeH,MAAf,CAAf;AAEA,sBACE,gCAAC,mBAAD;AAAS,IAAA,SAAS,EAAEP,IAApB;AAA0B,IAAA,SAAS,EAAE0B;AAArC,kBACE,gCAAC,wBAAD;AACE,IAAA,GAAG,EAAEO;AADP,KAEMhC,UAFN;AAGE,IAAA,MAAM,EAAE+B,MAHV;AAIE,IAAA,SAAS,EAAED,SAJb;AAKE,IAAA,MAAM,EAAExB,MALV;AAME,IAAA,aAAa,EAAEuB;AANjB,KADF,CADF;AAYD,CA7CD;;AA+CA/B,MAAM,CAACmC,SAAP,GAAmB;AACjBlC,EAAAA,IAAI,EAAEmC,sBAAUC;AADC,CAAnB;AAIArC,MAAM,CAACsC,YAAP,GAAsB;AACpBrC,EAAAA,IAAI,EAAE;AADc,CAAtB;eAIeD,M","sourcesContent":["import React, { useContext } from 'react';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { checkIfLoggedIn } from '@blaze-cms/core-auth-ui';\nimport PropTypes from 'prop-types';\nimport flatten from 'lodash.flatten';\nimport { useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { buildUserQuery, buildPropsData } from './helpers';\nimport { getSingleEntitySchema, getUser } from '../../application/query';\nimport Wrapper from '../Wrapper';\nimport BannerRender from './BannerRender';\nimport buildPropsQuery from '../../helpers/build-props-query';\nimport { getClassModifiers } from '../../utils';\nimport getEntityRenderProps from '../../helpers/get-entity-render-props';\n\nconst Banner = ({ type, ...otherProps }) => {\n const router = useRouter();\n const { isPreview } = useContext(MainContext);\n const { id: userId } = checkIfLoggedIn();\n const { asPath } = router;\n const { parent, entity, sizeId, propsToDisplay = [], userPropsToDisplay = [] } = otherProps;\n const userQuery = buildUserQuery(userPropsToDisplay);\n const { itemEntity } = parent;\n const { data, error, loading } = useQuery(getSingleEntitySchema, {\n variables: { id: entity || itemEntity }\n });\n const { data: { getUser: userData } = {}, loading: userLoading } = useQuery(getUser(userQuery), {\n variables: { id: userId },\n skip: !userPropsToDisplay.length || !userId\n });\n\n if (loading || userLoading) return '';\n if (error) return error.message;\n if (!data) return null;\n if (!sizeId) return null;\n\n const modifiers = getClassModifiers('banner', otherProps);\n const queryProps = buildPropsQuery(\n data,\n propsToDisplay.length\n ? flatten(propsToDisplay.map(({ propertiesToDisplay }) => propertiesToDisplay))\n : []\n );\n\n const userPropsData = buildPropsData(userData, userPropsToDisplay);\n const { actionKey, action } = getEntityRenderProps(queryProps, data, isPreview);\n const bannerKey = `${sizeId}${asPath}`;\n\n return (\n <Wrapper className={type} modifiers={modifiers}>\n <BannerRender\n key={bannerKey}\n {...otherProps}\n action={action}\n actionKey={actionKey}\n asPath={asPath}\n userPropsData={userPropsData}\n />\n </Wrapper>\n );\n};\n\nBanner.propTypes = {\n type: PropTypes.string\n};\n\nBanner.defaultProps = {\n type: 'banner'\n};\n\nexport default Banner;\n"],"file":"Banner.js"}
@@ -47,7 +47,7 @@ var _HOC = require("../../HOC");
47
47
 
48
48
  var _AdSlotRender = _interopRequireDefault(require("./AdSlotRender"));
49
49
 
50
- var _excluded = ["baseAdunit", "adunit", "sizeId", "sizes", "propsToDisplay", "entity", "targetings", "parent", "asPath", "action", "actionKey", "cardBannerIndex"];
50
+ var _excluded = ["baseAdunit", "adunit", "sizeId", "sizes", "propsToDisplay", "entity", "targetings", "parent", "asPath", "action", "actionKey", "cardBannerIndex", "userPropsData"];
51
51
 
52
52
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
53
53
 
@@ -66,6 +66,7 @@ var BannerRender = function BannerRender(_ref) {
66
66
  action = _ref.action,
67
67
  actionKey = _ref.actionKey,
68
68
  cardBannerIndex = _ref.cardBannerIndex,
69
+ userPropsData = _ref.userPropsData,
69
70
  otherProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
70
71
  var id = otherProps.id;
71
72
  var itemId = parent.itemId;
@@ -118,7 +119,7 @@ var BannerRender = function BannerRender(_ref) {
118
119
  var shouldShowBanner = parsedAdunit && parsedSizes && !!parsedSizes.length && isContextualTargetingReady;
119
120
  var customTargetings = (0, _helpers.setCustomTargetings)(targetings, cardBannerIndex);
120
121
 
121
- var targetingArguments = _objectSpread(_objectSpread({}, parsedTargetings), customTargetings);
122
+ var targetingArguments = _objectSpread(_objectSpread(_objectSpread({}, parsedTargetings), customTargetings), userPropsData);
122
123
 
123
124
  return /*#__PURE__*/_react["default"].createElement(_AdSlotRender["default"], {
124
125
  shouldShowBanner: !!shouldShowBanner,
@@ -142,7 +143,8 @@ BannerRender.propTypes = {
142
143
  entity: _propTypes["default"].string,
143
144
  targetings: _propTypes["default"].string,
144
145
  sizes: _propTypes["default"].string,
145
- cardBannerIndex: _propTypes["default"].number
146
+ cardBannerIndex: _propTypes["default"].number,
147
+ userPropsData: _propTypes["default"].object
146
148
  };
147
149
  BannerRender.defaultProps = {
148
150
  adunit: '',
@@ -152,7 +154,8 @@ BannerRender.defaultProps = {
152
154
  entity: '',
153
155
  targetings: '',
154
156
  sizes: '',
155
- cardBannerIndex: null
157
+ cardBannerIndex: null,
158
+ userPropsData: {}
156
159
  };
157
160
 
158
161
  var _default = (0, _HOC.withTitle)(BannerRender);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Banner/BannerRender.js"],"names":["BannerRender","baseAdunit","adunit","sizeId","sizes","propsToDisplay","entity","targetings","parent","asPath","action","actionKey","cardBannerIndex","otherProps","id","itemId","variables","where","skip","data","entityRecordData","GET_BANNER","BANNER_QUERY_PROPS","bannerData","COUNT_CONTENT_HIERARCHIES","parentId","childEntity","_ilike","PUBLISHED","parsedTargetings","entityData","bannerSizes","sizeMapping","parsedSizes","countContentHierarchies","parsedAdunit","isContextualTargetingSet","length","Object","keys","isContextualTargetingReady","shouldShowBanner","customTargetings","targetingArguments","propTypes","PropTypes","object","isRequired","string","array","number","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useQuery } from '@apollo/client';\n\nimport { generateSingleItemQuery, getCount } from '../../application/query';\nimport {\n buildBannerSizes,\n buildContextualTargeting,\n buildParsedAdunit,\n buildSizeMapping,\n setCustomTargetings\n} from './helpers';\nimport {\n BANNER_QUERY_PROPS,\n COUNT_CONTENT_HIERARCHIES,\n GET_BANNER,\n PUBLISHED\n} from '../../constants';\nimport { withTitle } from '../../HOC';\nimport AdSlotRender from './AdSlotRender';\n\nconst BannerRender = ({\n baseAdunit,\n adunit,\n sizeId,\n sizes,\n propsToDisplay,\n entity,\n targetings,\n parent,\n asPath,\n action,\n actionKey,\n cardBannerIndex,\n ...otherProps\n}) => {\n const { id } = otherProps;\n const { itemId } = parent;\n\n const { data: entityRecordData = {} } = useQuery(action, {\n variables: { where: { id: id || itemId } },\n skip: id && id !== itemId\n });\n\n const { data: bannerData = {} } = useQuery(\n generateSingleItemQuery(GET_BANNER, BANNER_QUERY_PROPS),\n {\n variables: { id: sizeId },\n skip: !sizeId\n }\n );\n\n const { data = {} } = useQuery(getCount(COUNT_CONTENT_HIERARCHIES), {\n variables: {\n where: {\n parentId: id || itemId,\n childEntity: {\n _ilike: `${PUBLISHED}_%`\n }\n }\n }\n });\n\n const parsedTargetings = buildContextualTargeting(actionKey, entityRecordData, propsToDisplay);\n\n const { entityData } = bannerData;\n const { sizes: bannerSizes } = entityData || {};\n\n const sizeMapping = buildSizeMapping(sizeId, bannerSizes);\n const parsedSizes = buildBannerSizes(sizeId, bannerSizes, sizes);\n\n const { countContentHierarchies } = data;\n\n const parsedAdunit = buildParsedAdunit(asPath, countContentHierarchies, baseAdunit, adunit);\n const isContextualTargetingSet =\n propsToDisplay.length && parsedTargetings && Object.keys(parsedTargetings).length;\n const isContextualTargetingReady = isContextualTargetingSet || !propsToDisplay.length;\n const shouldShowBanner =\n parsedAdunit && parsedSizes && !!parsedSizes.length && isContextualTargetingReady;\n\n const customTargetings = setCustomTargetings(targetings, cardBannerIndex);\n\n const targetingArguments = { ...parsedTargetings, ...customTargetings };\n\n return (\n <AdSlotRender\n shouldShowBanner={!!shouldShowBanner}\n sizeMapping={sizeMapping}\n sizeId={sizeId}\n parsedAdunit={parsedAdunit}\n parsedSizes={parsedSizes}\n targetingArguments={targetingArguments}\n />\n );\n};\n\nBannerRender.propTypes = {\n parent: PropTypes.object.isRequired,\n asPath: PropTypes.string.isRequired,\n action: PropTypes.object.isRequired,\n actionKey: PropTypes.string.isRequired,\n adunit: PropTypes.string,\n baseAdunit: PropTypes.string,\n sizeId: PropTypes.string,\n propsToDisplay: PropTypes.array,\n entity: PropTypes.string,\n targetings: PropTypes.string,\n sizes: PropTypes.string,\n cardBannerIndex: PropTypes.number\n};\n\nBannerRender.defaultProps = {\n adunit: '',\n baseAdunit: '',\n sizeId: '',\n propsToDisplay: [],\n entity: '',\n targetings: '',\n sizes: '',\n cardBannerIndex: null\n};\n\nexport default withTitle(BannerRender);\n"],"file":"BannerRender.js"}
1
+ {"version":3,"sources":["../../../src/components/Banner/BannerRender.js"],"names":["BannerRender","baseAdunit","adunit","sizeId","sizes","propsToDisplay","entity","targetings","parent","asPath","action","actionKey","cardBannerIndex","userPropsData","otherProps","id","itemId","variables","where","skip","data","entityRecordData","GET_BANNER","BANNER_QUERY_PROPS","bannerData","COUNT_CONTENT_HIERARCHIES","parentId","childEntity","_ilike","PUBLISHED","parsedTargetings","entityData","bannerSizes","sizeMapping","parsedSizes","countContentHierarchies","parsedAdunit","isContextualTargetingSet","length","Object","keys","isContextualTargetingReady","shouldShowBanner","customTargetings","targetingArguments","propTypes","PropTypes","object","isRequired","string","array","number","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AAOA;;AAMA;;AACA;;;;;;;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe,OAef;AAAA,MAdJC,UAcI,QAdJA,UAcI;AAAA,MAbJC,MAaI,QAbJA,MAaI;AAAA,MAZJC,MAYI,QAZJA,MAYI;AAAA,MAXJC,KAWI,QAXJA,KAWI;AAAA,MAVJC,cAUI,QAVJA,cAUI;AAAA,MATJC,MASI,QATJA,MASI;AAAA,MARJC,UAQI,QARJA,UAQI;AAAA,MAPJC,MAOI,QAPJA,MAOI;AAAA,MANJC,MAMI,QANJA,MAMI;AAAA,MALJC,MAKI,QALJA,MAKI;AAAA,MAJJC,SAII,QAJJA,SAII;AAAA,MAHJC,eAGI,QAHJA,eAGI;AAAA,MAFJC,aAEI,QAFJA,aAEI;AAAA,MADDC,UACC;AACJ,MAAQC,EAAR,GAAeD,UAAf,CAAQC,EAAR;AACA,MAAQC,MAAR,GAAmBR,MAAnB,CAAQQ,MAAR;;AAEA,kBAAwC,sBAASN,MAAT,EAAiB;AACvDO,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,EAAEZ;AAAN,KADb;AAEEgB,IAAAA,IAAI,EAAE,CAAChB;AAFT,GAFgC,CAAlC;AAAA,mCAAQiB,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,uCAAyBnB,SAAzB,EAAoCU,gBAApC,EAAsDhB,cAAtD,CAAzB;AACA,MAAQ0B,UAAR,GAAuBP,UAAvB,CAAQO,UAAR;;AACA,cAA+BA,UAAU,IAAI,EAA7C;AAAA,MAAeC,WAAf,SAAQ5B,KAAR;;AAEA,MAAM6B,WAAW,GAAG,+BAAiB9B,MAAjB,EAAyB6B,WAAzB,CAApB;AACA,MAAME,WAAW,GAAG,+BAAiB/B,MAAjB,EAAyB6B,WAAzB,EAAsC5B,KAAtC,CAApB;AAEA,MAAQ+B,uBAAR,GAAoCf,IAApC,CAAQe,uBAAR;AAEA,MAAMC,YAAY,GAAG,gCAAkB3B,MAAlB,EAA0B0B,uBAA1B,EAAmDlC,UAAnD,EAA+DC,MAA/D,CAArB;AACA,MAAMmC,wBAAwB,GAC5BhC,cAAc,CAACiC,MAAf,IAAyBR,gBAAzB,IAA6CS,MAAM,CAACC,IAAP,CAAYV,gBAAZ,EAA8BQ,MAD7E;AAEA,MAAMG,0BAA0B,GAAGJ,wBAAwB,IAAI,CAAChC,cAAc,CAACiC,MAA/E;AACA,MAAMI,gBAAgB,GACpBN,YAAY,IAAIF,WAAhB,IAA+B,CAAC,CAACA,WAAW,CAACI,MAA7C,IAAuDG,0BADzD;AAGA,MAAME,gBAAgB,GAAG,kCAAoBpC,UAApB,EAAgCK,eAAhC,CAAzB;;AAEA,MAAMgC,kBAAkB,iDAAQd,gBAAR,GAA6Ba,gBAA7B,GAAkD9B,aAAlD,CAAxB;;AAEA,sBACE,gCAAC,wBAAD;AACE,IAAA,gBAAgB,EAAE,CAAC,CAAC6B,gBADtB;AAEE,IAAA,WAAW,EAAET,WAFf;AAGE,IAAA,MAAM,EAAE9B,MAHV;AAIE,IAAA,YAAY,EAAEiC,YAJhB;AAKE,IAAA,WAAW,EAAEF,WALf;AAME,IAAA,kBAAkB,EAAEU;AANtB,IADF;AAUD,CAzED;;AA2EA5C,YAAY,CAAC6C,SAAb,GAAyB;AACvBrC,EAAAA,MAAM,EAAEsC,sBAAUC,MAAV,CAAiBC,UADF;AAEvBvC,EAAAA,MAAM,EAAEqC,sBAAUG,MAAV,CAAiBD,UAFF;AAGvBtC,EAAAA,MAAM,EAAEoC,sBAAUC,MAAV,CAAiBC,UAHF;AAIvBrC,EAAAA,SAAS,EAAEmC,sBAAUG,MAAV,CAAiBD,UAJL;AAKvB9C,EAAAA,MAAM,EAAE4C,sBAAUG,MALK;AAMvBhD,EAAAA,UAAU,EAAE6C,sBAAUG,MANC;AAOvB9C,EAAAA,MAAM,EAAE2C,sBAAUG,MAPK;AAQvB5C,EAAAA,cAAc,EAAEyC,sBAAUI,KARH;AASvB5C,EAAAA,MAAM,EAAEwC,sBAAUG,MATK;AAUvB1C,EAAAA,UAAU,EAAEuC,sBAAUG,MAVC;AAWvB7C,EAAAA,KAAK,EAAE0C,sBAAUG,MAXM;AAYvBrC,EAAAA,eAAe,EAAEkC,sBAAUK,MAZJ;AAavBtC,EAAAA,aAAa,EAAEiC,sBAAUC;AAbF,CAAzB;AAgBA/C,YAAY,CAACoD,YAAb,GAA4B;AAC1BlD,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,IARS;AAS1BC,EAAAA,aAAa,EAAE;AATW,CAA5B;;eAYe,oBAAUb,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 userPropsData,\n ...otherProps\n}) => {\n const { id } = otherProps;\n const { itemId } = parent;\n\n const { data: entityRecordData = {} } = useQuery(action, {\n variables: { where: { id: id || itemId } },\n skip: id && id !== itemId\n });\n\n const { data: bannerData = {} } = useQuery(\n generateSingleItemQuery(GET_BANNER, BANNER_QUERY_PROPS),\n {\n variables: { id: sizeId },\n skip: !sizeId\n }\n );\n\n const { data = {} } = useQuery(getCount(COUNT_CONTENT_HIERARCHIES), {\n variables: {\n where: {\n parentId: id || itemId,\n childEntity: {\n _ilike: `${PUBLISHED}_%`\n }\n }\n }\n });\n\n const parsedTargetings = buildContextualTargeting(actionKey, entityRecordData, propsToDisplay);\n const { entityData } = bannerData;\n const { sizes: bannerSizes } = entityData || {};\n\n const sizeMapping = buildSizeMapping(sizeId, bannerSizes);\n const parsedSizes = buildBannerSizes(sizeId, bannerSizes, sizes);\n\n const { countContentHierarchies } = data;\n\n const parsedAdunit = buildParsedAdunit(asPath, countContentHierarchies, baseAdunit, adunit);\n const isContextualTargetingSet =\n propsToDisplay.length && parsedTargetings && Object.keys(parsedTargetings).length;\n const isContextualTargetingReady = isContextualTargetingSet || !propsToDisplay.length;\n const shouldShowBanner =\n parsedAdunit && parsedSizes && !!parsedSizes.length && isContextualTargetingReady;\n\n const customTargetings = setCustomTargetings(targetings, cardBannerIndex);\n\n const targetingArguments = { ...parsedTargetings, ...customTargetings, ...userPropsData };\n\n return (\n <AdSlotRender\n shouldShowBanner={!!shouldShowBanner}\n sizeMapping={sizeMapping}\n sizeId={sizeId}\n parsedAdunit={parsedAdunit}\n parsedSizes={parsedSizes}\n targetingArguments={targetingArguments}\n />\n );\n};\n\nBannerRender.propTypes = {\n parent: PropTypes.object.isRequired,\n asPath: PropTypes.string.isRequired,\n action: PropTypes.object.isRequired,\n actionKey: PropTypes.string.isRequired,\n adunit: PropTypes.string,\n baseAdunit: PropTypes.string,\n sizeId: PropTypes.string,\n propsToDisplay: PropTypes.array,\n entity: PropTypes.string,\n targetings: PropTypes.string,\n sizes: PropTypes.string,\n cardBannerIndex: PropTypes.number,\n userPropsData: PropTypes.object\n};\n\nBannerRender.defaultProps = {\n adunit: '',\n baseAdunit: '',\n sizeId: '',\n propsToDisplay: [],\n entity: '',\n targetings: '',\n sizes: '',\n cardBannerIndex: null,\n userPropsData: {}\n};\n\nexport default withTitle(BannerRender);\n"],"file":"BannerRender.js"}
@@ -15,7 +15,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
15
15
  Object.defineProperty(exports, "__esModule", {
16
16
  value: true
17
17
  });
18
- exports.setCustomTargetings = exports.getParsedSizes = exports.getMinBannerHeight = exports.getMaxBannerHeight = exports.buildSizeMapping = exports.buildParsedAdunit = exports.buildContextualTargeting = exports.buildBannerSizes = void 0;
18
+ exports.setCustomTargetings = exports.getParsedSizes = exports.getMinBannerHeight = exports.getMaxBannerHeight = exports.buildUserQuery = exports.buildSizeMapping = exports.buildPropsData = exports.buildParsedAdunit = exports.buildContextualTargeting = exports.buildBannerSizes = void 0;
19
19
 
20
20
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
21
21
 
@@ -59,11 +59,9 @@ require("core-js/modules/es.array.reduce.js");
59
59
 
60
60
  require("core-js/modules/es.array.is-array.js");
61
61
 
62
- var _queryString = require("query-string");
63
-
64
- var _lodash = _interopRequireDefault(require("lodash.flatten"));
62
+ require("core-js/modules/es.array.index-of.js");
65
63
 
66
- var _getPropValues = _interopRequireDefault(require("../../helpers/get-prop-values"));
64
+ var _queryString = require("query-string");
67
65
 
68
66
  var _constants = require("../../constants");
69
67
 
@@ -161,14 +159,8 @@ var buildContextualTargeting = function buildContextualTargeting(actionKey) {
161
159
  var propsToDisplay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
162
160
 
163
161
  if (actionKey && props[actionKey] && props[actionKey][0]) {
164
- return propsToDisplay.reduce(function (acc, _ref2) {
165
- var label = _ref2.label,
166
- propertiesToDisplay = _ref2.propertiesToDisplay;
167
- var propValue = (0, _getPropValues["default"])(propertiesToDisplay, props[actionKey][0]);
168
- var parsedValue = Array.isArray(propValue) ? (0, _lodash["default"])(propValue) : propValue;
169
- acc[label] = parsedValue;
170
- return acc;
171
- }, {});
162
+ var data = props[actionKey][0];
163
+ return buildPropsData(data, propsToDisplay);
172
164
  }
173
165
 
174
166
  return {};
@@ -180,17 +172,17 @@ var buildSizeMapping = function buildSizeMapping(sizeId, bannerSizes) {
180
172
  var sizeMapping = [];
181
173
 
182
174
  if (sizeId && bannerSizes && bannerSizes.length) {
183
- var groupedViewports = bannerSizes.reduce(function (acc, _ref3) {
184
- var width = _ref3.width,
185
- height = _ref3.height,
186
- _ref3$viewports = _ref3.viewports,
187
- viewports = _ref3$viewports === void 0 ? [] : _ref3$viewports;
175
+ var groupedViewports = bannerSizes.reduce(function (acc, _ref2) {
176
+ var width = _ref2.width,
177
+ height = _ref2.height,
178
+ _ref2$viewports = _ref2.viewports,
179
+ viewports = _ref2$viewports === void 0 ? [] : _ref2$viewports;
188
180
  var size = width && height ? [width, height] : null; // if one dimension is falsey then it shouldn't display
189
181
 
190
182
  if (viewports) {
191
- viewports.forEach(function (_ref4) {
192
- var viewportWidth = _ref4.width,
193
- viewportHeight = _ref4.height;
183
+ viewports.forEach(function (_ref3) {
184
+ var viewportWidth = _ref3.width,
185
+ viewportHeight = _ref3.height;
194
186
  var key = "".concat(viewportWidth || 0, "x").concat(viewportHeight || 0);
195
187
  acc[key] = acc[key] || [];
196
188
  if (size) acc[key].push(size);
@@ -240,4 +232,72 @@ var getMinBannerHeight = function getMinBannerHeight(bannerSizes) {
240
232
  };
241
233
 
242
234
  exports.getMinBannerHeight = getMinBannerHeight;
235
+
236
+ var buildUserQuery = function buildUserQuery(userProps) {
237
+ if (!userProps || !userProps.length) return '';
238
+ var basicProps = [];
239
+ var nestedProps = {};
240
+ userProps.forEach(function (_ref4) {
241
+ var propertiesToDisplay = _ref4.propertiesToDisplay;
242
+
243
+ var _propertiesToDisplay = (0, _slicedToArray2["default"])(propertiesToDisplay, 1),
244
+ propKey = _propertiesToDisplay[0];
245
+
246
+ if (!propKey || propKey === 'id') return;
247
+
248
+ if (propKey.indexOf('.') !== -1) {
249
+ var _propKey$split = propKey.split('.'),
250
+ _propKey$split2 = (0, _slicedToArray2["default"])(_propKey$split, 2),
251
+ baseProp = _propKey$split2[0],
252
+ nestedProp = _propKey$split2[1];
253
+
254
+ if (nestedProps[baseProp]) nestedProps[baseProp].push(nestedProp);else nestedProps[baseProp] = [nestedProp];
255
+ } else basicProps.push(propKey);
256
+ });
257
+ Object.keys(nestedProps).forEach(function (nestedKey) {
258
+ var nested = nestedProps[nestedKey];
259
+ basicProps.push(nestedKey);
260
+ basicProps.push('{');
261
+ nested.forEach(function (prop) {
262
+ return basicProps.push(prop);
263
+ });
264
+ basicProps.push('}');
265
+ });
266
+ return basicProps.join(' ');
267
+ };
268
+
269
+ exports.buildUserQuery = buildUserQuery;
270
+
271
+ var buildPropsData = function buildPropsData(data, props) {
272
+ if (!data || !props.length) return {};
273
+ var propsWithData = {};
274
+ props.forEach(function (_ref5) {
275
+ var propertiesToDisplay = _ref5.propertiesToDisplay,
276
+ label = _ref5.label;
277
+
278
+ var _propertiesToDisplay2 = (0, _slicedToArray2["default"])(propertiesToDisplay, 1),
279
+ key = _propertiesToDisplay2[0];
280
+
281
+ var parsedKey = key.split('.');
282
+ var value = getNestedValue(parsedKey, data);
283
+ var labelToUse = label || key;
284
+ if (value) propsWithData[labelToUse] = value;
285
+ });
286
+ return propsWithData;
287
+ };
288
+
289
+ exports.buildPropsData = buildPropsData;
290
+
291
+ var parseArrayValues = function parseArrayValues(arr, key) {
292
+ return arr.map(function (obj) {
293
+ return obj[key];
294
+ }).filter(Boolean).join(', ');
295
+ };
296
+
297
+ var getNestedValue = function getNestedValue(keys, object) {
298
+ var key = keys.shift();
299
+ var nestedValue = Array.isArray(object) ? parseArrayValues(object, key) : object[key];
300
+ if (!nestedValue) return null;
301
+ return keys.length ? getNestedValue(keys, nestedValue) : nestedValue;
302
+ };
243
303
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Banner/helpers.js"],"names":["getParsedSizes","sizes","sanitizedSizes","replace","toLowerCase","sizeGroups","split","map","group","Number","addPosnToTargetings","targetings","index","posn","buildTargetingValue","valueTargeting","includes","char","setCustomTargetings","cardBannerIndex","bannerTargetings","updatedTargetings","isValidTargeting","customTargeting","splitTargeting","Object","keys","forEach","key","keyTargeting","buildParsedAdunit","path","countContentHierarchies","baseAdunit","adunit","isInteger","base","process","env","DFP_BASE_ADUNIT","hasChildren","url","urlParts","filter","Boolean","urlPart","slice","length","join","endAdunit","END_ADUNIT","getBannerSizes","sizeId","bannerSizes","width","height","buildBannerSizes","parsedSizes","buildContextualTargeting","actionKey","props","propsToDisplay","reduce","acc","label","propertiesToDisplay","propValue","parsedValue","Array","isArray","buildSizeMapping","sizeMapping","groupedViewports","viewports","size","viewportWidth","viewportHeight","push","keyGroupedViewport","viewport","getMaxBannerHeight","Math","max","o","MAX_BANNER_HEIGHT","getMinBannerHeight","min","MIN_BANNER_HEIGHT"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AACrC,MAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B,OAAO,EAAP;AAE/B,MAAMC,cAAc,GAAGD,KAAK,CAACE,OAAN,CAAc,KAAd,EAAqB,EAArB,EAAyBC,WAAzB,EAAvB;AACA,MAAMC,UAAU,GAAGH,cAAc,CAACI,KAAf,CAAqB,GAArB,CAAnB;AAEA,SAAOD,UAAU,CAACE,GAAX,CAAe,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,KAAN,CAAY,GAAZ,EAAiBC,GAAjB,CAAqBE,MAArB,CAAJ;AAAA,GAApB,CAAP;AACD,CAPD;;;;AASA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,UAAD,EAAaC,KAAb,EAAuB;AACjD,MAAMC,IAAI,kBAAWD,KAAX,CAAV;AACA,SAAOD,UAAU,aAAMA,UAAN,cAAoBE,IAApB,IAA6BA,IAA9C;AACD,CAHD;;AAKA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAC,cAAc;AAAA,SACxCA,cAAc,CAACC,QAAf,CAAwB,GAAxB,KAAgCD,cAAc,CAACC,QAAf,CAAwB,GAAxB,CAAhC,GACID,cAAc,CAACZ,OAAf,CAAuB,YAAvB,EAAqC,UAAAc,KAAI;AAAA,WAAKA,KAAI,KAAK,GAAT,GAAe,GAAf,GAAqB,EAA1B;AAAA,GAAzC,EAAwEX,KAAxE,CAA8E,GAA9E,CADJ,GAEIS,cAHoC;AAAA,CAA1C;;AAKA,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACP,UAAD,EAAaQ,eAAb,EAAiC;AAC3D,MAAIC,gBAAgB,GAAG,EAAvB;AAEA,MAAMC,iBAAiB,GAAGF,eAAe,GACrCT,mBAAmB,CAACC,UAAD,EAAaQ,eAAb,CADkB,GAErCR,UAFJ;AAIA,MAAMW,gBAAgB,GAAGD,iBAAiB,IAAI,OAAOA,iBAAP,KAA6B,QAA3E;;AAEA,MAAIC,gBAAJ,EAAsB;AACpB,QAAMC,eAAe,GAAG,EAAxB;AAEA,QAAIC,cAAc,GAAGH,iBAAiB,CAACf,KAAlB,CAAwB,GAAxB,CAArB;AACAkB,IAAAA,cAAc,qBAAQA,cAAR,CAAd;AAEAC,IAAAA,MAAM,CAACC,IAAP,CAAYF,cAAZ,EAA4BG,OAA5B,CAAoC,UAAAC,GAAG,EAAI;AACzC,kCAAuCJ,cAAc,CAACI,GAAD,CAAd,CAAoBtB,KAApB,CAA0B,GAA1B,CAAvC;AAAA;AAAA,UAAOuB,YAAP;AAAA,UAAqBd,cAArB;;AAEA,UAAIc,YAAY,IAAId,cAApB,EAAoC;AAClCQ,QAAAA,eAAe,CAACM,YAAD,CAAf,GAAgCf,mBAAmB,CAACC,cAAD,CAAnD;AACD;AACF,KAND;AAOAK,IAAAA,gBAAgB,mCAAQA,gBAAR,GAA6BG,eAA7B,CAAhB;AACD;;AAED,SAAOH,gBAAP;AACD,CA1BD;;;;AA4BA,IAAMU,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,IAAD,EAAOC,uBAAP,EAAgCC,UAAhC,EAA4CC,MAA5C,EAAuD;AAC/E,MAAI,CAACzB,MAAM,CAAC0B,SAAP,CAAiBH,uBAAjB,CAAL,EAAgD,OAAO,EAAP;AAEhD,MAAMI,IAAI,GAAGH,UAAU,IAAII,OAAO,CAACC,GAAR,CAAYC,eAAvC;AACA,MAAMC,WAAW,GAAGR,uBAAuB,KAAK,CAAhD;;AACA,kBAAgB,2BAASD,IAAT,CAAhB;AAAA,MAAQU,GAAR,aAAQA,GAAR;;AACA,MAAIC,QAAQ,GAAGD,GAAG,CACfnC,KADY,CACN,GADM,EAEZqC,MAFY,CAELC,OAFK,EAGZrC,GAHY,CAGR,UAAAsC,OAAO;AAAA,WAAIA,OAAO,CAAC1C,OAAR,CAAgB,IAAhB,EAAsB,EAAtB,CAAJ;AAAA,GAHC,CAAf;AAIAuC,EAAAA,QAAQ,GAAGA,QAAQ,CAACI,KAAT,CAAe,CAAf,EAAkBN,WAAW,GAAGE,QAAQ,CAACK,MAAZ,GAAqBL,QAAQ,CAACK,MAAT,GAAkB,CAApE,EAAuEC,IAAvE,CAA4E,GAA5E,CAAX;AACAN,EAAAA,QAAQ,GAAGA,QAAQ,aAAMA,QAAN,SAAoBA,QAAvC;AACA,MAAMO,SAAS,GAAGf,MAAM,IAAIgB,qBAA5B;AAEA,mBAAUd,IAAV,cAAkBM,QAAlB,SAA6BO,SAA7B;AACD,CAfD;;;;AAiBA,IAAME,cAAc,GAAG,SAAjBA,cAAiB,CAACC,MAAD,EAASC,WAAT;AAAA,SACrBD,MAAM,IAAIC,WAAV,IAAyBA,WAAW,CAACN,MAArC,GACIM,WAAW,CAAC9C,GAAZ,CAAgB;AAAA,QAAG+C,KAAH,QAAGA,KAAH;AAAA,QAAUC,MAAV,QAAUA,MAAV;AAAA,WAAuB,CAACD,KAAD,EAAQC,MAAR,CAAvB;AAAA,GAAhB,CADJ,GAEI,IAHiB;AAAA,CAAvB;;AAKA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACJ,MAAD,EAASC,WAAT,EAAsBpD,KAAtB,EAAgC;AACvD,MAAIwD,WAAW,GAAGN,cAAc,CAACC,MAAD,EAASC,WAAT,CAAhC;AAEA,MAAI,CAACI,WAAD,IAAgBxD,KAApB,EAA2BwD,WAAW,GAAGzD,cAAc,CAACC,KAAD,CAA5B;AAE3B,SAAOwD,WAAP;AACD,CAND;;;;AAQA,IAAMC,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,SAAD,EAAgD;AAAA,MAApCC,KAAoC,uEAA5B,EAA4B;AAAA,MAAxBC,cAAwB,uEAAP,EAAO;;AAC/E,MAAIF,SAAS,IAAIC,KAAK,CAACD,SAAD,CAAlB,IAAiCC,KAAK,CAACD,SAAD,CAAL,CAAiB,CAAjB,CAArC,EAA0D;AACxD,WAAOE,cAAc,CAACC,MAAf,CAAsB,UAACC,GAAD,SAAyC;AAAA,UAAjCC,KAAiC,SAAjCA,KAAiC;AAAA,UAA1BC,mBAA0B,SAA1BA,mBAA0B;AACpE,UAAMC,SAAS,GAAG,+BAAcD,mBAAd,EAAmCL,KAAK,CAACD,SAAD,CAAL,CAAiB,CAAjB,CAAnC,CAAlB;AACA,UAAMQ,WAAW,GAAGC,KAAK,CAACC,OAAN,CAAcH,SAAd,IAA2B,wBAAQA,SAAR,CAA3B,GAAgDA,SAApE;AACAH,MAAAA,GAAG,CAACC,KAAD,CAAH,GAAaG,WAAb;AACA,aAAOJ,GAAP;AACD,KALM,EAKJ,EALI,CAAP;AAMD;;AACD,SAAO,EAAP;AACD,CAVD;;;;AAYA,IAAMO,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAClB,MAAD,EAASC,WAAT,EAAyB;AAChD,MAAIkB,WAAW,GAAG,EAAlB;;AAEA,MAAInB,MAAM,IAAIC,WAAV,IAAyBA,WAAW,CAACN,MAAzC,EAAiD;AAC/C,QAAMyB,gBAAgB,GAAGnB,WAAW,CAACS,MAAZ,CAAmB,UAACC,GAAD,SAA4C;AAAA,UAApCT,KAAoC,SAApCA,KAAoC;AAAA,UAA7BC,MAA6B,SAA7BA,MAA6B;AAAA,kCAArBkB,SAAqB;AAAA,UAArBA,SAAqB,gCAAT,EAAS;AACtF,UAAMC,IAAI,GAAGpB,KAAK,IAAIC,MAAT,GAAkB,CAACD,KAAD,EAAQC,MAAR,CAAlB,GAAoC,IAAjD,CADsF,CAC/B;;AAEvD,UAAIkB,SAAJ,EAAe;AACbA,QAAAA,SAAS,CAAC9C,OAAV,CAAkB,iBAAsD;AAAA,cAA5CgD,aAA4C,SAAnDrB,KAAmD;AAAA,cAArBsB,cAAqB,SAA7BrB,MAA6B;AACtE,cAAM3B,GAAG,aAAM+C,aAAa,IAAI,CAAvB,cAA4BC,cAAc,IAAI,CAA9C,CAAT;AACAb,UAAAA,GAAG,CAACnC,GAAD,CAAH,GAAWmC,GAAG,CAACnC,GAAD,CAAH,IAAY,EAAvB;AACA,cAAI8C,IAAJ,EAAUX,GAAG,CAACnC,GAAD,CAAH,CAASiD,IAAT,CAAcH,IAAd;AACX,SAJD;AAKD;;AACD,aAAOX,GAAP;AACD,KAXwB,EAWtB,EAXsB,CAAzB;AAaAQ,IAAAA,WAAW,GAAG9C,MAAM,CAACC,IAAP,CAAY8C,gBAAZ,EAA8BjE,GAA9B,CAAkC,UAAAuE,kBAAkB,EAAI;AACpE,kCAAwCA,kBAAkB,CAACxE,KAAnB,CAAyB,GAAzB,CAAxC;AAAA;AAAA,UAAOqE,aAAP;AAAA,UAAsBC,cAAtB;;AACA,aAAO;AACLG,QAAAA,QAAQ,EAAE,CAACtE,MAAM,CAACkE,aAAD,CAAP,EAAwBlE,MAAM,CAACmE,cAAD,CAA9B,CADL;AAEL3E,QAAAA,KAAK,EAAEuE,gBAAgB,CAACM,kBAAD;AAFlB,OAAP;AAID,KANa,CAAd;AAOD;;AAED,SAAOP,WAAP;AACD,CA3BD;;;;AA6BA,IAAMS,kBAAkB,GAAG,SAArBA,kBAAqB,CAAA3B,WAAW,EAAI;AACxC,MAAIe,KAAK,CAACC,OAAN,CAAchB,WAAd,KAA8BA,WAAW,CAACN,MAAZ,GAAqB,CAAvD,EAA0D;AACxD,WAAOkC,IAAI,CAACC,GAAL,OAAAD,IAAI,sCAAQ5B,WAAW,CAAC9C,GAAZ,CAAgB,UAAA4E,CAAC;AAAA,aAAIA,CAAC,CAAC5B,MAAN;AAAA,KAAjB,CAAR,EAAX;AACD;;AACD,SAAO6B,4BAAP;AACD,CALD;;;;AAOA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAhC,WAAW,EAAI;AACxC,MAAIe,KAAK,CAACC,OAAN,CAAchB,WAAd,KAA8BA,WAAW,CAACN,MAAZ,GAAqB,CAAvD,EAA0D;AACxD,WAAOkC,IAAI,CAACK,GAAL,OAAAL,IAAI,sCAAQ5B,WAAW,CAAC9C,GAAZ,CAAgB,UAAA4E,CAAC;AAAA,aAAIA,CAAC,CAAC5B,MAAN;AAAA,KAAjB,CAAR,EAAX;AACD;;AACD,SAAOgC,4BAAP;AACD,CALD","sourcesContent":["import { parseUrl } from 'query-string';\nimport flatten from 'lodash.flatten';\nimport getPropValues from '../../helpers/get-prop-values';\nimport { END_ADUNIT, MAX_BANNER_HEIGHT, MIN_BANNER_HEIGHT } from '../../constants';\n\nconst getParsedSizes = (sizes = '') => {\n if (typeof sizes !== 'string') return [];\n\n const sanitizedSizes = sizes.replace(/\\s+/, '').toLowerCase();\n const sizeGroups = sanitizedSizes.split(',');\n\n return sizeGroups.map(group => group.split('x').map(Number));\n};\n\nconst addPosnToTargetings = (targetings, index) => {\n const posn = `posn=${index}`;\n return targetings ? `${targetings},${posn}` : posn;\n};\n\nconst buildTargetingValue = valueTargeting =>\n valueTargeting.includes('[') && valueTargeting.includes(']')\n ? valueTargeting.replace(/\\;|\\[|\\]/gm, char => (char === ';' ? ',' : '')).split(',')\n : valueTargeting;\n\nconst setCustomTargetings = (targetings, cardBannerIndex) => {\n let bannerTargetings = {};\n\n const updatedTargetings = cardBannerIndex\n ? addPosnToTargetings(targetings, cardBannerIndex)\n : targetings;\n\n const isValidTargeting = updatedTargetings && typeof updatedTargetings === 'string';\n\n if (isValidTargeting) {\n const customTargeting = {};\n\n let splitTargeting = updatedTargetings.split(',');\n splitTargeting = { ...splitTargeting };\n\n Object.keys(splitTargeting).forEach(key => {\n const [keyTargeting, valueTargeting] = splitTargeting[key].split('=');\n\n if (keyTargeting && valueTargeting) {\n customTargeting[keyTargeting] = buildTargetingValue(valueTargeting);\n }\n });\n bannerTargetings = { ...bannerTargetings, ...customTargeting };\n }\n\n return bannerTargetings;\n};\n\nconst buildParsedAdunit = (path, countContentHierarchies, baseAdunit, adunit) => {\n if (!Number.isInteger(countContentHierarchies)) return '';\n\n const base = baseAdunit || process.env.DFP_BASE_ADUNIT;\n const hasChildren = countContentHierarchies !== 0;\n const { url } = parseUrl(path);\n let urlParts = url\n .split('/')\n .filter(Boolean)\n .map(urlPart => urlPart.replace(/-/g, ''));\n urlParts = urlParts.slice(0, hasChildren ? urlParts.length : urlParts.length - 1).join('/');\n urlParts = urlParts ? `${urlParts}/` : urlParts;\n const endAdunit = adunit || END_ADUNIT;\n\n return `${base}/${urlParts}${endAdunit}`;\n};\n\nconst getBannerSizes = (sizeId, bannerSizes) =>\n sizeId && bannerSizes && bannerSizes.length\n ? bannerSizes.map(({ width, height }) => [width, height])\n : null;\n\nconst buildBannerSizes = (sizeId, bannerSizes, sizes) => {\n let parsedSizes = getBannerSizes(sizeId, bannerSizes);\n\n if (!parsedSizes && sizes) parsedSizes = getParsedSizes(sizes);\n\n return parsedSizes;\n};\n\nconst buildContextualTargeting = (actionKey, props = {}, propsToDisplay = []) => {\n if (actionKey && props[actionKey] && props[actionKey][0]) {\n return propsToDisplay.reduce((acc, { label, propertiesToDisplay }) => {\n const propValue = getPropValues(propertiesToDisplay, props[actionKey][0]);\n const parsedValue = Array.isArray(propValue) ? flatten(propValue) : propValue;\n acc[label] = parsedValue;\n return acc;\n }, {});\n }\n return {};\n};\n\nconst buildSizeMapping = (sizeId, bannerSizes) => {\n let sizeMapping = [];\n\n if (sizeId && bannerSizes && bannerSizes.length) {\n const groupedViewports = bannerSizes.reduce((acc, { width, height, viewports = [] }) => {\n const size = width && height ? [width, height] : null; // if one dimension is falsey then it shouldn't display\n\n if (viewports) {\n viewports.forEach(({ width: viewportWidth, height: viewportHeight }) => {\n const key = `${viewportWidth || 0}x${viewportHeight || 0}`;\n acc[key] = acc[key] || [];\n if (size) acc[key].push(size);\n });\n }\n return acc;\n }, {});\n\n sizeMapping = Object.keys(groupedViewports).map(keyGroupedViewport => {\n const [viewportWidth, viewportHeight] = keyGroupedViewport.split('x');\n return {\n viewport: [Number(viewportWidth), Number(viewportHeight)],\n sizes: groupedViewports[keyGroupedViewport]\n };\n });\n }\n\n return sizeMapping;\n};\n\nconst getMaxBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.max(...bannerSizes.map(o => o.height));\n }\n return MAX_BANNER_HEIGHT;\n};\n\nconst getMinBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.min(...bannerSizes.map(o => o.height));\n }\n return MIN_BANNER_HEIGHT;\n};\n\nexport {\n getParsedSizes,\n setCustomTargetings,\n buildParsedAdunit,\n buildBannerSizes,\n buildContextualTargeting,\n buildSizeMapping,\n getMaxBannerHeight,\n getMinBannerHeight\n};\n"],"file":"helpers.js"}
1
+ {"version":3,"sources":["../../../src/components/Banner/helpers.js"],"names":["getParsedSizes","sizes","sanitizedSizes","replace","toLowerCase","sizeGroups","split","map","group","Number","addPosnToTargetings","targetings","index","posn","buildTargetingValue","valueTargeting","includes","char","setCustomTargetings","cardBannerIndex","bannerTargetings","updatedTargetings","isValidTargeting","customTargeting","splitTargeting","Object","keys","forEach","key","keyTargeting","buildParsedAdunit","path","countContentHierarchies","baseAdunit","adunit","isInteger","base","process","env","DFP_BASE_ADUNIT","hasChildren","url","urlParts","filter","Boolean","urlPart","slice","length","join","endAdunit","END_ADUNIT","getBannerSizes","sizeId","bannerSizes","width","height","buildBannerSizes","parsedSizes","buildContextualTargeting","actionKey","props","propsToDisplay","data","buildPropsData","buildSizeMapping","sizeMapping","groupedViewports","reduce","acc","viewports","size","viewportWidth","viewportHeight","push","keyGroupedViewport","viewport","getMaxBannerHeight","Array","isArray","Math","max","o","MAX_BANNER_HEIGHT","getMinBannerHeight","min","MIN_BANNER_HEIGHT","buildUserQuery","userProps","basicProps","nestedProps","propertiesToDisplay","propKey","indexOf","baseProp","nestedProp","nestedKey","nested","prop","propsWithData","label","parsedKey","value","getNestedValue","labelToUse","parseArrayValues","arr","obj","object","shift","nestedValue"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AACrC,MAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B,OAAO,EAAP;AAE/B,MAAMC,cAAc,GAAGD,KAAK,CAACE,OAAN,CAAc,KAAd,EAAqB,EAArB,EAAyBC,WAAzB,EAAvB;AACA,MAAMC,UAAU,GAAGH,cAAc,CAACI,KAAf,CAAqB,GAArB,CAAnB;AAEA,SAAOD,UAAU,CAACE,GAAX,CAAe,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,KAAN,CAAY,GAAZ,EAAiBC,GAAjB,CAAqBE,MAArB,CAAJ;AAAA,GAApB,CAAP;AACD,CAPD;;;;AASA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,UAAD,EAAaC,KAAb,EAAuB;AACjD,MAAMC,IAAI,kBAAWD,KAAX,CAAV;AACA,SAAOD,UAAU,aAAMA,UAAN,cAAoBE,IAApB,IAA6BA,IAA9C;AACD,CAHD;;AAKA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAC,cAAc;AAAA,SACxCA,cAAc,CAACC,QAAf,CAAwB,GAAxB,KAAgCD,cAAc,CAACC,QAAf,CAAwB,GAAxB,CAAhC,GACID,cAAc,CAACZ,OAAf,CAAuB,YAAvB,EAAqC,UAAAc,KAAI;AAAA,WAAKA,KAAI,KAAK,GAAT,GAAe,GAAf,GAAqB,EAA1B;AAAA,GAAzC,EAAwEX,KAAxE,CAA8E,GAA9E,CADJ,GAEIS,cAHoC;AAAA,CAA1C;;AAKA,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACP,UAAD,EAAaQ,eAAb,EAAiC;AAC3D,MAAIC,gBAAgB,GAAG,EAAvB;AAEA,MAAMC,iBAAiB,GAAGF,eAAe,GACrCT,mBAAmB,CAACC,UAAD,EAAaQ,eAAb,CADkB,GAErCR,UAFJ;AAIA,MAAMW,gBAAgB,GAAGD,iBAAiB,IAAI,OAAOA,iBAAP,KAA6B,QAA3E;;AAEA,MAAIC,gBAAJ,EAAsB;AACpB,QAAMC,eAAe,GAAG,EAAxB;AAEA,QAAIC,cAAc,GAAGH,iBAAiB,CAACf,KAAlB,CAAwB,GAAxB,CAArB;AACAkB,IAAAA,cAAc,qBAAQA,cAAR,CAAd;AAEAC,IAAAA,MAAM,CAACC,IAAP,CAAYF,cAAZ,EAA4BG,OAA5B,CAAoC,UAAAC,GAAG,EAAI;AACzC,kCAAuCJ,cAAc,CAACI,GAAD,CAAd,CAAoBtB,KAApB,CAA0B,GAA1B,CAAvC;AAAA;AAAA,UAAOuB,YAAP;AAAA,UAAqBd,cAArB;;AAEA,UAAIc,YAAY,IAAId,cAApB,EAAoC;AAClCQ,QAAAA,eAAe,CAACM,YAAD,CAAf,GAAgCf,mBAAmB,CAACC,cAAD,CAAnD;AACD;AACF,KAND;AAOAK,IAAAA,gBAAgB,mCAAQA,gBAAR,GAA6BG,eAA7B,CAAhB;AACD;;AAED,SAAOH,gBAAP;AACD,CA1BD;;;;AA4BA,IAAMU,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,IAAD,EAAOC,uBAAP,EAAgCC,UAAhC,EAA4CC,MAA5C,EAAuD;AAC/E,MAAI,CAACzB,MAAM,CAAC0B,SAAP,CAAiBH,uBAAjB,CAAL,EAAgD,OAAO,EAAP;AAEhD,MAAMI,IAAI,GAAGH,UAAU,IAAII,OAAO,CAACC,GAAR,CAAYC,eAAvC;AACA,MAAMC,WAAW,GAAGR,uBAAuB,KAAK,CAAhD;;AACA,kBAAgB,2BAASD,IAAT,CAAhB;AAAA,MAAQU,GAAR,aAAQA,GAAR;;AACA,MAAIC,QAAQ,GAAGD,GAAG,CACfnC,KADY,CACN,GADM,EAEZqC,MAFY,CAELC,OAFK,EAGZrC,GAHY,CAGR,UAAAsC,OAAO;AAAA,WAAIA,OAAO,CAAC1C,OAAR,CAAgB,IAAhB,EAAsB,EAAtB,CAAJ;AAAA,GAHC,CAAf;AAIAuC,EAAAA,QAAQ,GAAGA,QAAQ,CAACI,KAAT,CAAe,CAAf,EAAkBN,WAAW,GAAGE,QAAQ,CAACK,MAAZ,GAAqBL,QAAQ,CAACK,MAAT,GAAkB,CAApE,EAAuEC,IAAvE,CAA4E,GAA5E,CAAX;AACAN,EAAAA,QAAQ,GAAGA,QAAQ,aAAMA,QAAN,SAAoBA,QAAvC;AACA,MAAMO,SAAS,GAAGf,MAAM,IAAIgB,qBAA5B;AAEA,mBAAUd,IAAV,cAAkBM,QAAlB,SAA6BO,SAA7B;AACD,CAfD;;;;AAiBA,IAAME,cAAc,GAAG,SAAjBA,cAAiB,CAACC,MAAD,EAASC,WAAT;AAAA,SACrBD,MAAM,IAAIC,WAAV,IAAyBA,WAAW,CAACN,MAArC,GACIM,WAAW,CAAC9C,GAAZ,CAAgB;AAAA,QAAG+C,KAAH,QAAGA,KAAH;AAAA,QAAUC,MAAV,QAAUA,MAAV;AAAA,WAAuB,CAACD,KAAD,EAAQC,MAAR,CAAvB;AAAA,GAAhB,CADJ,GAEI,IAHiB;AAAA,CAAvB;;AAKA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACJ,MAAD,EAASC,WAAT,EAAsBpD,KAAtB,EAAgC;AACvD,MAAIwD,WAAW,GAAGN,cAAc,CAACC,MAAD,EAASC,WAAT,CAAhC;AAEA,MAAI,CAACI,WAAD,IAAgBxD,KAApB,EAA2BwD,WAAW,GAAGzD,cAAc,CAACC,KAAD,CAA5B;AAE3B,SAAOwD,WAAP;AACD,CAND;;;;AAQA,IAAMC,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,SAAD,EAAgD;AAAA,MAApCC,KAAoC,uEAA5B,EAA4B;AAAA,MAAxBC,cAAwB,uEAAP,EAAO;;AAC/E,MAAIF,SAAS,IAAIC,KAAK,CAACD,SAAD,CAAlB,IAAiCC,KAAK,CAACD,SAAD,CAAL,CAAiB,CAAjB,CAArC,EAA0D;AACxD,QAAMG,IAAI,GAAGF,KAAK,CAACD,SAAD,CAAL,CAAiB,CAAjB,CAAb;AACA,WAAOI,cAAc,CAACD,IAAD,EAAOD,cAAP,CAArB;AACD;;AACD,SAAO,EAAP;AACD,CAND;;;;AAQA,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACZ,MAAD,EAASC,WAAT,EAAyB;AAChD,MAAIY,WAAW,GAAG,EAAlB;;AAEA,MAAIb,MAAM,IAAIC,WAAV,IAAyBA,WAAW,CAACN,MAAzC,EAAiD;AAC/C,QAAMmB,gBAAgB,GAAGb,WAAW,CAACc,MAAZ,CAAmB,UAACC,GAAD,SAA4C;AAAA,UAApCd,KAAoC,SAApCA,KAAoC;AAAA,UAA7BC,MAA6B,SAA7BA,MAA6B;AAAA,kCAArBc,SAAqB;AAAA,UAArBA,SAAqB,gCAAT,EAAS;AACtF,UAAMC,IAAI,GAAGhB,KAAK,IAAIC,MAAT,GAAkB,CAACD,KAAD,EAAQC,MAAR,CAAlB,GAAoC,IAAjD,CADsF,CAC/B;;AAEvD,UAAIc,SAAJ,EAAe;AACbA,QAAAA,SAAS,CAAC1C,OAAV,CAAkB,iBAAsD;AAAA,cAA5C4C,aAA4C,SAAnDjB,KAAmD;AAAA,cAArBkB,cAAqB,SAA7BjB,MAA6B;AACtE,cAAM3B,GAAG,aAAM2C,aAAa,IAAI,CAAvB,cAA4BC,cAAc,IAAI,CAA9C,CAAT;AACAJ,UAAAA,GAAG,CAACxC,GAAD,CAAH,GAAWwC,GAAG,CAACxC,GAAD,CAAH,IAAY,EAAvB;AACA,cAAI0C,IAAJ,EAAUF,GAAG,CAACxC,GAAD,CAAH,CAAS6C,IAAT,CAAcH,IAAd;AACX,SAJD;AAKD;;AACD,aAAOF,GAAP;AACD,KAXwB,EAWtB,EAXsB,CAAzB;AAaAH,IAAAA,WAAW,GAAGxC,MAAM,CAACC,IAAP,CAAYwC,gBAAZ,EAA8B3D,GAA9B,CAAkC,UAAAmE,kBAAkB,EAAI;AACpE,kCAAwCA,kBAAkB,CAACpE,KAAnB,CAAyB,GAAzB,CAAxC;AAAA;AAAA,UAAOiE,aAAP;AAAA,UAAsBC,cAAtB;;AACA,aAAO;AACLG,QAAAA,QAAQ,EAAE,CAAClE,MAAM,CAAC8D,aAAD,CAAP,EAAwB9D,MAAM,CAAC+D,cAAD,CAA9B,CADL;AAELvE,QAAAA,KAAK,EAAEiE,gBAAgB,CAACQ,kBAAD;AAFlB,OAAP;AAID,KANa,CAAd;AAOD;;AAED,SAAOT,WAAP;AACD,CA3BD;;;;AA6BA,IAAMW,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAvB,WAAW,EAAI;AACxC,MAAIwB,KAAK,CAACC,OAAN,CAAczB,WAAd,KAA8BA,WAAW,CAACN,MAAZ,GAAqB,CAAvD,EAA0D;AACxD,WAAOgC,IAAI,CAACC,GAAL,OAAAD,IAAI,sCAAQ1B,WAAW,CAAC9C,GAAZ,CAAgB,UAAA0E,CAAC;AAAA,aAAIA,CAAC,CAAC1B,MAAN;AAAA,KAAjB,CAAR,EAAX;AACD;;AACD,SAAO2B,4BAAP;AACD,CALD;;;;AAOA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAAA9B,WAAW,EAAI;AACxC,MAAIwB,KAAK,CAACC,OAAN,CAAczB,WAAd,KAA8BA,WAAW,CAACN,MAAZ,GAAqB,CAAvD,EAA0D;AACxD,WAAOgC,IAAI,CAACK,GAAL,OAAAL,IAAI,sCAAQ1B,WAAW,CAAC9C,GAAZ,CAAgB,UAAA0E,CAAC;AAAA,aAAIA,CAAC,CAAC1B,MAAN;AAAA,KAAjB,CAAR,EAAX;AACD;;AACD,SAAO8B,4BAAP;AACD,CALD;;;;AAOA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,SAAS,EAAI;AAClC,MAAI,CAACA,SAAD,IAAc,CAACA,SAAS,CAACxC,MAA7B,EAAqC,OAAO,EAAP;AACrC,MAAMyC,UAAU,GAAG,EAAnB;AACA,MAAMC,WAAW,GAAG,EAApB;AACAF,EAAAA,SAAS,CAAC5D,OAAV,CAAkB,iBAA6B;AAAA,QAA1B+D,mBAA0B,SAA1BA,mBAA0B;;AAC7C,+DAAkBA,mBAAlB;AAAA,QAAOC,OAAP;;AACA,QAAI,CAACA,OAAD,IAAYA,OAAO,KAAK,IAA5B,EAAkC;;AAClC,QAAIA,OAAO,CAACC,OAAR,CAAgB,GAAhB,MAAyB,CAAC,CAA9B,EAAiC;AAC/B,2BAA+BD,OAAO,CAACrF,KAAR,CAAc,GAAd,CAA/B;AAAA;AAAA,UAAOuF,QAAP;AAAA,UAAiBC,UAAjB;;AACA,UAAIL,WAAW,CAACI,QAAD,CAAf,EAA2BJ,WAAW,CAACI,QAAD,CAAX,CAAsBpB,IAAtB,CAA2BqB,UAA3B,EAA3B,KACKL,WAAW,CAACI,QAAD,CAAX,GAAwB,CAACC,UAAD,CAAxB;AACN,KAJD,MAION,UAAU,CAACf,IAAX,CAAgBkB,OAAhB;AACR,GARD;AAUAlE,EAAAA,MAAM,CAACC,IAAP,CAAY+D,WAAZ,EAAyB9D,OAAzB,CAAiC,UAAAoE,SAAS,EAAI;AAC5C,QAAMC,MAAM,GAAGP,WAAW,CAACM,SAAD,CAA1B;AACAP,IAAAA,UAAU,CAACf,IAAX,CAAgBsB,SAAhB;AACAP,IAAAA,UAAU,CAACf,IAAX,CAAgB,GAAhB;AACAuB,IAAAA,MAAM,CAACrE,OAAP,CAAe,UAAAsE,IAAI;AAAA,aAAIT,UAAU,CAACf,IAAX,CAAgBwB,IAAhB,CAAJ;AAAA,KAAnB;AACAT,IAAAA,UAAU,CAACf,IAAX,CAAgB,GAAhB;AACD,GAND;AAQA,SAAOe,UAAU,CAACxC,IAAX,CAAgB,GAAhB,CAAP;AACD,CAvBD;;;;AAyBA,IAAMe,cAAc,GAAG,SAAjBA,cAAiB,CAACD,IAAD,EAAOF,KAAP,EAAiB;AACtC,MAAI,CAACE,IAAD,IAAS,CAACF,KAAK,CAACb,MAApB,EAA4B,OAAO,EAAP;AAC5B,MAAMmD,aAAa,GAAG,EAAtB;AAEAtC,EAAAA,KAAK,CAACjC,OAAN,CAAc,iBAAoC;AAAA,QAAjC+D,mBAAiC,SAAjCA,mBAAiC;AAAA,QAAZS,KAAY,SAAZA,KAAY;;AAChD,gEAAcT,mBAAd;AAAA,QAAO9D,GAAP;;AACA,QAAMwE,SAAS,GAAGxE,GAAG,CAACtB,KAAJ,CAAU,GAAV,CAAlB;AACA,QAAM+F,KAAK,GAAGC,cAAc,CAACF,SAAD,EAAYtC,IAAZ,CAA5B;AACA,QAAMyC,UAAU,GAAGJ,KAAK,IAAIvE,GAA5B;AAEA,QAAIyE,KAAJ,EAAWH,aAAa,CAACK,UAAD,CAAb,GAA4BF,KAA5B;AACZ,GAPD;AAQA,SAAOH,aAAP;AACD,CAbD;;;;AAeA,IAAMM,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,GAAD,EAAM7E,GAAN;AAAA,SACvB6E,GAAG,CACAlG,GADH,CACO,UAAAmG,GAAG;AAAA,WAAIA,GAAG,CAAC9E,GAAD,CAAP;AAAA,GADV,EAEGe,MAFH,CAEUC,OAFV,EAGGI,IAHH,CAGQ,IAHR,CADuB;AAAA,CAAzB;;AAMA,IAAMsD,cAAc,GAAG,SAAjBA,cAAiB,CAAC5E,IAAD,EAAOiF,MAAP,EAAkB;AACvC,MAAM/E,GAAG,GAAGF,IAAI,CAACkF,KAAL,EAAZ;AACA,MAAMC,WAAW,GAAGhC,KAAK,CAACC,OAAN,CAAc6B,MAAd,IAAwBH,gBAAgB,CAACG,MAAD,EAAS/E,GAAT,CAAxC,GAAwD+E,MAAM,CAAC/E,GAAD,CAAlF;AACA,MAAI,CAACiF,WAAL,EAAkB,OAAO,IAAP;AAClB,SAAOnF,IAAI,CAACqB,MAAL,GAAcuD,cAAc,CAAC5E,IAAD,EAAOmF,WAAP,CAA5B,GAAkDA,WAAzD;AACD,CALD","sourcesContent":["import { parseUrl } from 'query-string';\nimport { END_ADUNIT, MAX_BANNER_HEIGHT, MIN_BANNER_HEIGHT } from '../../constants';\n\nconst getParsedSizes = (sizes = '') => {\n if (typeof sizes !== 'string') return [];\n\n const sanitizedSizes = sizes.replace(/\\s+/, '').toLowerCase();\n const sizeGroups = sanitizedSizes.split(',');\n\n return sizeGroups.map(group => group.split('x').map(Number));\n};\n\nconst addPosnToTargetings = (targetings, index) => {\n const posn = `posn=${index}`;\n return targetings ? `${targetings},${posn}` : posn;\n};\n\nconst buildTargetingValue = valueTargeting =>\n valueTargeting.includes('[') && valueTargeting.includes(']')\n ? valueTargeting.replace(/\\;|\\[|\\]/gm, char => (char === ';' ? ',' : '')).split(',')\n : valueTargeting;\n\nconst setCustomTargetings = (targetings, cardBannerIndex) => {\n let bannerTargetings = {};\n\n const updatedTargetings = cardBannerIndex\n ? addPosnToTargetings(targetings, cardBannerIndex)\n : targetings;\n\n const isValidTargeting = updatedTargetings && typeof updatedTargetings === 'string';\n\n if (isValidTargeting) {\n const customTargeting = {};\n\n let splitTargeting = updatedTargetings.split(',');\n splitTargeting = { ...splitTargeting };\n\n Object.keys(splitTargeting).forEach(key => {\n const [keyTargeting, valueTargeting] = splitTargeting[key].split('=');\n\n if (keyTargeting && valueTargeting) {\n customTargeting[keyTargeting] = buildTargetingValue(valueTargeting);\n }\n });\n bannerTargetings = { ...bannerTargetings, ...customTargeting };\n }\n\n return bannerTargetings;\n};\n\nconst buildParsedAdunit = (path, countContentHierarchies, baseAdunit, adunit) => {\n if (!Number.isInteger(countContentHierarchies)) return '';\n\n const base = baseAdunit || process.env.DFP_BASE_ADUNIT;\n const hasChildren = countContentHierarchies !== 0;\n const { url } = parseUrl(path);\n let urlParts = url\n .split('/')\n .filter(Boolean)\n .map(urlPart => urlPart.replace(/-/g, ''));\n urlParts = urlParts.slice(0, hasChildren ? urlParts.length : urlParts.length - 1).join('/');\n urlParts = urlParts ? `${urlParts}/` : urlParts;\n const endAdunit = adunit || END_ADUNIT;\n\n return `${base}/${urlParts}${endAdunit}`;\n};\n\nconst getBannerSizes = (sizeId, bannerSizes) =>\n sizeId && bannerSizes && bannerSizes.length\n ? bannerSizes.map(({ width, height }) => [width, height])\n : null;\n\nconst buildBannerSizes = (sizeId, bannerSizes, sizes) => {\n let parsedSizes = getBannerSizes(sizeId, bannerSizes);\n\n if (!parsedSizes && sizes) parsedSizes = getParsedSizes(sizes);\n\n return parsedSizes;\n};\n\nconst buildContextualTargeting = (actionKey, props = {}, propsToDisplay = []) => {\n if (actionKey && props[actionKey] && props[actionKey][0]) {\n const data = props[actionKey][0];\n return buildPropsData(data, propsToDisplay);\n }\n return {};\n};\n\nconst buildSizeMapping = (sizeId, bannerSizes) => {\n let sizeMapping = [];\n\n if (sizeId && bannerSizes && bannerSizes.length) {\n const groupedViewports = bannerSizes.reduce((acc, { width, height, viewports = [] }) => {\n const size = width && height ? [width, height] : null; // if one dimension is falsey then it shouldn't display\n\n if (viewports) {\n viewports.forEach(({ width: viewportWidth, height: viewportHeight }) => {\n const key = `${viewportWidth || 0}x${viewportHeight || 0}`;\n acc[key] = acc[key] || [];\n if (size) acc[key].push(size);\n });\n }\n return acc;\n }, {});\n\n sizeMapping = Object.keys(groupedViewports).map(keyGroupedViewport => {\n const [viewportWidth, viewportHeight] = keyGroupedViewport.split('x');\n return {\n viewport: [Number(viewportWidth), Number(viewportHeight)],\n sizes: groupedViewports[keyGroupedViewport]\n };\n });\n }\n\n return sizeMapping;\n};\n\nconst getMaxBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.max(...bannerSizes.map(o => o.height));\n }\n return MAX_BANNER_HEIGHT;\n};\n\nconst getMinBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.min(...bannerSizes.map(o => o.height));\n }\n return MIN_BANNER_HEIGHT;\n};\n\nconst buildUserQuery = userProps => {\n if (!userProps || !userProps.length) return '';\n const basicProps = [];\n const nestedProps = {};\n userProps.forEach(({ propertiesToDisplay }) => {\n const [propKey] = propertiesToDisplay;\n if (!propKey || propKey === 'id') return;\n if (propKey.indexOf('.') !== -1) {\n const [baseProp, nestedProp] = propKey.split('.');\n if (nestedProps[baseProp]) nestedProps[baseProp].push(nestedProp);\n else nestedProps[baseProp] = [nestedProp];\n } else basicProps.push(propKey);\n });\n\n Object.keys(nestedProps).forEach(nestedKey => {\n const nested = nestedProps[nestedKey];\n basicProps.push(nestedKey);\n basicProps.push('{');\n nested.forEach(prop => basicProps.push(prop));\n basicProps.push('}');\n });\n\n return basicProps.join(' ');\n};\n\nconst buildPropsData = (data, props) => {\n if (!data || !props.length) return {};\n const propsWithData = {};\n\n props.forEach(({ propertiesToDisplay, label }) => {\n const [key] = propertiesToDisplay;\n const parsedKey = key.split('.');\n const value = getNestedValue(parsedKey, data);\n const labelToUse = label || key;\n\n if (value) propsWithData[labelToUse] = value;\n });\n return propsWithData;\n};\n\nconst parseArrayValues = (arr, key) =>\n arr\n .map(obj => obj[key])\n .filter(Boolean)\n .join(', ');\n\nconst getNestedValue = (keys, object) => {\n const key = keys.shift();\n const nestedValue = Array.isArray(object) ? parseArrayValues(object, key) : object[key];\n if (!nestedValue) return null;\n return keys.length ? getNestedValue(keys, nestedValue) : nestedValue;\n};\n\nexport {\n getParsedSizes,\n setCustomTargetings,\n buildParsedAdunit,\n buildBannerSizes,\n buildContextualTargeting,\n buildSizeMapping,\n getMaxBannerHeight,\n getMinBannerHeight,\n buildPropsData,\n buildUserQuery\n};\n"],"file":"helpers.js"}
@@ -81,6 +81,7 @@ var BlazeLink = function BlazeLink(_ref) {
81
81
  name: name,
82
82
  as: as
83
83
  }, gtmProps));
84
+ if (!href) return children;
84
85
  return /*#__PURE__*/_react["default"].createElement(_nextjsComponents.Link, (0, _extends2["default"])({
85
86
  href: href,
86
87
  shallow: shallow,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/BlazeLink.js"],"names":["BlazeLink","children","className","name","href","as","shallow","scroll","gtmId","onClick","MainContext","hasGTM","gtmProps","linkExtraProps","propTypes","PropTypes","oneOfType","arrayOf","node","string","title","bool","func","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY,OAA8E;AAAA,MAA3EC,QAA2E,QAA3EA,QAA2E;AAAA,MAAjEC,SAAiE,QAAjEA,SAAiE;AAAA,MAAtDC,IAAsD,QAAtDA,IAAsD;AAAA,MAAhDC,IAAgD,QAAhDA,IAAgD;AAAA,MAA1CC,EAA0C,QAA1CA,EAA0C;AAAA,MAAtCC,OAAsC,QAAtCA,OAAsC;AAAA,MAA7BC,MAA6B,QAA7BA,MAA6B;AAAA,MAArBC,KAAqB,QAArBA,KAAqB;AAAA,MAAdC,OAAc,QAAdA,OAAc;;AAC9F,oBAAmB,uBAAWC,6BAAX,CAAnB;AAAA,MAAQC,MAAR,eAAQA,MAAR;;AACA,MAAMC,QAAQ,GAAGD,MAAM,IAAI,CAAC,CAACH,KAAZ,GAAoB;AAAEA,IAAAA,KAAK,EAALA;AAAF,GAApB,GAAgC,EAAjD;AACA,MAAMK,cAAc,GAAG;AAAsBX,IAAAA,SAAS,EAATA,SAAtB;AAAiCC,IAAAA,IAAI,EAAJA,IAAjC;AAAuCE,IAAAA,EAAE,EAAFA;AAAvC,KAA8CO,QAA9C,EAAvB;AAEA,sBACE,gCAAC,sBAAD;AAAM,IAAA,IAAI,EAAER,IAAZ;AAAkB,IAAA,OAAO,EAAEE,OAA3B;AAAoC,IAAA,MAAM,EAAEC,MAA5C;AAAoD,IAAA,OAAO,EAAEE;AAA7D,KAA0EI,cAA1E,GACGZ,QADH,CADF;AAKD,CAVD;;AAYAD,SAAS,CAACc,SAAV,GAAsB;AACpBb,EAAAA,QAAQ,EAAEc,sBAAUC,SAAV,CAAoB,CAACD,sBAAUE,OAAV,CAAkBF,sBAAUG,IAA5B,CAAD,EAAoCH,sBAAUG,IAA9C,CAApB,CADU;AAEpBd,EAAAA,IAAI,EAAEW,sBAAUI,MAFI;AAGpBd,EAAAA,EAAE,EAAEU,sBAAUI,MAHM;AAIpBhB,EAAAA,IAAI,EAAEY,sBAAUI,MAJI;AAKpBC,EAAAA,KAAK,EAAEL,sBAAUI,MALG;AAMpBjB,EAAAA,SAAS,EAAEa,sBAAUI,MAND;AAOpBb,EAAAA,OAAO,EAAES,sBAAUM,IAPC;AAQpBd,EAAAA,MAAM,EAAEQ,sBAAUM,IARE;AASpBb,EAAAA,KAAK,EAAEO,sBAAUI,MATG;AAUpBV,EAAAA,OAAO,EAAEM,sBAAUO;AAVC,CAAtB;AAaAtB,SAAS,CAACuB,YAAV,GAAyB;AACvBtB,EAAAA,QAAQ,EAAE,EADa;AAEvBI,EAAAA,EAAE,EAAE,EAFmB;AAGvBD,EAAAA,IAAI,EAAE,GAHiB;AAIvBD,EAAAA,IAAI,EAAE,EAJiB;AAKvBiB,EAAAA,KAAK,EAAE,EALgB;AAMvBlB,EAAAA,SAAS,EAAE,EANY;AAOvBI,EAAAA,OAAO,EAAE,KAPc;AAQvBC,EAAAA,MAAM,EAAE,IARe;AASvBC,EAAAA,KAAK,EAAE,EATgB;AAUvBC,EAAAA,OAAO,EAAE;AAVc,CAAzB;eAaeT,S","sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { Link, MainContext } from '@blaze-cms/nextjs-components';\nimport buildLinkExtraProps from '../helpers/build-link-extra-props';\n\nconst BlazeLink = ({ children, className, name, href, as, shallow, scroll, gtmId, onClick }) => {\n const { hasGTM } = useContext(MainContext);\n const gtmProps = hasGTM && !!gtmId ? { gtmId } : {};\n const linkExtraProps = buildLinkExtraProps({ className, name, as, ...gtmProps });\n\n return (\n <Link href={href} shallow={shallow} scroll={scroll} onClick={onClick} {...linkExtraProps}>\n {children}\n </Link>\n );\n};\n\nBlazeLink.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n href: PropTypes.string,\n as: PropTypes.string,\n name: PropTypes.string,\n title: PropTypes.string,\n className: PropTypes.string,\n shallow: PropTypes.bool,\n scroll: PropTypes.bool,\n gtmId: PropTypes.string,\n onClick: PropTypes.func\n};\n\nBlazeLink.defaultProps = {\n children: [],\n as: '',\n href: '/',\n name: '',\n title: '',\n className: '',\n shallow: false,\n scroll: null,\n gtmId: '',\n onClick: null\n};\n\nexport default BlazeLink;\n"],"file":"BlazeLink.js"}
1
+ {"version":3,"sources":["../../src/components/BlazeLink.js"],"names":["BlazeLink","children","className","name","href","as","shallow","scroll","gtmId","onClick","MainContext","hasGTM","gtmProps","linkExtraProps","propTypes","PropTypes","oneOfType","arrayOf","node","string","title","bool","func","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY,OAA8E;AAAA,MAA3EC,QAA2E,QAA3EA,QAA2E;AAAA,MAAjEC,SAAiE,QAAjEA,SAAiE;AAAA,MAAtDC,IAAsD,QAAtDA,IAAsD;AAAA,MAAhDC,IAAgD,QAAhDA,IAAgD;AAAA,MAA1CC,EAA0C,QAA1CA,EAA0C;AAAA,MAAtCC,OAAsC,QAAtCA,OAAsC;AAAA,MAA7BC,MAA6B,QAA7BA,MAA6B;AAAA,MAArBC,KAAqB,QAArBA,KAAqB;AAAA,MAAdC,OAAc,QAAdA,OAAc;;AAC9F,oBAAmB,uBAAWC,6BAAX,CAAnB;AAAA,MAAQC,MAAR,eAAQA,MAAR;;AACA,MAAMC,QAAQ,GAAGD,MAAM,IAAI,CAAC,CAACH,KAAZ,GAAoB;AAAEA,IAAAA,KAAK,EAALA;AAAF,GAApB,GAAgC,EAAjD;AACA,MAAMK,cAAc,GAAG;AAAsBX,IAAAA,SAAS,EAATA,SAAtB;AAAiCC,IAAAA,IAAI,EAAJA,IAAjC;AAAuCE,IAAAA,EAAE,EAAFA;AAAvC,KAA8CO,QAA9C,EAAvB;AACA,MAAI,CAACR,IAAL,EAAW,OAAOH,QAAP;AAEX,sBACE,gCAAC,sBAAD;AAAM,IAAA,IAAI,EAAEG,IAAZ;AAAkB,IAAA,OAAO,EAAEE,OAA3B;AAAoC,IAAA,MAAM,EAAEC,MAA5C;AAAoD,IAAA,OAAO,EAAEE;AAA7D,KAA0EI,cAA1E,GACGZ,QADH,CADF;AAKD,CAXD;;AAaAD,SAAS,CAACc,SAAV,GAAsB;AACpBb,EAAAA,QAAQ,EAAEc,sBAAUC,SAAV,CAAoB,CAACD,sBAAUE,OAAV,CAAkBF,sBAAUG,IAA5B,CAAD,EAAoCH,sBAAUG,IAA9C,CAApB,CADU;AAEpBd,EAAAA,IAAI,EAAEW,sBAAUI,MAFI;AAGpBd,EAAAA,EAAE,EAAEU,sBAAUI,MAHM;AAIpBhB,EAAAA,IAAI,EAAEY,sBAAUI,MAJI;AAKpBC,EAAAA,KAAK,EAAEL,sBAAUI,MALG;AAMpBjB,EAAAA,SAAS,EAAEa,sBAAUI,MAND;AAOpBb,EAAAA,OAAO,EAAES,sBAAUM,IAPC;AAQpBd,EAAAA,MAAM,EAAEQ,sBAAUM,IARE;AASpBb,EAAAA,KAAK,EAAEO,sBAAUI,MATG;AAUpBV,EAAAA,OAAO,EAAEM,sBAAUO;AAVC,CAAtB;AAaAtB,SAAS,CAACuB,YAAV,GAAyB;AACvBtB,EAAAA,QAAQ,EAAE,EADa;AAEvBI,EAAAA,EAAE,EAAE,EAFmB;AAGvBD,EAAAA,IAAI,EAAE,GAHiB;AAIvBD,EAAAA,IAAI,EAAE,EAJiB;AAKvBiB,EAAAA,KAAK,EAAE,EALgB;AAMvBlB,EAAAA,SAAS,EAAE,EANY;AAOvBI,EAAAA,OAAO,EAAE,KAPc;AAQvBC,EAAAA,MAAM,EAAE,IARe;AASvBC,EAAAA,KAAK,EAAE,EATgB;AAUvBC,EAAAA,OAAO,EAAE;AAVc,CAAzB;eAaeT,S","sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { Link, MainContext } from '@blaze-cms/nextjs-components';\nimport buildLinkExtraProps from '../helpers/build-link-extra-props';\n\nconst BlazeLink = ({ children, className, name, href, as, shallow, scroll, gtmId, onClick }) => {\n const { hasGTM } = useContext(MainContext);\n const gtmProps = hasGTM && !!gtmId ? { gtmId } : {};\n const linkExtraProps = buildLinkExtraProps({ className, name, as, ...gtmProps });\n if (!href) return children;\n\n return (\n <Link href={href} shallow={shallow} scroll={scroll} onClick={onClick} {...linkExtraProps}>\n {children}\n </Link>\n );\n};\n\nBlazeLink.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n href: PropTypes.string,\n as: PropTypes.string,\n name: PropTypes.string,\n title: PropTypes.string,\n className: PropTypes.string,\n shallow: PropTypes.bool,\n scroll: PropTypes.bool,\n gtmId: PropTypes.string,\n onClick: PropTypes.func\n};\n\nBlazeLink.defaultProps = {\n children: [],\n as: '',\n href: '/',\n name: '',\n title: '',\n className: '',\n shallow: false,\n scroll: null,\n gtmId: '',\n onClick: null\n};\n\nexport default BlazeLink;\n"],"file":"BlazeLink.js"}
@@ -145,7 +145,7 @@ var Card = function Card(_ref) {
145
145
  className: "badge badge--label"
146
146
  }, label)), displayTitle && /*#__PURE__*/_react["default"].createElement("h2", {
147
147
  className: (0, _helpers.getModifiers)('card__title', modifiers)
148
- }, url && /*#__PURE__*/_react["default"].createElement(_BlazeLink["default"], {
148
+ }, /*#__PURE__*/_react["default"].createElement(_BlazeLink["default"], {
149
149
  title: linkTitle,
150
150
  gtmId: gtmId,
151
151
  href: url,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Card/Card.js"],"names":["Card","id","image","name","url","entity","entityProps","alternativePreHeader","alternativeHeadline","category","modifier","propsToDisplay","propsToDisplayModifiers","gtmId","style","priority","cardChildren","gtmChildren","displayCategory","displayThumbnail","displayTitle","gridModifier","otherProps","getImageDefinedProps","imageSrc","shouldDisplayThumbnail","altText","modifiers","getInitialModifiers","getCategoryDefinedProps","publishedListingPage","preHeader","label","headline","linkTitle","dynamicSizeKey","CARD_STRING","shouldUseClickWrapper","wrapperProps","Wrapper","ClickWrapper","Fragment","classNameWithModifiers","length","map","prop","i","dynamicKey","propModifier","propTypes","PropTypes","string","isRequired","shape","data","object","array","bool","oneOfType","arrayOf","node","defaultProps","hasAlternativePreHeader","sponsored","featured","push"],"mappings":"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","sourcesContent":["import React, { Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport BlazeLink from '../BlazeLink';\nimport ClickWrapper from '../ClickWrapper';\nimport {\n getModifiers,\n renderChildren,\n updateChildrensParent,\n getClickWrapperOptions\n} from '../../helpers';\nimport LazyImage from '../LazyImage';\nimport { getPublishedListingUrl, useDynamicSizeKey } from './helpers';\nimport { CARD_STRING } from './constants';\n\nconst Card = ({\n id,\n image,\n name,\n url,\n entity,\n entityProps,\n alternativePreHeader,\n alternativeHeadline,\n category,\n modifier,\n propsToDisplay,\n propsToDisplayModifiers,\n gtmId,\n style,\n priority,\n cardChildren,\n gtmChildren,\n displayCategory,\n displayThumbnail,\n displayTitle,\n gridModifier,\n ...otherProps\n}) => {\n updateChildrensParent(cardChildren, id, entity);\n const { imageSrc, shouldDisplayThumbnail, altText } = getImageDefinedProps({\n image,\n displayThumbnail\n });\n\n const modifiers = getInitialModifiers({ modifier, style, otherProps });\n\n const { publishedListingPage, preHeader, label, headline } = getCategoryDefinedProps({\n alternativePreHeader,\n category,\n entity,\n alternativeHeadline,\n displayCategory,\n name\n });\n const linkTitle = name;\n const dynamicSizeKey = useDynamicSizeKey(CARD_STRING, { style, gridModifier, modifier });\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(\n gtmChildren,\n entityProps,\n id\n );\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n const classNameWithModifiers = getModifiers(CARD_STRING, modifiers);\n\n return (\n <Wrapper {...wrapperProps}>\n <div className={classNameWithModifiers}>\n {shouldDisplayThumbnail && (\n <div className={getModifiers('card__image', modifiers)}>\n <BlazeLink gtmId={gtmId} href={url} className=\"card__image-link\" scroll>\n <LazyImage\n src={imageSrc}\n alt={altText}\n sizeKey={dynamicSizeKey}\n priority={priority}\n />\n </BlazeLink>\n </div>\n )}\n <div className={getModifiers('card__content-wrapper', modifiers)}>\n <div className={getModifiers('card__content', modifiers)}>\n {displayCategory &&\n (publishedListingPage ? (\n <BlazeLink\n gtmId={gtmId}\n href={publishedListingPage}\n className=\"badge badge--label\"\n scroll>\n {preHeader.name}\n </BlazeLink>\n ) : (\n <div className=\"badge badge--label\">{label}</div>\n ))}\n {displayTitle && (\n <h2 className={getModifiers('card__title', modifiers)}>\n {url && (\n <BlazeLink title={linkTitle} gtmId={gtmId} href={url} scroll>\n {headline}\n </BlazeLink>\n )}\n </h2>\n )}\n {!!propsToDisplay.length && (\n <div className={getModifiers('card__details', modifiers)}>\n {propsToDisplay.map((prop, i) => {\n if (!prop) return null;\n const dynamicKey = `${id}${i}`;\n const propModifier = propsToDisplayModifiers[i] || '';\n\n return (\n <span key={dynamicKey} className={propModifier}>\n {prop}\n </span>\n );\n })}\n </div>\n )}\n </div>\n {!!cardChildren && (\n <div className=\"card__child-content\">{renderChildren(cardChildren)}</div>\n )}\n </div>\n </div>\n </Wrapper>\n );\n};\n\nCard.propTypes = {\n id: PropTypes.string.isRequired,\n image: PropTypes.shape({\n url: PropTypes.string,\n data: PropTypes.object\n }),\n style: PropTypes.string,\n propsToDisplay: PropTypes.array,\n propsToDisplayModifiers: PropTypes.array,\n url: PropTypes.string,\n name: PropTypes.string.isRequired,\n entity: PropTypes.string.isRequired,\n entityProps: PropTypes.object,\n gtmId: PropTypes.string,\n alternativePreHeader: PropTypes.shape({\n name: PropTypes.string\n }),\n alternativeHeadline: PropTypes.string,\n category: PropTypes.shape({\n name: PropTypes.string,\n publishedListingPage: PropTypes.shape({\n url: PropTypes.string\n })\n }),\n modifier: PropTypes.string,\n displayCategory: PropTypes.bool.isRequired,\n displayThumbnail: PropTypes.bool.isRequired,\n displayTitle: PropTypes.bool.isRequired,\n cardChildren: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n gtmChildren: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n gridModifier: PropTypes.string,\n priority: PropTypes.bool\n};\n\nCard.defaultProps = {\n entityProps: {},\n image: {\n url: null,\n data: {}\n },\n gtmId: '',\n style: 'portrait',\n propsToDisplay: [],\n propsToDisplayModifiers: [],\n url: '',\n alternativePreHeader: null,\n alternativeHeadline: '',\n category: null,\n modifier: '',\n cardChildren: [],\n gtmChildren: [],\n gridModifier: '',\n priority: false\n};\n\nconst getCategoryDefinedProps = ({\n alternativePreHeader,\n category,\n entity,\n alternativeHeadline,\n displayCategory,\n name\n}) => {\n const hasAlternativePreHeader = alternativePreHeader && alternativePreHeader.name;\n const preHeader =\n alternativeHeadline && hasAlternativePreHeader ? alternativePreHeader : category;\n const publishedListingPage = getPublishedListingUrl(preHeader);\n const label = preHeader ? preHeader.name : entity;\n const headline =\n !displayCategory || !hasAlternativePreHeader ? name : alternativeHeadline || name;\n return { publishedListingPage, preHeader, label, headline };\n};\n\nconst getImageDefinedProps = ({ image, displayThumbnail }) => {\n const { url: imageSrc, data } = image || {};\n const shouldDisplayThumbnail = displayThumbnail && imageSrc;\n const altText = (data && data.altText) || '';\n return { imageSrc, shouldDisplayThumbnail, altText };\n};\n\nconst getInitialModifiers = ({ modifier, style, otherProps }) => {\n const modifiers = [modifier, style];\n const { sponsored, featured } = otherProps;\n if (sponsored) modifiers.push('sponsored');\n if (featured) modifiers.push('featured');\n\n return modifiers;\n};\n\nexport default Card;\n"],"file":"Card.js"}
1
+ {"version":3,"sources":["../../../src/components/Card/Card.js"],"names":["Card","id","image","name","url","entity","entityProps","alternativePreHeader","alternativeHeadline","category","modifier","propsToDisplay","propsToDisplayModifiers","gtmId","style","priority","cardChildren","gtmChildren","displayCategory","displayThumbnail","displayTitle","gridModifier","otherProps","getImageDefinedProps","imageSrc","shouldDisplayThumbnail","altText","modifiers","getInitialModifiers","getCategoryDefinedProps","publishedListingPage","preHeader","label","headline","linkTitle","dynamicSizeKey","CARD_STRING","shouldUseClickWrapper","wrapperProps","Wrapper","ClickWrapper","Fragment","classNameWithModifiers","length","map","prop","i","dynamicKey","propModifier","propTypes","PropTypes","string","isRequired","shape","data","object","array","bool","oneOfType","arrayOf","node","defaultProps","hasAlternativePreHeader","sponsored","featured","push"],"mappings":"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","sourcesContent":["import React, { Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport BlazeLink from '../BlazeLink';\nimport ClickWrapper from '../ClickWrapper';\nimport {\n getModifiers,\n renderChildren,\n updateChildrensParent,\n getClickWrapperOptions\n} from '../../helpers';\nimport LazyImage from '../LazyImage';\nimport { getPublishedListingUrl, useDynamicSizeKey } from './helpers';\nimport { CARD_STRING } from './constants';\n\nconst Card = ({\n id,\n image,\n name,\n url,\n entity,\n entityProps,\n alternativePreHeader,\n alternativeHeadline,\n category,\n modifier,\n propsToDisplay,\n propsToDisplayModifiers,\n gtmId,\n style,\n priority,\n cardChildren,\n gtmChildren,\n displayCategory,\n displayThumbnail,\n displayTitle,\n gridModifier,\n ...otherProps\n}) => {\n updateChildrensParent(cardChildren, id, entity);\n const { imageSrc, shouldDisplayThumbnail, altText } = getImageDefinedProps({\n image,\n displayThumbnail\n });\n\n const modifiers = getInitialModifiers({ modifier, style, otherProps });\n\n const { publishedListingPage, preHeader, label, headline } = getCategoryDefinedProps({\n alternativePreHeader,\n category,\n entity,\n alternativeHeadline,\n displayCategory,\n name\n });\n const linkTitle = name;\n const dynamicSizeKey = useDynamicSizeKey(CARD_STRING, { style, gridModifier, modifier });\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(\n gtmChildren,\n entityProps,\n id\n );\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n const classNameWithModifiers = getModifiers(CARD_STRING, modifiers);\n\n return (\n <Wrapper {...wrapperProps}>\n <div className={classNameWithModifiers}>\n {shouldDisplayThumbnail && (\n <div className={getModifiers('card__image', modifiers)}>\n <BlazeLink gtmId={gtmId} href={url} className=\"card__image-link\" scroll>\n <LazyImage\n src={imageSrc}\n alt={altText}\n sizeKey={dynamicSizeKey}\n priority={priority}\n />\n </BlazeLink>\n </div>\n )}\n <div className={getModifiers('card__content-wrapper', modifiers)}>\n <div className={getModifiers('card__content', modifiers)}>\n {displayCategory &&\n (publishedListingPage ? (\n <BlazeLink\n gtmId={gtmId}\n href={publishedListingPage}\n className=\"badge badge--label\"\n scroll>\n {preHeader.name}\n </BlazeLink>\n ) : (\n <div className=\"badge badge--label\">{label}</div>\n ))}\n {displayTitle && (\n <h2 className={getModifiers('card__title', modifiers)}>\n <BlazeLink title={linkTitle} gtmId={gtmId} href={url} scroll>\n {headline}\n </BlazeLink>\n </h2>\n )}\n {!!propsToDisplay.length && (\n <div className={getModifiers('card__details', modifiers)}>\n {propsToDisplay.map((prop, i) => {\n if (!prop) return null;\n const dynamicKey = `${id}${i}`;\n const propModifier = propsToDisplayModifiers[i] || '';\n\n return (\n <span key={dynamicKey} className={propModifier}>\n {prop}\n </span>\n );\n })}\n </div>\n )}\n </div>\n {!!cardChildren && (\n <div className=\"card__child-content\">{renderChildren(cardChildren)}</div>\n )}\n </div>\n </div>\n </Wrapper>\n );\n};\n\nCard.propTypes = {\n id: PropTypes.string.isRequired,\n image: PropTypes.shape({\n url: PropTypes.string,\n data: PropTypes.object\n }),\n style: PropTypes.string,\n propsToDisplay: PropTypes.array,\n propsToDisplayModifiers: PropTypes.array,\n url: PropTypes.string,\n name: PropTypes.string.isRequired,\n entity: PropTypes.string.isRequired,\n entityProps: PropTypes.object,\n gtmId: PropTypes.string,\n alternativePreHeader: PropTypes.shape({\n name: PropTypes.string\n }),\n alternativeHeadline: PropTypes.string,\n category: PropTypes.shape({\n name: PropTypes.string,\n publishedListingPage: PropTypes.shape({\n url: PropTypes.string\n })\n }),\n modifier: PropTypes.string,\n displayCategory: PropTypes.bool.isRequired,\n displayThumbnail: PropTypes.bool.isRequired,\n displayTitle: PropTypes.bool.isRequired,\n cardChildren: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n gtmChildren: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n gridModifier: PropTypes.string,\n priority: PropTypes.bool\n};\n\nCard.defaultProps = {\n entityProps: {},\n image: {\n url: null,\n data: {}\n },\n gtmId: '',\n style: 'portrait',\n propsToDisplay: [],\n propsToDisplayModifiers: [],\n url: '',\n alternativePreHeader: null,\n alternativeHeadline: '',\n category: null,\n modifier: '',\n cardChildren: [],\n gtmChildren: [],\n gridModifier: '',\n priority: false\n};\n\nconst getCategoryDefinedProps = ({\n alternativePreHeader,\n category,\n entity,\n alternativeHeadline,\n displayCategory,\n name\n}) => {\n const hasAlternativePreHeader = alternativePreHeader && alternativePreHeader.name;\n const preHeader =\n alternativeHeadline && hasAlternativePreHeader ? alternativePreHeader : category;\n const publishedListingPage = getPublishedListingUrl(preHeader);\n const label = preHeader ? preHeader.name : entity;\n const headline =\n !displayCategory || !hasAlternativePreHeader ? name : alternativeHeadline || name;\n return { publishedListingPage, preHeader, label, headline };\n};\n\nconst getImageDefinedProps = ({ image, displayThumbnail }) => {\n const { url: imageSrc, data } = image || {};\n const shouldDisplayThumbnail = displayThumbnail && imageSrc;\n const altText = (data && data.altText) || '';\n return { imageSrc, shouldDisplayThumbnail, altText };\n};\n\nconst getInitialModifiers = ({ modifier, style, otherProps }) => {\n const modifiers = [modifier, style];\n const { sponsored, featured } = otherProps;\n if (sponsored) modifiers.push('sponsored');\n if (featured) modifiers.push('featured');\n\n return modifiers;\n};\n\nexport default Card;\n"],"file":"Card.js"}
@@ -153,7 +153,9 @@ CardContainer.propTypes = {
153
153
  itemsPerRow: _propTypes["default"].number,
154
154
  enableCarousel: _propTypes["default"].bool,
155
155
  bannerModifier: _propTypes["default"].string,
156
- priorityLimit: _propTypes["default"].number
156
+ priorityLimit: _propTypes["default"].number,
157
+ enableAutoScroll: _propTypes["default"].bool,
158
+ autoScrollTimer: _propTypes["default"].number
157
159
  };
158
160
  CardContainer.defaultProps = {
159
161
  gtmChildren: [],
@@ -170,7 +172,9 @@ CardContainer.defaultProps = {
170
172
  itemsPerRow: 1,
171
173
  enableCarousel: false,
172
174
  bannerModifier: '',
173
- priorityLimit: 0
175
+ priorityLimit: 0,
176
+ enableAutoScroll: false,
177
+ autoScrollTimer: 0
174
178
  };
175
179
 
176
180
  var _default = (0, _HOC.withTitle)(CardContainer);