@blaze-cms/plugin-gtm-fe 0.146.0-rc-eagle.0 → 0.146.0-rc-eagle-3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/lib/GoogleTagManager/GTMFactory.js +2 -1
  3. package/lib/GoogleTagManager/GTMFactory.js.map +1 -1
  4. package/lib/GoogleTagManagerEvent/GTMEvent.js +2 -1
  5. package/lib/GoogleTagManagerEvent/GTMEvent.js.map +1 -1
  6. package/lib/GoogleTagManagerEvent/GTMEventFactory.js +2 -1
  7. package/lib/GoogleTagManagerEvent/GTMEventFactory.js.map +1 -1
  8. package/lib/GoogleTagManagerEvent/GTMEventRender.js +2 -1
  9. package/lib/GoogleTagManagerEvent/GTMEventRender.js.map +1 -1
  10. package/lib/index.js +2 -1
  11. package/lib/index.js.map +1 -1
  12. package/lib-es/GoogleTagManager/GTMFactory.js +55 -0
  13. package/lib-es/GoogleTagManager/GTMFactory.js.map +1 -0
  14. package/lib-es/GoogleTagManager/GTMRender.js +72 -0
  15. package/lib-es/GoogleTagManager/GTMRender.js.map +1 -0
  16. package/lib-es/GoogleTagManager/index.js +3 -0
  17. package/lib-es/GoogleTagManager/index.js.map +1 -0
  18. package/lib-es/GoogleTagManagerEvent/GTMClickEvent.js +55 -0
  19. package/lib-es/GoogleTagManagerEvent/GTMClickEvent.js.map +1 -0
  20. package/lib-es/GoogleTagManagerEvent/GTMClickEvents.js +32 -0
  21. package/lib-es/GoogleTagManagerEvent/GTMClickEvents.js.map +1 -0
  22. package/lib-es/GoogleTagManagerEvent/GTMEvent.js +38 -0
  23. package/lib-es/GoogleTagManagerEvent/GTMEvent.js.map +1 -0
  24. package/lib-es/GoogleTagManagerEvent/GTMEventFactory.js +92 -0
  25. package/lib-es/GoogleTagManagerEvent/GTMEventFactory.js.map +1 -0
  26. package/lib-es/GoogleTagManagerEvent/GTMEventRender.js +81 -0
  27. package/lib-es/GoogleTagManagerEvent/GTMEventRender.js.map +1 -0
  28. package/lib-es/GoogleTagManagerEvent/GTMEventSwitch.js +40 -0
  29. package/lib-es/GoogleTagManagerEvent/GTMEventSwitch.js.map +1 -0
  30. package/lib-es/GoogleTagManagerEvent/index.js +3 -0
  31. package/lib-es/GoogleTagManagerEvent/index.js.map +1 -0
  32. package/lib-es/constants.js +28 -0
  33. package/lib-es/constants.js.map +1 -0
  34. package/lib-es/helpers/build-and-push-web-vitals.js +24 -0
  35. package/lib-es/helpers/build-and-push-web-vitals.js.map +1 -0
  36. package/lib-es/helpers/build-data-layer.js +34 -0
  37. package/lib-es/helpers/build-data-layer.js.map +1 -0
  38. package/lib-es/helpers/build-nested-event.js +69 -0
  39. package/lib-es/helpers/build-nested-event.js.map +1 -0
  40. package/lib-es/helpers/build-props-to-display-array.js +5 -0
  41. package/lib-es/helpers/build-props-to-display-array.js.map +1 -0
  42. package/lib-es/helpers/build-user-layer.js +45 -0
  43. package/lib-es/helpers/build-user-layer.js.map +1 -0
  44. package/lib-es/helpers/build-user-query-props.js +25 -0
  45. package/lib-es/helpers/build-user-query-props.js.map +1 -0
  46. package/lib-es/helpers/filter-gtm-events.js +14 -0
  47. package/lib-es/helpers/filter-gtm-events.js.map +1 -0
  48. package/lib-es/helpers/get-ids-to-use.js +8 -0
  49. package/lib-es/helpers/get-ids-to-use.js.map +1 -0
  50. package/lib-es/helpers/get-render-props.js +25 -0
  51. package/lib-es/helpers/get-render-props.js.map +1 -0
  52. package/lib-es/helpers/index.js +11 -0
  53. package/lib-es/helpers/index.js.map +1 -0
  54. package/lib-es/helpers/push-to-data-layer.js +9 -0
  55. package/lib-es/helpers/push-to-data-layer.js.map +1 -0
  56. package/lib-es/helpers/reset-data-layer.js +17 -0
  57. package/lib-es/helpers/reset-data-layer.js.map +1 -0
  58. package/lib-es/index.js +21 -0
  59. package/lib-es/index.js.map +1 -0
  60. package/package.json +13 -8
  61. package/babel.config.js +0 -3
  62. package/jest.config.js +0 -3
@@ -0,0 +1,92 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ const _excluded = ["propsToDisplay"];
4
+ import React, { useContext } from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import { useQuery } from '@apollo/client';
7
+ import { getSingleEntitySchema, buildPropsQuery } from '@blaze-cms/react-page-builder';
8
+ import { MainContext } from '@blaze-cms/nextjs-components';
9
+ import GTMEventRender from './GTMEventRender';
10
+ import { getRenderProps, getIdsToUse, buildPropsToDisplayArray } from '../helpers';
11
+ import { GTM_EVENT_FACTORY } from '../constants';
12
+ const GTMEventFactory = ({
13
+ parent,
14
+ gtmEvents,
15
+ parentData,
16
+ clickId,
17
+ parentComponent
18
+ }) => {
19
+ const {
20
+ isPreview
21
+ } = useContext(MainContext);
22
+ const [{
23
+ itemEntity = parent.itemEntity
24
+ } = {}] = parentData || [];
25
+ const {
26
+ data,
27
+ error,
28
+ loading
29
+ } = useQuery(getSingleEntitySchema, {
30
+ variables: {
31
+ id: itemEntity
32
+ }
33
+ });
34
+ if (loading || error || !data) return null;
35
+ return gtmEvents.map((_ref, i) => {
36
+ let {
37
+ propsToDisplay
38
+ } = _ref,
39
+ eventProps = _objectWithoutProperties(_ref, _excluded);
40
+ const hasNoPropsToDisplay = !propsToDisplay || !propsToDisplay.length;
41
+ const propsToDisplayArr = buildPropsToDisplayArray(propsToDisplay);
42
+ const extraProps = hasNoPropsToDisplay ? '' : buildPropsQuery(data, propsToDisplayArr);
43
+ const shouldUseParentData = !clickId && parentData && parentData.length;
44
+ const itemIdToUse = clickId || parent.itemId;
45
+ const itemId = shouldUseParentData ? getIdsToUse(parentData) : itemIdToUse;
46
+ const shouldUseMultiQuery = Array.isArray(itemId);
47
+ const {
48
+ action,
49
+ actionKey
50
+ } = getRenderProps(extraProps, isPreview, data, shouldUseMultiQuery);
51
+ const dynamicKey = `${GTM_EVENT_FACTORY}${i}`;
52
+ const queryVariables = shouldUseMultiQuery ? {
53
+ variables: {
54
+ where: {
55
+ id: {
56
+ _in: itemId
57
+ }
58
+ }
59
+ },
60
+ skip: hasNoPropsToDisplay
61
+ } : {
62
+ variables: {
63
+ id: itemId
64
+ },
65
+ skip: hasNoPropsToDisplay
66
+ };
67
+ return /*#__PURE__*/React.createElement(GTMEventRender, _extends({
68
+ key: dynamicKey,
69
+ action: action,
70
+ actionKey: actionKey,
71
+ propsToDisplay: propsToDisplay,
72
+ id: itemId,
73
+ queryVariables: queryVariables,
74
+ parentComponent: parentComponent
75
+ }, eventProps));
76
+ });
77
+ };
78
+ GTMEventFactory.propTypes = {
79
+ parent: PropTypes.object.isRequired,
80
+ clickId: PropTypes.string,
81
+ gtmEvents: PropTypes.array,
82
+ parentData: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),
83
+ parentComponent: PropTypes.object
84
+ };
85
+ GTMEventFactory.defaultProps = {
86
+ clickId: null,
87
+ gtmEvents: [],
88
+ parentData: null,
89
+ parentComponent: {}
90
+ };
91
+ export default GTMEventFactory;
92
+ //# sourceMappingURL=GTMEventFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GTMEventFactory.js","names":["React","useContext","PropTypes","useQuery","getSingleEntitySchema","buildPropsQuery","MainContext","GTMEventRender","getRenderProps","getIdsToUse","buildPropsToDisplayArray","GTM_EVENT_FACTORY","GTMEventFactory","parent","gtmEvents","parentData","clickId","parentComponent","isPreview","itemEntity","data","error","loading","variables","id","map","_ref","i","propsToDisplay","eventProps","_objectWithoutProperties","_excluded","hasNoPropsToDisplay","length","propsToDisplayArr","extraProps","shouldUseParentData","itemIdToUse","itemId","shouldUseMultiQuery","Array","isArray","action","actionKey","dynamicKey","queryVariables","where","_in","skip","createElement","_extends","key","propTypes","object","isRequired","string","array","oneOfType","defaultProps"],"sources":["../../src/GoogleTagManagerEvent/GTMEventFactory.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { useQuery } from '@apollo/client';\nimport { getSingleEntitySchema, buildPropsQuery } from '@blaze-cms/react-page-builder';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport GTMEventRender from './GTMEventRender';\nimport { getRenderProps, getIdsToUse, buildPropsToDisplayArray } from '../helpers';\nimport { GTM_EVENT_FACTORY } from '../constants';\n\nconst GTMEventFactory = ({ parent, gtmEvents, parentData, clickId, parentComponent }) => {\n const { isPreview } = useContext(MainContext);\n const [{ itemEntity = parent.itemEntity } = {}] = parentData || [];\n const { data, error, loading } = useQuery(getSingleEntitySchema, {\n variables: { id: itemEntity }\n });\n\n if (loading || error || !data) return null;\n\n return gtmEvents.map(({ propsToDisplay, ...eventProps }, i) => {\n const hasNoPropsToDisplay = !propsToDisplay || !propsToDisplay.length;\n const propsToDisplayArr = buildPropsToDisplayArray(propsToDisplay);\n const extraProps = hasNoPropsToDisplay ? '' : buildPropsQuery(data, propsToDisplayArr);\n const shouldUseParentData = !clickId && parentData && parentData.length;\n const itemIdToUse = clickId || parent.itemId;\n const itemId = shouldUseParentData ? getIdsToUse(parentData) : itemIdToUse;\n const shouldUseMultiQuery = Array.isArray(itemId);\n const { action, actionKey } = getRenderProps(extraProps, isPreview, data, shouldUseMultiQuery);\n const dynamicKey = `${GTM_EVENT_FACTORY}${i}`;\n const queryVariables = shouldUseMultiQuery\n ? {\n variables: { where: { id: { _in: itemId } } },\n skip: hasNoPropsToDisplay\n }\n : {\n variables: { id: itemId },\n skip: hasNoPropsToDisplay\n };\n\n return (\n <GTMEventRender\n key={dynamicKey}\n action={action}\n actionKey={actionKey}\n propsToDisplay={propsToDisplay}\n id={itemId}\n queryVariables={queryVariables}\n parentComponent={parentComponent}\n {...eventProps}\n />\n );\n });\n};\n\nGTMEventFactory.propTypes = {\n parent: PropTypes.object.isRequired,\n clickId: PropTypes.string,\n gtmEvents: PropTypes.array,\n parentData: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n parentComponent: PropTypes.object\n};\n\nGTMEventFactory.defaultProps = {\n clickId: null,\n gtmEvents: [],\n parentData: null,\n parentComponent: {}\n};\n\nexport default GTMEventFactory;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,qBAAqB,EAAEC,eAAe,QAAQ,+BAA+B;AACtF,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,SAASC,cAAc,EAAEC,WAAW,EAAEC,wBAAwB,QAAQ,YAAY;AAClF,SAASC,iBAAiB,QAAQ,cAAc;AAEhD,MAAMC,eAAe,GAAGA,CAAC;EAAEC,MAAM;EAAEC,SAAS;EAAEC,UAAU;EAAEC,OAAO;EAAEC;AAAgB,CAAC,KAAK;EACvF,MAAM;IAAEC;EAAU,CAAC,GAAGjB,UAAU,CAACK,WAAW,CAAC;EAC7C,MAAM,CAAC;IAAEa,UAAU,GAAGN,MAAM,CAACM;EAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAGJ,UAAU,IAAI,EAAE;EAClE,MAAM;IAAEK,IAAI;IAAEC,KAAK;IAAEC;EAAQ,CAAC,GAAGnB,QAAQ,CAACC,qBAAqB,EAAE;IAC/DmB,SAAS,EAAE;MAAEC,EAAE,EAAEL;IAAW;EAC9B,CAAC,CAAC;EAEF,IAAIG,OAAO,IAAID,KAAK,IAAI,CAACD,IAAI,EAAE,OAAO,IAAI;EAE1C,OAAON,SAAS,CAACW,GAAG,CAAC,CAAAC,IAAA,EAAoCC,CAAC,KAAK;IAAA,IAAzC;QAAEC;MAA8B,CAAC,GAAAF,IAAA;MAAZG,UAAU,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA;IACnD,MAAMC,mBAAmB,GAAG,CAACJ,cAAc,IAAI,CAACA,cAAc,CAACK,MAAM;IACrE,MAAMC,iBAAiB,GAAGxB,wBAAwB,CAACkB,cAAc,CAAC;IAClE,MAAMO,UAAU,GAAGH,mBAAmB,GAAG,EAAE,GAAG3B,eAAe,CAACe,IAAI,EAAEc,iBAAiB,CAAC;IACtF,MAAME,mBAAmB,GAAG,CAACpB,OAAO,IAAID,UAAU,IAAIA,UAAU,CAACkB,MAAM;IACvE,MAAMI,WAAW,GAAGrB,OAAO,IAAIH,MAAM,CAACyB,MAAM;IAC5C,MAAMA,MAAM,GAAGF,mBAAmB,GAAG3B,WAAW,CAACM,UAAU,CAAC,GAAGsB,WAAW;IAC1E,MAAME,mBAAmB,GAAGC,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC;IACjD,MAAM;MAAEI,MAAM;MAAEC;IAAU,CAAC,GAAGnC,cAAc,CAAC2B,UAAU,EAAEjB,SAAS,EAAEE,IAAI,EAAEmB,mBAAmB,CAAC;IAC9F,MAAMK,UAAU,GAAG,GAAGjC,iBAAiB,GAAGgB,CAAC,EAAE;IAC7C,MAAMkB,cAAc,GAAGN,mBAAmB,GACtC;MACEhB,SAAS,EAAE;QAAEuB,KAAK,EAAE;UAAEtB,EAAE,EAAE;YAAEuB,GAAG,EAAET;UAAO;QAAE;MAAE,CAAC;MAC7CU,IAAI,EAAEhB;IACR,CAAC,GACD;MACET,SAAS,EAAE;QAAEC,EAAE,EAAEc;MAAO,CAAC;MACzBU,IAAI,EAAEhB;IACR,CAAC;IAEL,oBACEhC,KAAA,CAAAiD,aAAA,CAAC1C,cAAc,EAAA2C,QAAA;MACbC,GAAG,EAAEP,UAAW;MAChBF,MAAM,EAAEA,MAAO;MACfC,SAAS,EAAEA,SAAU;MACrBf,cAAc,EAAEA,cAAe;MAC/BJ,EAAE,EAAEc,MAAO;MACXO,cAAc,EAAEA,cAAe;MAC/B5B,eAAe,EAAEA;IAAgB,GAC7BY,UAAU,CACf,CAAC;EAEN,CAAC,CAAC;AACJ,CAAC;AAEDjB,eAAe,CAACwC,SAAS,GAAG;EAC1BvC,MAAM,EAAEX,SAAS,CAACmD,MAAM,CAACC,UAAU;EACnCtC,OAAO,EAAEd,SAAS,CAACqD,MAAM;EACzBzC,SAAS,EAAEZ,SAAS,CAACsD,KAAK;EAC1BzC,UAAU,EAAEb,SAAS,CAACuD,SAAS,CAAC,CAACvD,SAAS,CAACmD,MAAM,EAAEnD,SAAS,CAACsD,KAAK,CAAC,CAAC;EACpEvC,eAAe,EAAEf,SAAS,CAACmD;AAC7B,CAAC;AAEDzC,eAAe,CAAC8C,YAAY,GAAG;EAC7B1C,OAAO,EAAE,IAAI;EACbF,SAAS,EAAE,EAAE;EACbC,UAAU,EAAE,IAAI;EAChBE,eAAe,EAAE,CAAC;AACpB,CAAC;AAED,eAAeL,eAAe","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ const _excluded = ["router", "action", "actionKey", "queryVariables", "parentComponent", "userPropsToDisplay", "handleOnSuccess"];
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ import React, { useState } from 'react';
7
+ import PropTypes from 'prop-types';
8
+ import { useQuery } from '@apollo/client';
9
+ import { getCurrentUser } from '@blaze-cms/react-page-builder';
10
+ import { withRouter } from 'next/router';
11
+ import GTMEvent from './GTMEvent';
12
+ import { buildDataLayer, buildNestedEvent, buildUserQueryProps, buildUserLayer } from '../helpers';
13
+ const GTMEventRender = _ref => {
14
+ let {
15
+ router,
16
+ action,
17
+ actionKey,
18
+ queryVariables,
19
+ parentComponent,
20
+ userPropsToDisplay,
21
+ handleOnSuccess
22
+ } = _ref,
23
+ eventProps = _objectWithoutProperties(_ref, _excluded);
24
+ const {
25
+ asPath
26
+ } = router;
27
+ const [currentLocation, setCurrentLocation] = useState('');
28
+ const {
29
+ data = {},
30
+ error,
31
+ loading
32
+ } = useQuery(action, queryVariables);
33
+ const hasUserProps = userPropsToDisplay && userPropsToDisplay.length;
34
+ const userProps = hasUserProps ? buildUserQueryProps(userPropsToDisplay) : '';
35
+ const {
36
+ data: userData,
37
+ loading: userLoading
38
+ } = useQuery(getCurrentUser(userProps), {
39
+ variables: {},
40
+ skip: !hasUserProps
41
+ });
42
+ if (loading || userLoading || error) return null;
43
+ const gtmData = data.entityData || data[actionKey];
44
+ if (currentLocation !== asPath) {
45
+ setCurrentLocation(asPath);
46
+ return null;
47
+ }
48
+ const {
49
+ eventTrigger,
50
+ propsToDisplay,
51
+ eventEcommerce
52
+ } = eventProps;
53
+ const dataLayerProps = buildDataLayer(gtmData, propsToDisplay);
54
+ const dataLayerObject = buildNestedEvent(eventEcommerce, eventProps, dataLayerProps, parentComponent);
55
+ const userLayerObject = buildUserLayer(userData, userPropsToDisplay);
56
+ const extendedDataLayer = _objectSpread(_objectSpread({}, dataLayerObject), userLayerObject);
57
+ return /*#__PURE__*/React.createElement(GTMEvent, {
58
+ dataLayerObject: extendedDataLayer,
59
+ eventTrigger: eventTrigger,
60
+ currentLocation: currentLocation,
61
+ handleOnSuccess: handleOnSuccess
62
+ });
63
+ };
64
+ GTMEventRender.propTypes = {
65
+ userPropsToDisplay: PropTypes.array,
66
+ router: PropTypes.object.isRequired,
67
+ action: PropTypes.object.isRequired,
68
+ actionKey: PropTypes.string.isRequired,
69
+ queryVariables: PropTypes.object.isRequired,
70
+ parentComponent: PropTypes.object.isRequired,
71
+ handleOnSuccess: PropTypes.func
72
+ };
73
+ GTMEventRender.defaultProps = {
74
+ userPropsToDisplay: [],
75
+ handleOnSuccess: () => {}
76
+ };
77
+ GTMEventRender.defaultProps = {
78
+ userPropsToDisplay: []
79
+ };
80
+ export default withRouter(GTMEventRender);
81
+ //# sourceMappingURL=GTMEventRender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GTMEventRender.js","names":["React","useState","PropTypes","useQuery","getCurrentUser","withRouter","GTMEvent","buildDataLayer","buildNestedEvent","buildUserQueryProps","buildUserLayer","GTMEventRender","_ref","router","action","actionKey","queryVariables","parentComponent","userPropsToDisplay","handleOnSuccess","eventProps","_objectWithoutProperties","_excluded","asPath","currentLocation","setCurrentLocation","data","error","loading","hasUserProps","length","userProps","userData","userLoading","variables","skip","gtmData","entityData","eventTrigger","propsToDisplay","eventEcommerce","dataLayerProps","dataLayerObject","userLayerObject","extendedDataLayer","_objectSpread","createElement","propTypes","array","object","isRequired","string","func","defaultProps"],"sources":["../../src/GoogleTagManagerEvent/GTMEventRender.js"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useQuery } from '@apollo/client';\nimport { getCurrentUser } from '@blaze-cms/react-page-builder';\nimport { withRouter } from 'next/router';\nimport GTMEvent from './GTMEvent';\nimport { buildDataLayer, buildNestedEvent, buildUserQueryProps, buildUserLayer } from '../helpers';\n\nconst GTMEventRender = ({\n router,\n action,\n actionKey,\n queryVariables,\n parentComponent,\n userPropsToDisplay,\n handleOnSuccess,\n ...eventProps\n}) => {\n const { asPath } = router;\n const [currentLocation, setCurrentLocation] = useState('');\n const { data = {}, error, loading } = useQuery(action, queryVariables);\n const hasUserProps = userPropsToDisplay && userPropsToDisplay.length;\n const userProps = hasUserProps ? buildUserQueryProps(userPropsToDisplay) : '';\n const { data: userData, loading: userLoading } = useQuery(getCurrentUser(userProps), {\n variables: {},\n skip: !hasUserProps\n });\n\n if (loading || userLoading || error) return null;\n const gtmData = data.entityData || data[actionKey];\n\n if (currentLocation !== asPath) {\n setCurrentLocation(asPath);\n return null;\n }\n\n const { eventTrigger, propsToDisplay, eventEcommerce } = eventProps;\n const dataLayerProps = buildDataLayer(gtmData, propsToDisplay);\n\n const dataLayerObject = buildNestedEvent(\n eventEcommerce,\n eventProps,\n dataLayerProps,\n parentComponent\n );\n const userLayerObject = buildUserLayer(userData, userPropsToDisplay);\n const extendedDataLayer = { ...dataLayerObject, ...userLayerObject };\n\n return (\n <GTMEvent\n dataLayerObject={extendedDataLayer}\n eventTrigger={eventTrigger}\n currentLocation={currentLocation}\n handleOnSuccess={handleOnSuccess}\n />\n );\n};\n\nGTMEventRender.propTypes = {\n userPropsToDisplay: PropTypes.array,\n router: PropTypes.object.isRequired,\n action: PropTypes.object.isRequired,\n actionKey: PropTypes.string.isRequired,\n queryVariables: PropTypes.object.isRequired,\n parentComponent: PropTypes.object.isRequired,\n handleOnSuccess: PropTypes.func\n};\n\nGTMEventRender.defaultProps = {\n userPropsToDisplay: [],\n handleOnSuccess: () => {}\n};\n\nGTMEventRender.defaultProps = {\n userPropsToDisplay: []\n};\n\nexport default withRouter(GTMEventRender);\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,cAAc,QAAQ,+BAA+B;AAC9D,SAASC,UAAU,QAAQ,aAAa;AACxC,OAAOC,QAAQ,MAAM,YAAY;AACjC,SAASC,cAAc,EAAEC,gBAAgB,EAAEC,mBAAmB,EAAEC,cAAc,QAAQ,YAAY;AAElG,MAAMC,cAAc,GAAGC,IAAA,IASjB;EAAA,IATkB;MACtBC,MAAM;MACNC,MAAM;MACNC,SAAS;MACTC,cAAc;MACdC,eAAe;MACfC,kBAAkB;MAClBC;IAEF,CAAC,GAAAP,IAAA;IADIQ,UAAU,GAAAC,wBAAA,CAAAT,IAAA,EAAAU,SAAA;EAEb,MAAM;IAAEC;EAAO,CAAC,GAAGV,MAAM;EACzB,MAAM,CAACW,eAAe,EAAEC,kBAAkB,CAAC,GAAGxB,QAAQ,CAAC,EAAE,CAAC;EAC1D,MAAM;IAAEyB,IAAI,GAAG,CAAC,CAAC;IAAEC,KAAK;IAAEC;EAAQ,CAAC,GAAGzB,QAAQ,CAACW,MAAM,EAAEE,cAAc,CAAC;EACtE,MAAMa,YAAY,GAAGX,kBAAkB,IAAIA,kBAAkB,CAACY,MAAM;EACpE,MAAMC,SAAS,GAAGF,YAAY,GAAGpB,mBAAmB,CAACS,kBAAkB,CAAC,GAAG,EAAE;EAC7E,MAAM;IAAEQ,IAAI,EAAEM,QAAQ;IAAEJ,OAAO,EAAEK;EAAY,CAAC,GAAG9B,QAAQ,CAACC,cAAc,CAAC2B,SAAS,CAAC,EAAE;IACnFG,SAAS,EAAE,CAAC,CAAC;IACbC,IAAI,EAAE,CAACN;EACT,CAAC,CAAC;EAEF,IAAID,OAAO,IAAIK,WAAW,IAAIN,KAAK,EAAE,OAAO,IAAI;EAChD,MAAMS,OAAO,GAAGV,IAAI,CAACW,UAAU,IAAIX,IAAI,CAACX,SAAS,CAAC;EAElD,IAAIS,eAAe,KAAKD,MAAM,EAAE;IAC9BE,kBAAkB,CAACF,MAAM,CAAC;IAC1B,OAAO,IAAI;EACb;EAEA,MAAM;IAAEe,YAAY;IAAEC,cAAc;IAAEC;EAAe,CAAC,GAAGpB,UAAU;EACnE,MAAMqB,cAAc,GAAGlC,cAAc,CAAC6B,OAAO,EAAEG,cAAc,CAAC;EAE9D,MAAMG,eAAe,GAAGlC,gBAAgB,CACtCgC,cAAc,EACdpB,UAAU,EACVqB,cAAc,EACdxB,eACF,CAAC;EACD,MAAM0B,eAAe,GAAGjC,cAAc,CAACsB,QAAQ,EAAEd,kBAAkB,CAAC;EACpE,MAAM0B,iBAAiB,GAAAC,aAAA,CAAAA,aAAA,KAAQH,eAAe,GAAKC,eAAe,CAAE;EAEpE,oBACE3C,KAAA,CAAA8C,aAAA,CAACxC,QAAQ;IACPoC,eAAe,EAAEE,iBAAkB;IACnCN,YAAY,EAAEA,YAAa;IAC3Bd,eAAe,EAAEA,eAAgB;IACjCL,eAAe,EAAEA;EAAgB,CAClC,CAAC;AAEN,CAAC;AAEDR,cAAc,CAACoC,SAAS,GAAG;EACzB7B,kBAAkB,EAAEhB,SAAS,CAAC8C,KAAK;EACnCnC,MAAM,EAAEX,SAAS,CAAC+C,MAAM,CAACC,UAAU;EACnCpC,MAAM,EAAEZ,SAAS,CAAC+C,MAAM,CAACC,UAAU;EACnCnC,SAAS,EAAEb,SAAS,CAACiD,MAAM,CAACD,UAAU;EACtClC,cAAc,EAAEd,SAAS,CAAC+C,MAAM,CAACC,UAAU;EAC3CjC,eAAe,EAAEf,SAAS,CAAC+C,MAAM,CAACC,UAAU;EAC5C/B,eAAe,EAAEjB,SAAS,CAACkD;AAC7B,CAAC;AAEDzC,cAAc,CAAC0C,YAAY,GAAG;EAC5BnC,kBAAkB,EAAE,EAAE;EACtBC,eAAe,EAAEA,CAAA,KAAM,CAAC;AAC1B,CAAC;AAEDR,cAAc,CAAC0C,YAAY,GAAG;EAC5BnC,kBAAkB,EAAE;AACtB,CAAC;AAED,eAAeb,UAAU,CAACM,cAAc,CAAC","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ const _excluded = ["gtmEvents", "clickState", "clickId"];
4
+ import React from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import GTMClickEvents from './GTMClickEvents';
7
+ import GTMEventFactory from './GTMEventFactory';
8
+ import { filterGtmEvents } from '../helpers';
9
+ const GTMEventSwitch = _ref => {
10
+ let {
11
+ gtmEvents,
12
+ clickState,
13
+ clickId
14
+ } = _ref,
15
+ props = _objectWithoutProperties(_ref, _excluded);
16
+ if (typeof window === 'undefined' || !gtmEvents.length) return null;
17
+ const {
18
+ clickEvents,
19
+ regularEvents
20
+ } = filterGtmEvents(gtmEvents);
21
+ const GTMClickFactory = clickId ? GTMEventFactory : GTMClickEvents;
22
+ return clickState ? /*#__PURE__*/React.createElement(GTMClickFactory, _extends({
23
+ gtmEvents: clickEvents,
24
+ clickId: clickId
25
+ }, props)) : /*#__PURE__*/React.createElement(GTMEventFactory, _extends({
26
+ gtmEvents: regularEvents
27
+ }, props));
28
+ };
29
+ GTMEventSwitch.propTypes = {
30
+ clickId: PropTypes.string,
31
+ gtmEvents: PropTypes.array,
32
+ clickState: PropTypes.bool
33
+ };
34
+ GTMEventSwitch.defaultProps = {
35
+ clickId: null,
36
+ gtmEvents: [],
37
+ clickState: false
38
+ };
39
+ export default GTMEventSwitch;
40
+ //# sourceMappingURL=GTMEventSwitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GTMEventSwitch.js","names":["React","PropTypes","GTMClickEvents","GTMEventFactory","filterGtmEvents","GTMEventSwitch","_ref","gtmEvents","clickState","clickId","props","_objectWithoutProperties","_excluded","window","length","clickEvents","regularEvents","GTMClickFactory","createElement","_extends","propTypes","string","array","bool","defaultProps"],"sources":["../../src/GoogleTagManagerEvent/GTMEventSwitch.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport GTMClickEvents from './GTMClickEvents';\nimport GTMEventFactory from './GTMEventFactory';\nimport { filterGtmEvents } from '../helpers';\n\nconst GTMEventSwitch = ({ gtmEvents, clickState, clickId, ...props }) => {\n if (typeof window === 'undefined' || !gtmEvents.length) return null;\n const { clickEvents, regularEvents } = filterGtmEvents(gtmEvents);\n const GTMClickFactory = clickId ? GTMEventFactory : GTMClickEvents;\n\n return clickState ? (\n <GTMClickFactory gtmEvents={clickEvents} clickId={clickId} {...props} />\n ) : (\n <GTMEventFactory gtmEvents={regularEvents} {...props} />\n );\n};\n\nGTMEventSwitch.propTypes = {\n clickId: PropTypes.string,\n gtmEvents: PropTypes.array,\n clickState: PropTypes.bool\n};\n\nGTMEventSwitch.defaultProps = {\n clickId: null,\n gtmEvents: [],\n clickState: false\n};\n\nexport default GTMEventSwitch;\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,SAASC,eAAe,QAAQ,YAAY;AAE5C,MAAMC,cAAc,GAAGC,IAAA,IAAkD;EAAA,IAAjD;MAAEC,SAAS;MAAEC,UAAU;MAAEC;IAAkB,CAAC,GAAAH,IAAA;IAAPI,KAAK,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,SAAA;EAChE,IAAI,OAAOC,MAAM,KAAK,WAAW,IAAI,CAACN,SAAS,CAACO,MAAM,EAAE,OAAO,IAAI;EACnE,MAAM;IAAEC,WAAW;IAAEC;EAAc,CAAC,GAAGZ,eAAe,CAACG,SAAS,CAAC;EACjE,MAAMU,eAAe,GAAGR,OAAO,GAAGN,eAAe,GAAGD,cAAc;EAElE,OAAOM,UAAU,gBACfR,KAAA,CAAAkB,aAAA,CAACD,eAAe,EAAAE,QAAA;IAACZ,SAAS,EAAEQ,WAAY;IAACN,OAAO,EAAEA;EAAQ,GAAKC,KAAK,CAAG,CAAC,gBAExEV,KAAA,CAAAkB,aAAA,CAACf,eAAe,EAAAgB,QAAA;IAACZ,SAAS,EAAES;EAAc,GAAKN,KAAK,CAAG,CACxD;AACH,CAAC;AAEDL,cAAc,CAACe,SAAS,GAAG;EACzBX,OAAO,EAAER,SAAS,CAACoB,MAAM;EACzBd,SAAS,EAAEN,SAAS,CAACqB,KAAK;EAC1Bd,UAAU,EAAEP,SAAS,CAACsB;AACxB,CAAC;AAEDlB,cAAc,CAACmB,YAAY,GAAG;EAC5Bf,OAAO,EAAE,IAAI;EACbF,SAAS,EAAE,EAAE;EACbC,UAAU,EAAE;AACd,CAAC;AAED,eAAeH,cAAc","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import GTMEventSwitch from './GTMEventSwitch';
2
+ export default GTMEventSwitch;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["GTMEventSwitch"],"sources":["../../src/GoogleTagManagerEvent/index.js"],"sourcesContent":["import GTMEventSwitch from './GTMEventSwitch';\n\nexport default GTMEventSwitch;\n"],"mappings":"AAAA,OAAOA,cAAc,MAAM,kBAAkB;AAE7C,eAAeA,cAAc","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ const EVENT = 'event';
2
+ const ON_LOAD = 'onLoad';
3
+ const ON_CLICK = 'onClick';
4
+ const IN_VIEW = 'inView';
5
+ const ON_SUCCESS = 'onSuccess';
6
+ const PAGE_VIEW = 'pageView';
7
+ const ECOMMERCE = 'ecommerce';
8
+ const GTM_PROPS = [{
9
+ key: 'eventAction'
10
+ }, {
11
+ key: 'eventLabel'
12
+ }, {
13
+ key: 'eventCategory'
14
+ }, {
15
+ key: 'eventName',
16
+ label: 'event'
17
+ }];
18
+ const GTM_EVENT_NAMES = {
19
+ productImpresion: 'impressions',
20
+ productDetailImpression: 'detail',
21
+ productClick: 'click',
22
+ promotionClick: 'promotionClick'
23
+ };
24
+ const GTM_EVENT_FACTORY = 'GtmEventFactory';
25
+ const PLUGIN_NAME = 'gtm-fe';
26
+ const PRODUCTS = 'products';
27
+ export { PLUGIN_NAME, EVENT, ECOMMERCE, GTM_PROPS, GTM_EVENT_NAMES, GTM_EVENT_FACTORY, ON_CLICK, IN_VIEW, ON_SUCCESS, ON_LOAD, PRODUCTS, PAGE_VIEW };
28
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","names":["EVENT","ON_LOAD","ON_CLICK","IN_VIEW","ON_SUCCESS","PAGE_VIEW","ECOMMERCE","GTM_PROPS","key","label","GTM_EVENT_NAMES","productImpresion","productDetailImpression","productClick","promotionClick","GTM_EVENT_FACTORY","PLUGIN_NAME","PRODUCTS"],"sources":["../src/constants.js"],"sourcesContent":["const EVENT = 'event';\nconst ON_LOAD = 'onLoad';\nconst ON_CLICK = 'onClick';\nconst IN_VIEW = 'inView';\nconst ON_SUCCESS = 'onSuccess';\nconst PAGE_VIEW = 'pageView';\nconst ECOMMERCE = 'ecommerce';\nconst GTM_PROPS = [\n { key: 'eventAction' },\n { key: 'eventLabel' },\n { key: 'eventCategory' },\n { key: 'eventName', label: 'event' }\n];\nconst GTM_EVENT_NAMES = {\n productImpresion: 'impressions',\n productDetailImpression: 'detail',\n productClick: 'click',\n promotionClick: 'promotionClick'\n};\n\nconst GTM_EVENT_FACTORY = 'GtmEventFactory';\nconst PLUGIN_NAME = 'gtm-fe';\nconst PRODUCTS = 'products';\n\nexport {\n PLUGIN_NAME,\n EVENT,\n ECOMMERCE,\n GTM_PROPS,\n GTM_EVENT_NAMES,\n GTM_EVENT_FACTORY,\n ON_CLICK,\n IN_VIEW,\n ON_SUCCESS,\n ON_LOAD,\n PRODUCTS,\n PAGE_VIEW\n};\n"],"mappings":"AAAA,MAAMA,KAAK,GAAG,OAAO;AACrB,MAAMC,OAAO,GAAG,QAAQ;AACxB,MAAMC,QAAQ,GAAG,SAAS;AAC1B,MAAMC,OAAO,GAAG,QAAQ;AACxB,MAAMC,UAAU,GAAG,WAAW;AAC9B,MAAMC,SAAS,GAAG,UAAU;AAC5B,MAAMC,SAAS,GAAG,WAAW;AAC7B,MAAMC,SAAS,GAAG,CAChB;EAAEC,GAAG,EAAE;AAAc,CAAC,EACtB;EAAEA,GAAG,EAAE;AAAa,CAAC,EACrB;EAAEA,GAAG,EAAE;AAAgB,CAAC,EACxB;EAAEA,GAAG,EAAE,WAAW;EAAEC,KAAK,EAAE;AAAQ,CAAC,CACrC;AACD,MAAMC,eAAe,GAAG;EACtBC,gBAAgB,EAAE,aAAa;EAC/BC,uBAAuB,EAAE,QAAQ;EACjCC,YAAY,EAAE,OAAO;EACrBC,cAAc,EAAE;AAClB,CAAC;AAED,MAAMC,iBAAiB,GAAG,iBAAiB;AAC3C,MAAMC,WAAW,GAAG,QAAQ;AAC5B,MAAMC,QAAQ,GAAG,UAAU;AAE3B,SACED,WAAW,EACXhB,KAAK,EACLM,SAAS,EACTC,SAAS,EACTG,eAAe,EACfK,iBAAiB,EACjBb,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVH,OAAO,EACPgB,QAAQ,EACRZ,SAAS","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ import { getCLS, getFID, getLCP } from 'web-vitals';
2
+ import pushToDataLayer from './push-to-data-layer';
3
+ const buildAndPushWebVitals = () => {
4
+ getCLS(reportHandler);
5
+ getFID(reportHandler);
6
+ getLCP(reportHandler);
7
+ };
8
+ const reportHandler = ({
9
+ name,
10
+ delta,
11
+ id
12
+ }) => {
13
+ const metrics = {
14
+ event: 'web-vitals',
15
+ event_category: 'Web Vitals',
16
+ event_action: name,
17
+ event_value: Math.round(name === 'CLS' ? delta * 1000 : delta),
18
+ event_label: id,
19
+ nonInteraction: true
20
+ };
21
+ pushToDataLayer(metrics);
22
+ };
23
+ export default buildAndPushWebVitals;
24
+ //# sourceMappingURL=build-and-push-web-vitals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-and-push-web-vitals.js","names":["getCLS","getFID","getLCP","pushToDataLayer","buildAndPushWebVitals","reportHandler","name","delta","id","metrics","event","event_category","event_action","event_value","Math","round","event_label","nonInteraction"],"sources":["../../src/helpers/build-and-push-web-vitals.js"],"sourcesContent":["import { getCLS, getFID, getLCP } from 'web-vitals';\nimport pushToDataLayer from './push-to-data-layer';\n\nconst buildAndPushWebVitals = () => {\n getCLS(reportHandler);\n getFID(reportHandler);\n getLCP(reportHandler);\n};\n\nconst reportHandler = ({ name, delta, id }) => {\n const metrics = {\n event: 'web-vitals',\n event_category: 'Web Vitals',\n event_action: name,\n event_value: Math.round(name === 'CLS' ? delta * 1000 : delta),\n event_label: id,\n nonInteraction: true\n };\n\n pushToDataLayer(metrics);\n};\n\nexport default buildAndPushWebVitals;\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,MAAM,EAAEC,MAAM,QAAQ,YAAY;AACnD,OAAOC,eAAe,MAAM,sBAAsB;AAElD,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EAClCJ,MAAM,CAACK,aAAa,CAAC;EACrBJ,MAAM,CAACI,aAAa,CAAC;EACrBH,MAAM,CAACG,aAAa,CAAC;AACvB,CAAC;AAED,MAAMA,aAAa,GAAGA,CAAC;EAAEC,IAAI;EAAEC,KAAK;EAAEC;AAAG,CAAC,KAAK;EAC7C,MAAMC,OAAO,GAAG;IACdC,KAAK,EAAE,YAAY;IACnBC,cAAc,EAAE,YAAY;IAC5BC,YAAY,EAAEN,IAAI;IAClBO,WAAW,EAAEC,IAAI,CAACC,KAAK,CAACT,IAAI,KAAK,KAAK,GAAGC,KAAK,GAAG,IAAI,GAAGA,KAAK,CAAC;IAC9DS,WAAW,EAAER,EAAE;IACfS,cAAc,EAAE;EAClB,CAAC;EAEDd,eAAe,CAACM,OAAO,CAAC;AAC1B,CAAC;AAED,eAAeL,qBAAqB","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ const getFinalValue = (data, name) => {
5
+ if (name.includes('.')) {
6
+ const [relationName, fieldName] = name.split('.');
7
+ if (Array.isArray(data[relationName])) {
8
+ return data[relationName].reduce((str, element, index) => `${str}${index ? ',' : ''}${element[fieldName]}`, '');
9
+ }
10
+ return data[relationName] ? data[relationName][fieldName] : data[fieldName] || '';
11
+ }
12
+ return data[name];
13
+ };
14
+ const buildProps = (props, data) => props.reduce((acc, {
15
+ label: key,
16
+ propertiesToDisplay: [name],
17
+ staticMetric
18
+ }) => {
19
+ if (key && (staticMetric || name)) {
20
+ acc[key] = staticMetric || getFinalValue(data, name);
21
+ }
22
+ return acc;
23
+ }, {});
24
+ const buildDataLayerProps = (props, data) => Array.isArray(data) ? data.map(currentData => buildProps(props, currentData)) : buildProps(props, data);
25
+ const buildDataLayer = (data, propsToDisplay, url) => {
26
+ if (!propsToDisplay || !propsToDisplay.length) return null;
27
+ const propsToDisplayValues = buildDataLayerProps(propsToDisplay, data);
28
+ return url ? _objectSpread({
29
+ event: 'pageView',
30
+ url
31
+ }, propsToDisplayValues) : propsToDisplayValues;
32
+ };
33
+ export default buildDataLayer;
34
+ //# sourceMappingURL=build-data-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-data-layer.js","names":["getFinalValue","data","name","includes","relationName","fieldName","split","Array","isArray","reduce","str","element","index","buildProps","props","acc","label","key","propertiesToDisplay","staticMetric","buildDataLayerProps","map","currentData","buildDataLayer","propsToDisplay","url","length","propsToDisplayValues","_objectSpread","event"],"sources":["../../src/helpers/build-data-layer.js"],"sourcesContent":["const getFinalValue = (data, name) => {\n if (name.includes('.')) {\n const [relationName, fieldName] = name.split('.');\n if (Array.isArray(data[relationName])) {\n return data[relationName].reduce(\n (str, element, index) => `${str}${index ? ',' : ''}${element[fieldName]}`,\n ''\n );\n }\n\n return data[relationName] ? data[relationName][fieldName] : data[fieldName] || '';\n }\n return data[name];\n};\n\nconst buildProps = (props, data) =>\n props.reduce((acc, { label: key, propertiesToDisplay: [name], staticMetric }) => {\n if (key && (staticMetric || name)) {\n acc[key] = staticMetric || getFinalValue(data, name);\n }\n\n return acc;\n }, {});\n\nconst buildDataLayerProps = (props, data) =>\n Array.isArray(data)\n ? data.map(currentData => buildProps(props, currentData))\n : buildProps(props, data);\n\nconst buildDataLayer = (data, propsToDisplay, url) => {\n if (!propsToDisplay || !propsToDisplay.length) return null;\n const propsToDisplayValues = buildDataLayerProps(propsToDisplay, data);\n\n return url\n ? {\n event: 'pageView',\n url,\n ...propsToDisplayValues\n }\n : propsToDisplayValues;\n};\n\nexport default buildDataLayer;\n"],"mappings":";;;AAAA,MAAMA,aAAa,GAAGA,CAACC,IAAI,EAAEC,IAAI,KAAK;EACpC,IAAIA,IAAI,CAACC,QAAQ,CAAC,GAAG,CAAC,EAAE;IACtB,MAAM,CAACC,YAAY,EAAEC,SAAS,CAAC,GAAGH,IAAI,CAACI,KAAK,CAAC,GAAG,CAAC;IACjD,IAAIC,KAAK,CAACC,OAAO,CAACP,IAAI,CAACG,YAAY,CAAC,CAAC,EAAE;MACrC,OAAOH,IAAI,CAACG,YAAY,CAAC,CAACK,MAAM,CAC9B,CAACC,GAAG,EAAEC,OAAO,EAAEC,KAAK,KAAK,GAAGF,GAAG,GAAGE,KAAK,GAAG,GAAG,GAAG,EAAE,GAAGD,OAAO,CAACN,SAAS,CAAC,EAAE,EACzE,EACF,CAAC;IACH;IAEA,OAAOJ,IAAI,CAACG,YAAY,CAAC,GAAGH,IAAI,CAACG,YAAY,CAAC,CAACC,SAAS,CAAC,GAAGJ,IAAI,CAACI,SAAS,CAAC,IAAI,EAAE;EACnF;EACA,OAAOJ,IAAI,CAACC,IAAI,CAAC;AACnB,CAAC;AAED,MAAMW,UAAU,GAAGA,CAACC,KAAK,EAAEb,IAAI,KAC7Ba,KAAK,CAACL,MAAM,CAAC,CAACM,GAAG,EAAE;EAAEC,KAAK,EAAEC,GAAG;EAAEC,mBAAmB,EAAE,CAAChB,IAAI,CAAC;EAAEiB;AAAa,CAAC,KAAK;EAC/E,IAAIF,GAAG,KAAKE,YAAY,IAAIjB,IAAI,CAAC,EAAE;IACjCa,GAAG,CAACE,GAAG,CAAC,GAAGE,YAAY,IAAInB,aAAa,CAACC,IAAI,EAAEC,IAAI,CAAC;EACtD;EAEA,OAAOa,GAAG;AACZ,CAAC,EAAE,CAAC,CAAC,CAAC;AAER,MAAMK,mBAAmB,GAAGA,CAACN,KAAK,EAAEb,IAAI,KACtCM,KAAK,CAACC,OAAO,CAACP,IAAI,CAAC,GACfA,IAAI,CAACoB,GAAG,CAACC,WAAW,IAAIT,UAAU,CAACC,KAAK,EAAEQ,WAAW,CAAC,CAAC,GACvDT,UAAU,CAACC,KAAK,EAAEb,IAAI,CAAC;AAE7B,MAAMsB,cAAc,GAAGA,CAACtB,IAAI,EAAEuB,cAAc,EAAEC,GAAG,KAAK;EACpD,IAAI,CAACD,cAAc,IAAI,CAACA,cAAc,CAACE,MAAM,EAAE,OAAO,IAAI;EAC1D,MAAMC,oBAAoB,GAAGP,mBAAmB,CAACI,cAAc,EAAEvB,IAAI,CAAC;EAEtE,OAAOwB,GAAG,GAAAG,aAAA;IAEJC,KAAK,EAAE,UAAU;IACjBJ;EAAG,GACAE,oBAAoB,IAEzBA,oBAAoB;AAC1B,CAAC;AAED,eAAeJ,cAAc","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import { GTM_EVENT_NAMES, GTM_PROPS, EVENT, ECOMMERCE, PRODUCTS, ON_CLICK } from '../constants';
5
+ const buildNestedEvent = (ecommerce, propsObject, props, parentComponent) => {
6
+ const {
7
+ productDetailImpression,
8
+ productClick
9
+ } = GTM_EVENT_NAMES;
10
+ const {
11
+ eventAction,
12
+ eventTrigger
13
+ } = propsObject;
14
+ const {
15
+ name
16
+ } = parentComponent;
17
+ const gtmActionLabel = GTM_EVENT_NAMES[eventAction];
18
+ const isClickEvent = eventTrigger === ON_CLICK || gtmActionLabel === productClick;
19
+ const actionField = {
20
+ list: name
21
+ };
22
+ const hasMultipleItems = Array.isArray(props);
23
+ if (!ecommerce) {
24
+ const basicEventObject = {};
25
+ GTM_PROPS.forEach(({
26
+ key,
27
+ label
28
+ }) => {
29
+ const gtmValue = propsObject[key];
30
+ const gtmKey = label || key;
31
+ if (gtmValue) basicEventObject[gtmKey] = gtmValue;
32
+ });
33
+ const parsedProps = hasMultipleItems ? {
34
+ items: props
35
+ } : props;
36
+ return _objectSpread(_objectSpread({}, basicEventObject), parsedProps);
37
+ }
38
+ if (!gtmActionLabel) return {
39
+ [EVENT]: eventAction,
40
+ [ECOMMERCE]: props
41
+ };
42
+ if (gtmActionLabel === productDetailImpression || gtmActionLabel === productClick) {
43
+ const parsedProducts = hasMultipleItems ? props : [props];
44
+ const eventObject = isClickEvent ? {
45
+ [PRODUCTS]: parsedProducts,
46
+ actionField
47
+ } : {
48
+ [PRODUCTS]: parsedProducts
49
+ };
50
+ return {
51
+ [EVENT]: eventAction,
52
+ [ECOMMERCE]: {
53
+ [gtmActionLabel]: eventObject
54
+ }
55
+ };
56
+ }
57
+ const ecommerceObject = isClickEvent ? {
58
+ [gtmActionLabel]: props,
59
+ actionField
60
+ } : {
61
+ [gtmActionLabel]: props
62
+ };
63
+ return {
64
+ [EVENT]: eventAction,
65
+ [ECOMMERCE]: ecommerceObject
66
+ };
67
+ };
68
+ export default buildNestedEvent;
69
+ //# sourceMappingURL=build-nested-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-nested-event.js","names":["GTM_EVENT_NAMES","GTM_PROPS","EVENT","ECOMMERCE","PRODUCTS","ON_CLICK","buildNestedEvent","ecommerce","propsObject","props","parentComponent","productDetailImpression","productClick","eventAction","eventTrigger","name","gtmActionLabel","isClickEvent","actionField","list","hasMultipleItems","Array","isArray","basicEventObject","forEach","key","label","gtmValue","gtmKey","parsedProps","items","_objectSpread","parsedProducts","eventObject","ecommerceObject"],"sources":["../../src/helpers/build-nested-event.js"],"sourcesContent":["import { GTM_EVENT_NAMES, GTM_PROPS, EVENT, ECOMMERCE, PRODUCTS, ON_CLICK } from '../constants';\n\nconst buildNestedEvent = (ecommerce, propsObject, props, parentComponent) => {\n const { productDetailImpression, productClick } = GTM_EVENT_NAMES;\n const { eventAction, eventTrigger } = propsObject;\n const { name } = parentComponent;\n const gtmActionLabel = GTM_EVENT_NAMES[eventAction];\n const isClickEvent = eventTrigger === ON_CLICK || gtmActionLabel === productClick;\n const actionField = { list: name };\n const hasMultipleItems = Array.isArray(props);\n\n if (!ecommerce) {\n const basicEventObject = {};\n GTM_PROPS.forEach(({ key, label }) => {\n const gtmValue = propsObject[key];\n const gtmKey = label || key;\n if (gtmValue) basicEventObject[gtmKey] = gtmValue;\n });\n const parsedProps = hasMultipleItems ? { items: props } : props;\n\n return { ...basicEventObject, ...parsedProps };\n }\n\n if (!gtmActionLabel) return { [EVENT]: eventAction, [ECOMMERCE]: props };\n if (gtmActionLabel === productDetailImpression || gtmActionLabel === productClick) {\n const parsedProducts = hasMultipleItems ? props : [props];\n const eventObject = isClickEvent\n ? { [PRODUCTS]: parsedProducts, actionField }\n : { [PRODUCTS]: parsedProducts };\n return {\n [EVENT]: eventAction,\n [ECOMMERCE]: { [gtmActionLabel]: eventObject }\n };\n }\n\n const ecommerceObject = isClickEvent\n ? { [gtmActionLabel]: props, actionField }\n : { [gtmActionLabel]: props };\n return { [EVENT]: eventAction, [ECOMMERCE]: ecommerceObject };\n};\n\nexport default buildNestedEvent;\n"],"mappings":";;;AAAA,SAASA,eAAe,EAAEC,SAAS,EAAEC,KAAK,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,QAAQ,cAAc;AAE/F,MAAMC,gBAAgB,GAAGA,CAACC,SAAS,EAAEC,WAAW,EAAEC,KAAK,EAAEC,eAAe,KAAK;EAC3E,MAAM;IAAEC,uBAAuB;IAAEC;EAAa,CAAC,GAAGZ,eAAe;EACjE,MAAM;IAAEa,WAAW;IAAEC;EAAa,CAAC,GAAGN,WAAW;EACjD,MAAM;IAAEO;EAAK,CAAC,GAAGL,eAAe;EAChC,MAAMM,cAAc,GAAGhB,eAAe,CAACa,WAAW,CAAC;EACnD,MAAMI,YAAY,GAAGH,YAAY,KAAKT,QAAQ,IAAIW,cAAc,KAAKJ,YAAY;EACjF,MAAMM,WAAW,GAAG;IAAEC,IAAI,EAAEJ;EAAK,CAAC;EAClC,MAAMK,gBAAgB,GAAGC,KAAK,CAACC,OAAO,CAACb,KAAK,CAAC;EAE7C,IAAI,CAACF,SAAS,EAAE;IACd,MAAMgB,gBAAgB,GAAG,CAAC,CAAC;IAC3BtB,SAAS,CAACuB,OAAO,CAAC,CAAC;MAAEC,GAAG;MAAEC;IAAM,CAAC,KAAK;MACpC,MAAMC,QAAQ,GAAGnB,WAAW,CAACiB,GAAG,CAAC;MACjC,MAAMG,MAAM,GAAGF,KAAK,IAAID,GAAG;MAC3B,IAAIE,QAAQ,EAAEJ,gBAAgB,CAACK,MAAM,CAAC,GAAGD,QAAQ;IACnD,CAAC,CAAC;IACF,MAAME,WAAW,GAAGT,gBAAgB,GAAG;MAAEU,KAAK,EAAErB;IAAM,CAAC,GAAGA,KAAK;IAE/D,OAAAsB,aAAA,CAAAA,aAAA,KAAYR,gBAAgB,GAAKM,WAAW;EAC9C;EAEA,IAAI,CAACb,cAAc,EAAE,OAAO;IAAE,CAACd,KAAK,GAAGW,WAAW;IAAE,CAACV,SAAS,GAAGM;EAAM,CAAC;EACxE,IAAIO,cAAc,KAAKL,uBAAuB,IAAIK,cAAc,KAAKJ,YAAY,EAAE;IACjF,MAAMoB,cAAc,GAAGZ,gBAAgB,GAAGX,KAAK,GAAG,CAACA,KAAK,CAAC;IACzD,MAAMwB,WAAW,GAAGhB,YAAY,GAC5B;MAAE,CAACb,QAAQ,GAAG4B,cAAc;MAAEd;IAAY,CAAC,GAC3C;MAAE,CAACd,QAAQ,GAAG4B;IAAe,CAAC;IAClC,OAAO;MACL,CAAC9B,KAAK,GAAGW,WAAW;MACpB,CAACV,SAAS,GAAG;QAAE,CAACa,cAAc,GAAGiB;MAAY;IAC/C,CAAC;EACH;EAEA,MAAMC,eAAe,GAAGjB,YAAY,GAChC;IAAE,CAACD,cAAc,GAAGP,KAAK;IAAES;EAAY,CAAC,GACxC;IAAE,CAACF,cAAc,GAAGP;EAAM,CAAC;EAC/B,OAAO;IAAE,CAACP,KAAK,GAAGW,WAAW;IAAE,CAACV,SAAS,GAAG+B;EAAgB,CAAC;AAC/D,CAAC;AAED,eAAe5B,gBAAgB","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ function buildPropsToDisplayArray(propsToDisplay = []) {
2
+ return propsToDisplay.map(prop => !!prop && !!prop.propertiesToDisplay && prop.propertiesToDisplay[0]).filter(Boolean);
3
+ }
4
+ export default buildPropsToDisplayArray;
5
+ //# sourceMappingURL=build-props-to-display-array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-props-to-display-array.js","names":["buildPropsToDisplayArray","propsToDisplay","map","prop","propertiesToDisplay","filter","Boolean"],"sources":["../../src/helpers/build-props-to-display-array.js"],"sourcesContent":["function buildPropsToDisplayArray(propsToDisplay = []) {\n return propsToDisplay\n .map(prop => !!prop && !!prop.propertiesToDisplay && prop.propertiesToDisplay[0])\n .filter(Boolean);\n}\n\nexport default buildPropsToDisplayArray;\n"],"mappings":"AAAA,SAASA,wBAAwBA,CAACC,cAAc,GAAG,EAAE,EAAE;EACrD,OAAOA,cAAc,CAClBC,GAAG,CAACC,IAAI,IAAI,CAAC,CAACA,IAAI,IAAI,CAAC,CAACA,IAAI,CAACC,mBAAmB,IAAID,IAAI,CAACC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAChFC,MAAM,CAACC,OAAO,CAAC;AACpB;AAEA,eAAeN,wBAAwB","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ const getValue = (propertiesToDisplay, getUser) => {
2
+ const [baseProp, nestedProp] = propertiesToDisplay[0].split('.');
3
+ const baseValue = getUser[baseProp];
4
+ const isArray = Array.isArray(baseValue);
5
+ if (nestedProp && baseValue) {
6
+ let nestedValue;
7
+ if (isArray) {
8
+ nestedValue = baseValue.length ? baseValue.map(nested => nested ? nested[nestedProp] : '').join(', ') : '';
9
+ } else {
10
+ nestedValue = baseValue[nestedProp];
11
+ }
12
+ return nestedValue || '';
13
+ }
14
+ return baseValue || '';
15
+ };
16
+ const checkAndSetProps = (userPropsToDisplay, getUser) => {
17
+ const userDataLayer = {};
18
+ userPropsToDisplay.forEach(prop => {
19
+ const {
20
+ propertiesToDisplay,
21
+ label,
22
+ staticMetric
23
+ } = prop;
24
+ if (staticMetric) {
25
+ userDataLayer[label] = staticMetric;
26
+ return;
27
+ }
28
+ if (!propertiesToDisplay[0]) return;
29
+ const value = getValue(propertiesToDisplay, getUser);
30
+ userDataLayer[label] = value;
31
+ });
32
+ return userDataLayer;
33
+ };
34
+ const buildUserLayer = (userData, userPropsToDisplay) => {
35
+ if (!userData || !userData.getUser) return {};
36
+ const {
37
+ getUser
38
+ } = userData;
39
+ const userDataLayer = checkAndSetProps(userPropsToDisplay, getUser);
40
+ return {
41
+ user: userDataLayer
42
+ };
43
+ };
44
+ export default buildUserLayer;
45
+ //# sourceMappingURL=build-user-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-user-layer.js","names":["getValue","propertiesToDisplay","getUser","baseProp","nestedProp","split","baseValue","isArray","Array","nestedValue","length","map","nested","join","checkAndSetProps","userPropsToDisplay","userDataLayer","forEach","prop","label","staticMetric","value","buildUserLayer","userData","user"],"sources":["../../src/helpers/build-user-layer.js"],"sourcesContent":["const getValue = (propertiesToDisplay, getUser) => {\n const [baseProp, nestedProp] = propertiesToDisplay[0].split('.');\n const baseValue = getUser[baseProp];\n const isArray = Array.isArray(baseValue);\n if (nestedProp && baseValue) {\n let nestedValue;\n if (isArray) {\n nestedValue = baseValue.length\n ? baseValue.map(nested => (nested ? nested[nestedProp] : '')).join(', ')\n : '';\n } else {\n nestedValue = baseValue[nestedProp];\n }\n return nestedValue || '';\n }\n return baseValue || '';\n};\n\nconst checkAndSetProps = (userPropsToDisplay, getUser) => {\n const userDataLayer = {};\n userPropsToDisplay.forEach(prop => {\n const { propertiesToDisplay, label, staticMetric } = prop;\n if (staticMetric) {\n userDataLayer[label] = staticMetric;\n return;\n }\n if (!propertiesToDisplay[0]) return;\n const value = getValue(propertiesToDisplay, getUser);\n userDataLayer[label] = value;\n });\n\n return userDataLayer;\n};\n\nconst buildUserLayer = (userData, userPropsToDisplay) => {\n if (!userData || !userData.getUser) return {};\n const { getUser } = userData;\n\n const userDataLayer = checkAndSetProps(userPropsToDisplay, getUser);\n\n return { user: userDataLayer };\n};\n\nexport default buildUserLayer;\n"],"mappings":"AAAA,MAAMA,QAAQ,GAAGA,CAACC,mBAAmB,EAAEC,OAAO,KAAK;EACjD,MAAM,CAACC,QAAQ,EAAEC,UAAU,CAAC,GAAGH,mBAAmB,CAAC,CAAC,CAAC,CAACI,KAAK,CAAC,GAAG,CAAC;EAChE,MAAMC,SAAS,GAAGJ,OAAO,CAACC,QAAQ,CAAC;EACnC,MAAMI,OAAO,GAAGC,KAAK,CAACD,OAAO,CAACD,SAAS,CAAC;EACxC,IAAIF,UAAU,IAAIE,SAAS,EAAE;IAC3B,IAAIG,WAAW;IACf,IAAIF,OAAO,EAAE;MACXE,WAAW,GAAGH,SAAS,CAACI,MAAM,GAC1BJ,SAAS,CAACK,GAAG,CAACC,MAAM,IAAKA,MAAM,GAAGA,MAAM,CAACR,UAAU,CAAC,GAAG,EAAG,CAAC,CAACS,IAAI,CAAC,IAAI,CAAC,GACtE,EAAE;IACR,CAAC,MAAM;MACLJ,WAAW,GAAGH,SAAS,CAACF,UAAU,CAAC;IACrC;IACA,OAAOK,WAAW,IAAI,EAAE;EAC1B;EACA,OAAOH,SAAS,IAAI,EAAE;AACxB,CAAC;AAED,MAAMQ,gBAAgB,GAAGA,CAACC,kBAAkB,EAAEb,OAAO,KAAK;EACxD,MAAMc,aAAa,GAAG,CAAC,CAAC;EACxBD,kBAAkB,CAACE,OAAO,CAACC,IAAI,IAAI;IACjC,MAAM;MAAEjB,mBAAmB;MAAEkB,KAAK;MAAEC;IAAa,CAAC,GAAGF,IAAI;IACzD,IAAIE,YAAY,EAAE;MAChBJ,aAAa,CAACG,KAAK,CAAC,GAAGC,YAAY;MACnC;IACF;IACA,IAAI,CAACnB,mBAAmB,CAAC,CAAC,CAAC,EAAE;IAC7B,MAAMoB,KAAK,GAAGrB,QAAQ,CAACC,mBAAmB,EAAEC,OAAO,CAAC;IACpDc,aAAa,CAACG,KAAK,CAAC,GAAGE,KAAK;EAC9B,CAAC,CAAC;EAEF,OAAOL,aAAa;AACtB,CAAC;AAED,MAAMM,cAAc,GAAGA,CAACC,QAAQ,EAAER,kBAAkB,KAAK;EACvD,IAAI,CAACQ,QAAQ,IAAI,CAACA,QAAQ,CAACrB,OAAO,EAAE,OAAO,CAAC,CAAC;EAC7C,MAAM;IAAEA;EAAQ,CAAC,GAAGqB,QAAQ;EAE5B,MAAMP,aAAa,GAAGF,gBAAgB,CAACC,kBAAkB,EAAEb,OAAO,CAAC;EAEnE,OAAO;IAAEsB,IAAI,EAAER;EAAc,CAAC;AAChC,CAAC;AAED,eAAeM,cAAc","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ const buildUserQueryProps = userProps => {
2
+ if (!userProps || !userProps.length) return '';
3
+ const basicProps = [];
4
+ const nestedProps = {};
5
+ userProps.forEach(({
6
+ propertiesToDisplay
7
+ }) => {
8
+ const [propKey] = propertiesToDisplay;
9
+ if (!propKey || propKey === 'id') return;
10
+ if (propKey.indexOf('.') !== -1) {
11
+ const [baseProp, nestedProp] = propKey.split('.');
12
+ if (nestedProps[baseProp]) nestedProps[baseProp].push(nestedProp);else nestedProps[baseProp] = [nestedProp];
13
+ } else basicProps.push(propKey);
14
+ });
15
+ Object.keys(nestedProps).forEach(nestedKey => {
16
+ const nested = nestedProps[nestedKey];
17
+ basicProps.push(nestedKey);
18
+ basicProps.push('{');
19
+ nested.forEach(prop => basicProps.push(prop));
20
+ basicProps.push('}');
21
+ });
22
+ return basicProps.join(' ');
23
+ };
24
+ export default buildUserQueryProps;
25
+ //# sourceMappingURL=build-user-query-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-user-query-props.js","names":["buildUserQueryProps","userProps","length","basicProps","nestedProps","forEach","propertiesToDisplay","propKey","indexOf","baseProp","nestedProp","split","push","Object","keys","nestedKey","nested","prop","join"],"sources":["../../src/helpers/build-user-query-props.js"],"sourcesContent":["const buildUserQueryProps = 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\nexport default buildUserQueryProps;\n"],"mappings":"AAAA,MAAMA,mBAAmB,GAAGC,SAAS,IAAI;EACvC,IAAI,CAACA,SAAS,IAAI,CAACA,SAAS,CAACC,MAAM,EAAE,OAAO,EAAE;EAC9C,MAAMC,UAAU,GAAG,EAAE;EACrB,MAAMC,WAAW,GAAG,CAAC,CAAC;EACtBH,SAAS,CAACI,OAAO,CAAC,CAAC;IAAEC;EAAoB,CAAC,KAAK;IAC7C,MAAM,CAACC,OAAO,CAAC,GAAGD,mBAAmB;IACrC,IAAI,CAACC,OAAO,IAAIA,OAAO,KAAK,IAAI,EAAE;IAClC,IAAIA,OAAO,CAACC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;MAC/B,MAAM,CAACC,QAAQ,EAAEC,UAAU,CAAC,GAAGH,OAAO,CAACI,KAAK,CAAC,GAAG,CAAC;MACjD,IAAIP,WAAW,CAACK,QAAQ,CAAC,EAAEL,WAAW,CAACK,QAAQ,CAAC,CAACG,IAAI,CAACF,UAAU,CAAC,CAAC,KAC7DN,WAAW,CAACK,QAAQ,CAAC,GAAG,CAACC,UAAU,CAAC;IAC3C,CAAC,MAAMP,UAAU,CAACS,IAAI,CAACL,OAAO,CAAC;EACjC,CAAC,CAAC;EAEFM,MAAM,CAACC,IAAI,CAACV,WAAW,CAAC,CAACC,OAAO,CAACU,SAAS,IAAI;IAC5C,MAAMC,MAAM,GAAGZ,WAAW,CAACW,SAAS,CAAC;IACrCZ,UAAU,CAACS,IAAI,CAACG,SAAS,CAAC;IAC1BZ,UAAU,CAACS,IAAI,CAAC,GAAG,CAAC;IACpBI,MAAM,CAACX,OAAO,CAACY,IAAI,IAAId,UAAU,CAACS,IAAI,CAACK,IAAI,CAAC,CAAC;IAC7Cd,UAAU,CAACS,IAAI,CAAC,GAAG,CAAC;EACtB,CAAC,CAAC;EAEF,OAAOT,UAAU,CAACe,IAAI,CAAC,GAAG,CAAC;AAC7B,CAAC;AAED,eAAelB,mBAAmB","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import { ON_CLICK } from '../constants';
2
+ const filterGtmEvents = gtmEvents => {
3
+ const clickEvents = [];
4
+ const regularEvents = [];
5
+ gtmEvents.forEach(event => {
6
+ event.eventTrigger && event.eventTrigger === ON_CLICK ? clickEvents.push(event) : regularEvents.push(event);
7
+ });
8
+ return {
9
+ clickEvents,
10
+ regularEvents
11
+ };
12
+ };
13
+ export default filterGtmEvents;
14
+ //# sourceMappingURL=filter-gtm-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-gtm-events.js","names":["ON_CLICK","filterGtmEvents","gtmEvents","clickEvents","regularEvents","forEach","event","eventTrigger","push"],"sources":["../../src/helpers/filter-gtm-events.js"],"sourcesContent":["import { ON_CLICK } from '../constants';\n\nconst filterGtmEvents = gtmEvents => {\n const clickEvents = [];\n const regularEvents = [];\n gtmEvents.forEach(event => {\n event.eventTrigger && event.eventTrigger === ON_CLICK\n ? clickEvents.push(event)\n : regularEvents.push(event);\n });\n\n return { clickEvents, regularEvents };\n};\n\nexport default filterGtmEvents;\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,MAAMC,eAAe,GAAGC,SAAS,IAAI;EACnC,MAAMC,WAAW,GAAG,EAAE;EACtB,MAAMC,aAAa,GAAG,EAAE;EACxBF,SAAS,CAACG,OAAO,CAACC,KAAK,IAAI;IACzBA,KAAK,CAACC,YAAY,IAAID,KAAK,CAACC,YAAY,KAAKP,QAAQ,GACjDG,WAAW,CAACK,IAAI,CAACF,KAAK,CAAC,GACvBF,aAAa,CAACI,IAAI,CAACF,KAAK,CAAC;EAC/B,CAAC,CAAC;EAEF,OAAO;IAAEH,WAAW;IAAEC;EAAc,CAAC;AACvC,CAAC;AAED,eAAeH,eAAe","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ const getIdsToUse = parentData => {
2
+ if (!parentData || !parentData.length) return [];
3
+ return parentData.map(({
4
+ id
5
+ }) => id);
6
+ };
7
+ export default getIdsToUse;
8
+ //# sourceMappingURL=get-ids-to-use.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-ids-to-use.js","names":["getIdsToUse","parentData","length","map","id"],"sources":["../../src/helpers/get-ids-to-use.js"],"sourcesContent":["const getIdsToUse = parentData => {\n if (!parentData || !parentData.length) return [];\n\n return parentData.map(({ id }) => id);\n};\n\nexport default getIdsToUse;\n"],"mappings":"AAAA,MAAMA,WAAW,GAAGC,UAAU,IAAI;EAChC,IAAI,CAACA,UAAU,IAAI,CAACA,UAAU,CAACC,MAAM,EAAE,OAAO,EAAE;EAEhD,OAAOD,UAAU,CAACE,GAAG,CAAC,CAAC;IAAEC;EAAG,CAAC,KAAKA,EAAE,CAAC;AACvC,CAAC;AAED,eAAeJ,WAAW","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ import { generateSingleItemQuery, generateMultiItemQuery } from '@blaze-cms/react-page-builder';
2
+ const getRenderProps = (extraProps, isPreview, data, useMultiQuery) => {
3
+ const {
4
+ getEntitySchema
5
+ } = data;
6
+ const {
7
+ actions: {
8
+ get,
9
+ getPublished,
10
+ getAll,
11
+ getAllPublished
12
+ }
13
+ } = getEntitySchema;
14
+ const queryToUse = useMultiQuery ? generateMultiItemQuery : generateSingleItemQuery;
15
+ const singleActionKey = isPreview ? get : getPublished || get;
16
+ const multiActionKey = isPreview ? getAll : getAllPublished || getAll;
17
+ const actionKey = useMultiQuery ? multiActionKey : singleActionKey;
18
+ const action = queryToUse(actionKey, extraProps);
19
+ return {
20
+ action,
21
+ actionKey
22
+ };
23
+ };
24
+ export default getRenderProps;
25
+ //# sourceMappingURL=get-render-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-render-props.js","names":["generateSingleItemQuery","generateMultiItemQuery","getRenderProps","extraProps","isPreview","data","useMultiQuery","getEntitySchema","actions","get","getPublished","getAll","getAllPublished","queryToUse","singleActionKey","multiActionKey","actionKey","action"],"sources":["../../src/helpers/get-render-props.js"],"sourcesContent":["import { generateSingleItemQuery, generateMultiItemQuery } from '@blaze-cms/react-page-builder';\n\nconst getRenderProps = (extraProps, isPreview, data, useMultiQuery) => {\n const { getEntitySchema } = data;\n const {\n actions: { get, getPublished, getAll, getAllPublished }\n } = getEntitySchema;\n const queryToUse = useMultiQuery ? generateMultiItemQuery : generateSingleItemQuery;\n const singleActionKey = isPreview ? get : getPublished || get;\n const multiActionKey = isPreview ? getAll : getAllPublished || getAll;\n const actionKey = useMultiQuery ? multiActionKey : singleActionKey;\n const action = queryToUse(actionKey, extraProps);\n\n return { action, actionKey };\n};\n\nexport default getRenderProps;\n"],"mappings":"AAAA,SAASA,uBAAuB,EAAEC,sBAAsB,QAAQ,+BAA+B;AAE/F,MAAMC,cAAc,GAAGA,CAACC,UAAU,EAAEC,SAAS,EAAEC,IAAI,EAAEC,aAAa,KAAK;EACrE,MAAM;IAAEC;EAAgB,CAAC,GAAGF,IAAI;EAChC,MAAM;IACJG,OAAO,EAAE;MAAEC,GAAG;MAAEC,YAAY;MAAEC,MAAM;MAAEC;IAAgB;EACxD,CAAC,GAAGL,eAAe;EACnB,MAAMM,UAAU,GAAGP,aAAa,GAAGL,sBAAsB,GAAGD,uBAAuB;EACnF,MAAMc,eAAe,GAAGV,SAAS,GAAGK,GAAG,GAAGC,YAAY,IAAID,GAAG;EAC7D,MAAMM,cAAc,GAAGX,SAAS,GAAGO,MAAM,GAAGC,eAAe,IAAID,MAAM;EACrE,MAAMK,SAAS,GAAGV,aAAa,GAAGS,cAAc,GAAGD,eAAe;EAClE,MAAMG,MAAM,GAAGJ,UAAU,CAACG,SAAS,EAAEb,UAAU,CAAC;EAEhD,OAAO;IAAEc,MAAM;IAAED;EAAU,CAAC;AAC9B,CAAC;AAED,eAAed,cAAc","ignoreList":[]}