@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.
- package/CHANGELOG.md +5 -1
- package/lib/GoogleTagManager/GTMFactory.js +2 -1
- package/lib/GoogleTagManager/GTMFactory.js.map +1 -1
- package/lib/GoogleTagManagerEvent/GTMEvent.js +2 -1
- package/lib/GoogleTagManagerEvent/GTMEvent.js.map +1 -1
- package/lib/GoogleTagManagerEvent/GTMEventFactory.js +2 -1
- package/lib/GoogleTagManagerEvent/GTMEventFactory.js.map +1 -1
- package/lib/GoogleTagManagerEvent/GTMEventRender.js +2 -1
- package/lib/GoogleTagManagerEvent/GTMEventRender.js.map +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib-es/GoogleTagManager/GTMFactory.js +55 -0
- package/lib-es/GoogleTagManager/GTMFactory.js.map +1 -0
- package/lib-es/GoogleTagManager/GTMRender.js +72 -0
- package/lib-es/GoogleTagManager/GTMRender.js.map +1 -0
- package/lib-es/GoogleTagManager/index.js +3 -0
- package/lib-es/GoogleTagManager/index.js.map +1 -0
- package/lib-es/GoogleTagManagerEvent/GTMClickEvent.js +55 -0
- package/lib-es/GoogleTagManagerEvent/GTMClickEvent.js.map +1 -0
- package/lib-es/GoogleTagManagerEvent/GTMClickEvents.js +32 -0
- package/lib-es/GoogleTagManagerEvent/GTMClickEvents.js.map +1 -0
- package/lib-es/GoogleTagManagerEvent/GTMEvent.js +38 -0
- package/lib-es/GoogleTagManagerEvent/GTMEvent.js.map +1 -0
- package/lib-es/GoogleTagManagerEvent/GTMEventFactory.js +92 -0
- package/lib-es/GoogleTagManagerEvent/GTMEventFactory.js.map +1 -0
- package/lib-es/GoogleTagManagerEvent/GTMEventRender.js +81 -0
- package/lib-es/GoogleTagManagerEvent/GTMEventRender.js.map +1 -0
- package/lib-es/GoogleTagManagerEvent/GTMEventSwitch.js +40 -0
- package/lib-es/GoogleTagManagerEvent/GTMEventSwitch.js.map +1 -0
- package/lib-es/GoogleTagManagerEvent/index.js +3 -0
- package/lib-es/GoogleTagManagerEvent/index.js.map +1 -0
- package/lib-es/constants.js +28 -0
- package/lib-es/constants.js.map +1 -0
- package/lib-es/helpers/build-and-push-web-vitals.js +24 -0
- package/lib-es/helpers/build-and-push-web-vitals.js.map +1 -0
- package/lib-es/helpers/build-data-layer.js +34 -0
- package/lib-es/helpers/build-data-layer.js.map +1 -0
- package/lib-es/helpers/build-nested-event.js +69 -0
- package/lib-es/helpers/build-nested-event.js.map +1 -0
- package/lib-es/helpers/build-props-to-display-array.js +5 -0
- package/lib-es/helpers/build-props-to-display-array.js.map +1 -0
- package/lib-es/helpers/build-user-layer.js +45 -0
- package/lib-es/helpers/build-user-layer.js.map +1 -0
- package/lib-es/helpers/build-user-query-props.js +25 -0
- package/lib-es/helpers/build-user-query-props.js.map +1 -0
- package/lib-es/helpers/filter-gtm-events.js +14 -0
- package/lib-es/helpers/filter-gtm-events.js.map +1 -0
- package/lib-es/helpers/get-ids-to-use.js +8 -0
- package/lib-es/helpers/get-ids-to-use.js.map +1 -0
- package/lib-es/helpers/get-render-props.js +25 -0
- package/lib-es/helpers/get-render-props.js.map +1 -0
- package/lib-es/helpers/index.js +11 -0
- package/lib-es/helpers/index.js.map +1 -0
- package/lib-es/helpers/push-to-data-layer.js +9 -0
- package/lib-es/helpers/push-to-data-layer.js.map +1 -0
- package/lib-es/helpers/reset-data-layer.js +17 -0
- package/lib-es/helpers/reset-data-layer.js.map +1 -0
- package/lib-es/index.js +21 -0
- package/lib-es/index.js.map +1 -0
- package/package.json +13 -8
- package/babel.config.js +0 -3
- 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":"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","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":"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","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 @@
|
|
|
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 @@
|
|
|
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":[]}
|