@jetshop/core 5.10.0 → 5.12.0
Sign up to get free protection for your applications and to get access to all the features.
- package/ChannelHandler/ChannelHandler.d.ts +9 -13
- package/ChannelHandler/ChannelHandler.js +16 -63
- package/ChannelHandler/ChannelHandler.js.map +1 -1
- package/ChannelHandler/channelUtils.d.ts +13 -0
- package/ChannelHandler/channelUtils.js +26 -15
- package/ChannelHandler/channelUtils.js.map +1 -1
- package/ChannelHandler/redirectUtils.d.ts +3 -0
- package/ChannelHandler/redirectUtils.js +48 -0
- package/ChannelHandler/redirectUtils.js.map +1 -0
- package/ChannelHandler/redirectUtils.test.js +8 -0
- package/analytics/AnalyticsProvider.d.ts +4 -0
- package/analytics/AnalyticsProvider.js +18 -2
- package/analytics/AnalyticsProvider.js.map +1 -1
- package/analytics/integrations/ga4.js +1 -1
- package/analytics/integrations/ga4.js.map +1 -1
- package/analytics/integrations/gtag/gtag.d.ts +0 -1
- package/analytics/integrations/gtag/gtag.js +39 -28
- package/analytics/integrations/gtag/gtag.js.map +1 -1
- package/analytics/integrations/gtm/index.d.ts +0 -1
- package/analytics/integrations/gtm/index.js +37 -24
- package/analytics/integrations/gtm/index.js.map +1 -1
- package/analytics/integrations/releware/index.js +1 -1
- package/analytics/integrations/releware/index.js.map +1 -1
- package/analytics/integrations/unslugify.d.ts +1 -0
- package/analytics/integrations/unslugify.js +18 -0
- package/analytics/integrations/unslugify.js.map +1 -0
- package/analytics/trackerRegistry.d.ts +8 -3
- package/analytics/trackerRegistry.js +31 -14
- package/analytics/trackerRegistry.js.map +1 -1
- package/analytics/utils/breadcrumbsWithoutProduct.d.ts +1 -0
- package/analytics/utils/breadcrumbsWithoutProduct.js +9 -0
- package/analytics/utils/breadcrumbsWithoutProduct.js.map +1 -0
- package/boot/PreviewHandler.js.map +1 -1
- package/boot/SharedTree.js +1 -1
- package/boot/SharedTree.js.map +1 -1
- package/boot/apollo.d.ts +5 -3
- package/boot/apollo.js +9 -13
- package/boot/apollo.js.map +1 -1
- package/boot/client/startClient.js +5 -10
- package/boot/client/startClient.js.map +1 -1
- package/boot/server/createRenderer.js +8 -7
- package/boot/server/createRenderer.js.map +1 -1
- package/boot/server/index.js +2 -2
- package/boot/server/index.js.map +1 -1
- package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +53 -39
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.js +2 -2
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.js.map +1 -1
- package/cart/AddToCartFormik.d.ts +2 -2
- package/cart/AddToCartFormik.js +11 -11
- package/cart/AddToCartFormik.js.map +1 -1
- package/components/Auth/CustomerUpdateForm.js +7 -7
- package/components/Auth/CustomerUpdateForm.js.map +1 -1
- package/components/ChannelContext/ChannelContext.d.ts +2 -0
- package/components/ChannelContext/ChannelContext.js.map +1 -1
- package/components/ChannelContext/ChannelProvider.d.ts +1 -3
- package/components/ChannelContext/ChannelProvider.js +16 -6
- package/components/ChannelContext/ChannelProvider.js.map +1 -1
- package/components/ChannelContext/ChannelProvider.test.js +112 -0
- package/components/ConfigProvider.d.ts +2 -0
- package/components/ConfigProvider.js.map +1 -1
- package/components/DynamicRoute/CategoryRoute.js +9 -2
- package/components/DynamicRoute/CategoryRoute.js.map +1 -1
- package/components/DynamicRoute/ContentRoute.js +9 -1
- package/components/DynamicRoute/ContentRoute.js.map +1 -1
- package/components/DynamicRoute/PreviewRoute.js +12 -2
- package/components/DynamicRoute/PreviewRoute.js.map +1 -1
- package/components/DynamicRoute/ProductRoute.js +12 -4
- package/components/DynamicRoute/ProductRoute.js.map +1 -1
- package/components/Head.js +4 -4
- package/components/Head.js.map +1 -1
- package/components/Mutation/AddToCart/addToCartUtils.d.ts +1 -1
- package/components/Mutation/AddToCart/addToCartUtils.js +7 -1
- package/components/Mutation/AddToCart/addToCartUtils.js.map +1 -1
- package/components/Mutation/RemoveFromCart.js +10 -1
- package/components/Mutation/RemoveFromCart.js.map +1 -1
- package/components/Mutation/cartMutationUtils.js +7 -6
- package/components/Mutation/cartMutationUtils.js.map +1 -1
- package/components/Mutation/useDecrementQuantity.js +8 -3
- package/components/Mutation/useDecrementQuantity.js.map +1 -1
- package/components/Mutation/useIncrementQuantity.js +8 -3
- package/components/Mutation/useIncrementQuantity.js.map +1 -1
- package/components/Mutation/useRemoveFromCart.js +10 -1
- package/components/Mutation/useRemoveFromCart.js.map +1 -1
- package/components/PreviewContext.js +3 -1
- package/components/PreviewContext.js.map +1 -1
- package/components/Query/CartProvider.js +31 -21
- package/components/Query/CartProvider.js.map +1 -1
- package/components/StructuredData/StructuredBreadcrumbData.d.ts +8 -3
- package/components/StructuredData/StructuredBreadcrumbData.js +42 -23
- package/components/StructuredData/StructuredBreadcrumbData.js.map +1 -1
- package/components/StructuredData/StructuredCategoryData.d.ts +16 -0
- package/components/StructuredData/StructuredCategoryData.js +18 -0
- package/components/StructuredData/StructuredCategoryData.js.map +1 -0
- package/components/StructuredData/StructuredPageData.d.ts +16 -0
- package/components/StructuredData/StructuredPageData.js +17 -0
- package/components/StructuredData/StructuredPageData.js.map +1 -0
- package/components/StructuredData/StructuredProductData.js +2 -2
- package/components/StructuredData/StructuredProductData.js.map +1 -1
- package/components/StructuredData/index.d.ts +2 -0
- package/components/StructuredData/index.js +2 -0
- package/components/StructuredData/index.js.map +1 -1
- package/data/fragments/ChannelsFragment.gql +4 -0
- package/data/fragments/ProductListsFragments.gql +94 -0
- package/data/fragments/RouteMetaFragment.gql +18 -0
- package/data/mutations/productListMutations.gql +18 -0
- package/data/queries/ProductLists.gql +8 -0
- package/dependencies.d.ts +10 -1
- package/helpers/isRelativeUrl.d.ts +1 -0
- package/helpers/isRelativeUrl.js +4 -0
- package/helpers/isRelativeUrl.js.map +1 -0
- package/hooks/PackageProducts/usePackageProductItem.d.ts +3 -4
- package/hooks/ProductList/ProductListContext.js +49 -14
- package/hooks/ProductList/ProductListContext.js.map +1 -1
- package/hooks/ProductList/ProductLists.gql +0 -0
- package/hooks/ProductList/action-creators.d.ts +20 -7
- package/hooks/ProductList/action-creators.js +125 -31
- package/hooks/ProductList/action-creators.js.map +1 -1
- package/hooks/ProductList/index.d.ts +34 -8
- package/hooks/ProductList/index.js +19 -0
- package/hooks/ProductList/index.js.map +1 -1
- package/hooks/ProductList/list-transforms.d.ts +2 -2
- package/hooks/ProductList/list-transforms.js +22 -22
- package/hooks/ProductList/list-transforms.js.map +1 -1
- package/hooks/ProductList/list-transforms.test.js +103 -100
- package/hooks/ProductList/product-list-reducer.d.ts +37 -14
- package/hooks/ProductList/product-list-reducer.js +106 -43
- package/hooks/ProductList/product-list-reducer.js.map +1 -1
- package/hooks/ProductList/product-list-reducer.test.js +144 -82
- package/hooks/ProductList/useProductList.d.ts +2 -2
- package/hooks/ProductList/useProductList.js +12 -5
- package/hooks/ProductList/useProductList.js.map +1 -1
- package/hooks/ProductList/useProductListItems.d.ts +1 -1
- package/hooks/ProductList/useProductListItems.js +8 -6
- package/hooks/ProductList/useProductListItems.js.map +1 -1
- package/hooks/useAddMultipleToCart.js +11 -5
- package/hooks/useAddMultipleToCart.js.map +1 -1
- package/hooks/useProductVariants/useProductVariants.d.ts +1 -2
- package/hooks/useProductVariants/useProductVariants.js +1 -1
- package/hooks/useProductVariants/useProductVariants.js.map +1 -1
- package/package.json +1 -1
- package/resolvers/index.d.ts +3 -0
- package/resolvers/index.js +3 -0
- package/resolvers/index.js.map +1 -1
- package/sentry/client.js +1 -1
- package/sentry/client.js.map +1 -1
- package/server/tracking/facebook.d.ts +1 -1
- package/server/tracking/facebook.js +4 -2
- package/server/tracking/facebook.js.map +1 -1
- package/server/tracking/types.d.ts +3 -1
- package/time.d.ts +1 -0
- package/time.js +6 -0
- package/time.js.map +1 -0
- package/types.d.ts +5 -2
@@ -1,32 +1,20 @@
|
|
1
1
|
import { injectScript } from '../../utils/script';
|
2
2
|
import { getBrand } from '../../../components/OpenGraph/OpenGraphProductData';
|
3
|
+
import { unSlugify } from '../unslugify';
|
4
|
+
import { breadcrumbsWithoutProduct } from '../../utils/breadcrumbsWithoutProduct';
|
3
5
|
const gtag = () => window.gtag;
|
4
|
-
|
5
|
-
if (slug) {
|
6
|
-
slug = slug
|
7
|
-
.split('-')
|
8
|
-
.map((part) => part.length > 0 ? part[0].toUpperCase() + part.substring(1) : '')
|
9
|
-
.join(' ');
|
10
|
-
slug = slug
|
11
|
-
.split('/')
|
12
|
-
.map((part) => part.length > 0 ? part[0].toUpperCase() + part.substring(1) : '')
|
13
|
-
.join('/');
|
14
|
-
}
|
15
|
-
return slug;
|
16
|
-
}
|
17
|
-
function getProductData(product, selectedVariation, useArticleNumberAsId = false, brandCustomField) {
|
18
|
-
var _a, _b, _c, _d;
|
6
|
+
function getProductData({ product, selectedVariation, useArticleNumberAsId = false, brandCustomField, category = '' }) {
|
19
7
|
const brand = getBrand(product, brandCustomField);
|
20
8
|
if (useArticleNumberAsId) {
|
21
9
|
return {
|
22
|
-
id: product.articleNumber,
|
10
|
+
id: (selectedVariation === null || selectedVariation === void 0 ? void 0 : selectedVariation.articleNumber) || product.articleNumber,
|
23
11
|
productId: product.id,
|
24
12
|
productSKU: product.articleNumber,
|
25
13
|
variant: selectedVariation === null || selectedVariation === void 0 ? void 0 : selectedVariation.values.join('_'),
|
26
14
|
variantSKU: selectedVariation === null || selectedVariation === void 0 ? void 0 : selectedVariation.articleNumber,
|
27
15
|
name: product.name,
|
28
16
|
base_product: product.articleNumber,
|
29
|
-
category
|
17
|
+
category,
|
30
18
|
brand
|
31
19
|
};
|
32
20
|
}
|
@@ -35,12 +23,10 @@ function getProductData(product, selectedVariation, useArticleNumberAsId = false
|
|
35
23
|
// Changing this could affect the statistics in Google Ads/Merchant/Analytics, so we want the new behaviour to be opt-in.
|
36
24
|
return {
|
37
25
|
id: product.id,
|
38
|
-
variant: selectedVariation
|
39
|
-
? selectedVariation.articleNumber
|
40
|
-
: product.articleNumber,
|
26
|
+
variant: (selectedVariation === null || selectedVariation === void 0 ? void 0 : selectedVariation.articleNumber) || product.articleNumber,
|
41
27
|
name: product.name,
|
42
|
-
|
43
|
-
category
|
28
|
+
base_prduct: product.articleNumber,
|
29
|
+
category,
|
44
30
|
brand
|
45
31
|
};
|
46
32
|
}
|
@@ -77,8 +63,14 @@ export const gtagTracker = ({ trackingId, additionalGtagTrackingIds = [], curren
|
|
77
63
|
injectScript({ src: script });
|
78
64
|
gtag();
|
79
65
|
},
|
80
|
-
trackProduct({ quantity, action, product, selectedVariation, list, listName, index }, context, eventId) {
|
81
|
-
const productData = Object.assign(Object.assign({}, getProductData(
|
66
|
+
trackProduct({ quantity, action, product, selectedVariation, list, listName, index, category }, context, eventId) {
|
67
|
+
const productData = Object.assign(Object.assign({}, getProductData({
|
68
|
+
product,
|
69
|
+
selectedVariation,
|
70
|
+
useArticleNumberAsId,
|
71
|
+
brandCustomField,
|
72
|
+
category
|
73
|
+
})), { price: (selectedVariation && selectedVariation.price.incVat) ||
|
82
74
|
(product.price && product.price.incVat), quantity, list_name: list || listName || context.list, list_position: index });
|
83
75
|
switch (action) {
|
84
76
|
case 'click':
|
@@ -117,7 +109,18 @@ export const gtagTracker = ({ trackingId, additionalGtagTrackingIds = [], curren
|
|
117
109
|
}
|
118
110
|
},
|
119
111
|
trackCartCheckout({ cart }, _context, eventId) {
|
120
|
-
const items = cart.items.map((item) =>
|
112
|
+
const items = cart.items.map((item) => {
|
113
|
+
var _a, _b, _c;
|
114
|
+
return (Object.assign(Object.assign({}, getProductData({
|
115
|
+
product: item.product,
|
116
|
+
selectedVariation: item.variant,
|
117
|
+
useArticleNumberAsId,
|
118
|
+
brandCustomField,
|
119
|
+
category: breadcrumbsWithoutProduct((_a = item.product.primaryRoute) === null || _a === void 0 ? void 0 : _a.breadcrumbs) ||
|
120
|
+
unSlugify((_c = (_b = item.product.canonicalCategory) === null || _b === void 0 ? void 0 : _b.primaryRoute) === null || _c === void 0 ? void 0 : _c.path) ||
|
121
|
+
''
|
122
|
+
})), { price: item.total.incVat, quantity: item.quantity }));
|
123
|
+
});
|
121
124
|
gtag()('event', 'begin_checkout', {
|
122
125
|
currency,
|
123
126
|
items,
|
@@ -132,10 +135,18 @@ export const gtagTracker = ({ trackingId, additionalGtagTrackingIds = [], curren
|
|
132
135
|
eventId
|
133
136
|
});
|
134
137
|
},
|
135
|
-
trackList({ listName, products }, _context, eventId) {
|
138
|
+
trackList({ listName, products, category }, _context, eventId) {
|
136
139
|
const productData = products.map((product, i) => {
|
137
|
-
var _a;
|
138
|
-
return (Object.assign(Object.assign({}, getProductData(
|
140
|
+
var _a, _b, _c, _d;
|
141
|
+
return (Object.assign(Object.assign({}, getProductData({
|
142
|
+
product,
|
143
|
+
selectedVariation: null,
|
144
|
+
useArticleNumberAsId,
|
145
|
+
brandCustomField,
|
146
|
+
category: category ||
|
147
|
+
breadcrumbsWithoutProduct((_a = product === null || product === void 0 ? void 0 : product.primaryRoute) === null || _a === void 0 ? void 0 : _a.breadcrumbs) ||
|
148
|
+
unSlugify((_c = (_b = product === null || product === void 0 ? void 0 : product.canonicalCategory) === null || _b === void 0 ? void 0 : _b.primaryRoute) === null || _c === void 0 ? void 0 : _c.path)
|
149
|
+
})), { price: (_d = product.price) === null || _d === void 0 ? void 0 : _d.incVat, list_name: listName, list_position: i }));
|
139
150
|
});
|
140
151
|
gtag()('event', 'view_item_list', {
|
141
152
|
currency,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"gtag.js","sourceRoot":"","sources":["gtag.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,oDAAoD,CAAC;
|
1
|
+
{"version":3,"file":"gtag.js","sourceRoot":"","sources":["gtag.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import { injectScript } from '../../utils/script';
|
2
2
|
import { getBrand } from '@jetshop/core/components/OpenGraph/OpenGraphProductData';
|
3
|
+
import { unSlugify } from '../unslugify';
|
4
|
+
import { breadcrumbsWithoutProduct } from '../../utils/breadcrumbsWithoutProduct';
|
3
5
|
function push(event) {
|
4
6
|
if (window.dataLayer) {
|
5
7
|
if (event.ecommerce) {
|
@@ -8,31 +10,17 @@ function push(event) {
|
|
8
10
|
window.dataLayer.push(event);
|
9
11
|
}
|
10
12
|
}
|
11
|
-
|
12
|
-
if (slug) {
|
13
|
-
slug = slug
|
14
|
-
.split('-')
|
15
|
-
.map((part) => part.length > 0 ? part[0].toUpperCase() + part.substring(1) : '')
|
16
|
-
.join(' ');
|
17
|
-
slug = slug
|
18
|
-
.split('/')
|
19
|
-
.map((part) => part.length > 0 ? part[0].toUpperCase() + part.substring(1) : '')
|
20
|
-
.join('/');
|
21
|
-
}
|
22
|
-
return slug;
|
23
|
-
}
|
24
|
-
function getProductData(product, selectedVariation, useArticleNumberAsId = false, brandCustomField) {
|
25
|
-
var _a, _b, _c, _d;
|
13
|
+
function getProductData({ product, selectedVariation, useArticleNumberAsId = false, brandCustomField, category = '' }) {
|
26
14
|
if (useArticleNumberAsId) {
|
27
15
|
return {
|
28
|
-
id: product.articleNumber,
|
16
|
+
id: (selectedVariation === null || selectedVariation === void 0 ? void 0 : selectedVariation.articleNumber) || product.articleNumber,
|
29
17
|
productId: product.id,
|
30
18
|
productSKU: product.articleNumber,
|
31
19
|
variant: selectedVariation === null || selectedVariation === void 0 ? void 0 : selectedVariation.values.join('_'),
|
32
20
|
variantSKU: selectedVariation === null || selectedVariation === void 0 ? void 0 : selectedVariation.articleNumber,
|
33
21
|
name: product.name,
|
34
22
|
base_product: product.articleNumber,
|
35
|
-
category
|
23
|
+
category,
|
36
24
|
brand: getBrand(product, brandCustomField)
|
37
25
|
};
|
38
26
|
}
|
@@ -46,7 +34,7 @@ function getProductData(product, selectedVariation, useArticleNumberAsId = false
|
|
46
34
|
: product.articleNumber,
|
47
35
|
name: product.name,
|
48
36
|
base_product: product.articleNumber,
|
49
|
-
category
|
37
|
+
category,
|
50
38
|
brand: getBrand(product, brandCustomField)
|
51
39
|
};
|
52
40
|
}
|
@@ -68,8 +56,14 @@ export const gtmTracker = ({ containerId, currency, useArticleNumberAsId = false
|
|
68
56
|
});
|
69
57
|
injectScript({ src: script });
|
70
58
|
},
|
71
|
-
trackProduct({ quantity, action, product, selectedVariation, list, listName, index }, context) {
|
72
|
-
const productData = Object.assign(Object.assign({}, getProductData(
|
59
|
+
trackProduct({ quantity, action, product, selectedVariation, list, listName, index, category }, context) {
|
60
|
+
const productData = Object.assign(Object.assign({}, getProductData({
|
61
|
+
product,
|
62
|
+
selectedVariation,
|
63
|
+
useArticleNumberAsId,
|
64
|
+
brandCustomField,
|
65
|
+
category
|
66
|
+
})), { price: (selectedVariation && selectedVariation.price.incVat) ||
|
73
67
|
(product.price && product.price.incVat), quantity, position: index });
|
74
68
|
switch (action) {
|
75
69
|
case 'click':
|
@@ -129,7 +123,18 @@ export const gtmTracker = ({ containerId, currency, useArticleNumberAsId = false
|
|
129
123
|
}
|
130
124
|
},
|
131
125
|
trackCartCheckout({ cart }) {
|
132
|
-
const items = cart.items.map((item) =>
|
126
|
+
const items = cart.items.map((item) => {
|
127
|
+
var _a, _b, _c;
|
128
|
+
return (Object.assign(Object.assign({}, getProductData({
|
129
|
+
product: item.product,
|
130
|
+
selectedVariation: item.variant,
|
131
|
+
useArticleNumberAsId,
|
132
|
+
brandCustomField,
|
133
|
+
category: breadcrumbsWithoutProduct((_a = item.product.primaryRoute) === null || _a === void 0 ? void 0 : _a.breadcrumbs) ||
|
134
|
+
unSlugify((_c = (_b = item.product.canonicalCategory) === null || _b === void 0 ? void 0 : _b.primaryRoute) === null || _c === void 0 ? void 0 : _c.path) ||
|
135
|
+
''
|
136
|
+
})), { price: item.total.incVat, quantity: item.quantity }));
|
137
|
+
});
|
133
138
|
push({
|
134
139
|
event: 'checkout',
|
135
140
|
ecommerce: {
|
@@ -144,10 +149,18 @@ export const gtmTracker = ({ containerId, currency, useArticleNumberAsId = false
|
|
144
149
|
pageTitle: title
|
145
150
|
});
|
146
151
|
},
|
147
|
-
trackList({ listName, products }) {
|
152
|
+
trackList({ listName, products, category }) {
|
148
153
|
const productData = products.map((product, i) => {
|
149
|
-
var _a;
|
150
|
-
return (Object.assign(Object.assign({}, getProductData(
|
154
|
+
var _a, _b, _c, _d;
|
155
|
+
return (Object.assign(Object.assign({}, getProductData({
|
156
|
+
product,
|
157
|
+
selectedVariation: null,
|
158
|
+
useArticleNumberAsId,
|
159
|
+
brandCustomField,
|
160
|
+
category: category ||
|
161
|
+
breadcrumbsWithoutProduct((_a = product === null || product === void 0 ? void 0 : product.primaryRoute) === null || _a === void 0 ? void 0 : _a.breadcrumbs) ||
|
162
|
+
unSlugify((_c = (_b = product === null || product === void 0 ? void 0 : product.canonicalCategory) === null || _b === void 0 ? void 0 : _b.primaryRoute) === null || _c === void 0 ? void 0 : _c.path)
|
163
|
+
})), { price: (_d = product.price) === null || _d === void 0 ? void 0 : _d.incVat, position: i, list: listName }));
|
151
164
|
});
|
152
165
|
push({
|
153
166
|
event: 'productList',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAOlF,SAAS,IAAI,CAAC,KAA0B;IACtC,IAAI,MAAM,CAAC,SAAS,EAAE;QACpB,IAAI,KAAK,CAAC,SAAS,EAAE;YACnB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SAC5C;QAED,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;AACH,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,OAAO,EACP,iBAAiB,EACjB,oBAAoB,GAAG,KAAK,EAC5B,gBAAgB,EAChB,QAAQ,GAAG,EAAE,EAOd;IACC,IAAI,oBAAoB,EAAE;QACxB,OAAO;YACL,EAAE,EAAE,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,aAAa,KAAI,OAAO,CAAC,aAAa;YAC7D,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,UAAU,EAAE,OAAO,CAAC,aAAa;YACjC,OAAO,EAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YAC5C,UAAU,EAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,aAAa;YAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,YAAY,EAAE,OAAO,CAAC,aAAa;YACnC,QAAQ;YACR,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;SAC3C,CAAC;KACH;SAAM;QACL,2IAA2I;QAC3I,yHAAyH;QACzH,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,iBAAiB;gBACxB,CAAC,CAAC,iBAAiB,CAAC,aAAa;gBACjC,CAAC,CAAC,OAAO,CAAC,aAAa;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,YAAY,EAAE,OAAO,CAAC,aAAa;YACnC,QAAQ;YACR,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;SAC3C,CAAC;KACH;AACH,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,WAAW,EACX,QAAQ,EACR,oBAAoB,GAAG,KAAK,EAC5B,gBAAgB,EAMjB,EAAW,EAAE,CAAC,CAAC;IACd,IAAI,EAAE,KAAK;IACX,WAAW;QACT,MAAM,MAAM,GAAG,8CAA8C,WAAW,EAAE,CAAC;QAE3E,MAAM,CAAC,GAAQ,MAAM,CAAC;QACtB,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;QAChC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;YACf,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;YACjC,KAAK,EAAE,QAAQ;YACf,gBAAgB,EACd,QAAQ,CAAC,QAAQ,CAAC,QAAQ;gBAC1B,IAAI;gBACJ,QAAQ,CAAC,QAAQ,CAAC,QAAQ;gBAC1B,QAAQ,CAAC,QAAQ,CAAC,QAAQ;gBAC1B,QAAQ,CAAC,QAAQ,CAAC,MAAM;SAC3B,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,YAAY,CACV,EACE,QAAQ,EACR,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,QAAQ,EACT,EACD,OAAO;QAEP,MAAM,WAAW,mCACZ,cAAc,CAAC;YAChB,OAAO;YACP,iBAAiB;YACjB,oBAAoB;YACpB,gBAAgB;YAChB,QAAQ;SACT,CAAC,KACF,KAAK,EACH,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC;gBACrD,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EACzC,QAAQ,EACR,QAAQ,EAAE,KAAK,GAChB,CAAC;QAEF,QAAQ,MAAM,EAAE;YACd,KAAK,OAAO;gBACV,IAAI,CAAC;oBACH,KAAK,EAAE,cAAc;oBACrB,UAAU,EAAE,OAAO,CAAC,aAAa;oBACjC,SAAS,EAAE;wBACT,KAAK,EAAE;4BACL,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE;4BACvD,QAAQ,EAAE,CAAC,WAAW,CAAC;yBACxB;qBACF;iBACF,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC;oBACH,KAAK,EAAE,gBAAgB;oBACvB,SAAS,EAAE;wBACT,YAAY,EAAE,QAAQ;wBACtB,MAAM,EAAE;4BACN,QAAQ,EAAE,CAAC,WAAW,CAAC;yBACxB;qBACF;iBACF,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC;oBACH,KAAK,EAAE,WAAW;oBAClB,UAAU,EAAE,OAAO,CAAC,aAAa;oBACjC,SAAS,EAAE;wBACT,WAAW,EAAE;4BACX,IAAI,EAAE,IAAI,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI;yBACvC;wBACD,YAAY,EAAE,QAAQ;wBACtB,GAAG,EAAE;4BACH,QAAQ,EAAE,CAAC,WAAW,CAAC;yBACxB;qBACF;iBACF,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC;oBACH,KAAK,EAAE,gBAAgB;oBACvB,UAAU,EAAE,OAAO,CAAC,aAAa;oBACjC,QAAQ,EAAE,MAAM;oBAChB,SAAS,EAAE;wBACT,YAAY,EAAE,QAAQ;wBACtB,MAAM,EAAE;4BACN,QAAQ,EAAE,CAAC,WAAW,CAAC;yBACxB;qBACF;iBACF,CAAC,CAAC;gBACH,MAAM;YACR;gBACE,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,MAAM,CAAC,CAAC;gBAC1D,MAAM;SACT;IACH,CAAC;IACD,iBAAiB,CAAC,EAAE,IAAI,EAAE;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;;YAAC,OAAA,iCAClC,cAAc,CAAC;gBAChB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,iBAAiB,EAAE,IAAI,CAAC,OAAO;gBAC/B,oBAAoB;gBACpB,gBAAgB;gBAChB,QAAQ,EACN,yBAAyB,CAAC,MAAA,IAAI,CAAC,OAAO,CAAC,YAAY,0CAAE,WAAW,CAAC;oBACjE,SAAS,CAAC,MAAA,MAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,0CAAE,YAAY,0CAAE,IAAI,CAAC;oBAC7D,EAAE;aACL,CAAC,KACF,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IACvB,CAAA;SAAA,CAAC,CAAC;QACJ,IAAI,CAAC;YACH,KAAK,EAAE,UAAU;YACjB,SAAS,EAAE;gBACT,QAAQ,EAAE,KAAK;aAChB;SACF,CAAC,CAAC;IACL,CAAC;IACD,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC/B,IAAI,CAAC;YACH,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;QACxC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;;YAAC,OAAA,iCAC5C,cAAc,CAAC;gBAChB,OAAO;gBACP,iBAAiB,EAAE,IAAI;gBACvB,oBAAoB;gBACpB,gBAAgB;gBAChB,QAAQ,EACN,QAAQ;oBACR,yBAAyB,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,0CAAE,WAAW,CAAC;oBAC7D,SAAS,CAAC,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,0CAAE,YAAY,0CAAE,IAAI,CAAC;aAC5D,CAAC,KACF,KAAK,EAAE,MAAA,OAAO,CAAC,KAAK,0CAAE,MAAM,EAC5B,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,QAAQ,IACd,CAAA;SAAA,CAAC,CAAC;QACJ,IAAI,CAAC;YACH,KAAK,EAAE,aAAa;YACpB,SAAS,EAAE;gBACT,YAAY,EAAE,QAAQ;gBACtB,WAAW,EAAE,WAAW;aACzB;SACF,CAAC,CAAC;IACL,CAAC;IACD,eAAe,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE;QAC7B,IAAI,CAAC;YACH,UAAU,EAAE,GAAG,EAAE,IAAI,OAAO,EAAE;SAC/B,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,EAAE,MAAM,EAAE;QAClB,IAAI,CAAC;YACH,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IACD,UAAU;QACR,IAAI,CAAC;YACH,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;IACL,CAAC;IACD,aAAa;QACX,IAAI,CAAC;YACH,KAAK,EAAE,UAAU;SAClB,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE;QAC/C,IAAI,CAAC;YACH,KAAK,EAAE,eAAe;YACtB,aAAa;YACb,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
|
@@ -33,7 +33,7 @@ export const relewareTracker = (config) => ({
|
|
33
33
|
console.log('Error: Releware did not receive a valid cart to track');
|
34
34
|
return;
|
35
35
|
}
|
36
|
-
args.cart.items.map(item => track({ productId: item.product.id, logType: 'buy_item' }, config));
|
36
|
+
args.cart.items.map((item) => track({ productId: item.product.id, logType: 'buy_item' }, config));
|
37
37
|
}
|
38
38
|
});
|
39
39
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAQA,SAAS,KAAK,CAAC,OAAsB,EAAE,MAA+B;IACpE,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CACnE,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAC9D,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,OAAsB,EAAE,MAA+B;IAC3E,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAEhC,OAAO,6CAA6C,OAAO,CAAC,SAAS,kBAAkB,OAAO,CAAC,OAAO,QAAQ,OAAO,QAAQ,GAAG,EAAE,CAAC;AACrI,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAA+B,EAAW,EAAE,CAAC,CAAC;IAC5E,IAAI,EAAE,UAAU;IAChB,YAAY,CAAC,IAAI;QACf,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;YACxE,OAAO;SACR;QAED,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAEvC,QAAQ,IAAI,CAAC,MAAM,EAAE;YACnB,KAAK,MAAM;gBACT,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,qBAAqB;gBACxB,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE,MAAM,CAAC,CAAC;gBAC7D,MAAM;YACR,KAAK,KAAK;gBACR,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;gBACnD,MAAM;YACR;gBACE,OAAO,CAAC,GAAG,CAAC,uCAAuC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnE,MAAM;SACT;IACH,CAAC;IACD,iBAAiB,CAAC,IAAI;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAQA,SAAS,KAAK,CAAC,OAAsB,EAAE,MAA+B;IACpE,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CACnE,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAC9D,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,OAAsB,EAAE,MAA+B;IAC3E,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAEhC,OAAO,6CAA6C,OAAO,CAAC,SAAS,kBAAkB,OAAO,CAAC,OAAO,QAAQ,OAAO,QAAQ,GAAG,EAAE,CAAC;AACrI,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAA+B,EAAW,EAAE,CAAC,CAAC;IAC5E,IAAI,EAAE,UAAU;IAChB,YAAY,CAAC,IAAI;QACf,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;YACxE,OAAO;SACR;QAED,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAEvC,QAAQ,IAAI,CAAC,MAAM,EAAE;YACnB,KAAK,MAAM;gBACT,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,qBAAqB;gBACxB,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE,MAAM,CAAC,CAAC;gBAC7D,MAAM;YACR,KAAK,KAAK;gBACR,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;gBACnD,MAAM;YACR;gBACE,OAAO,CAAC,GAAG,CAAC,uCAAuC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnE,MAAM;SACT;IACH,CAAC;IACD,iBAAiB,CAAC,IAAI;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3B,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,CACnE,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function unSlugify(slug?: string): string;
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import logWarningInDev from '@jetshop/core/helpers/logWarningInDev';
|
2
|
+
export function unSlugify(slug) {
|
3
|
+
logWarningInDev(true, 'Update your queries to request "breadcrumbs" on routes, for improved performance');
|
4
|
+
if (slug) {
|
5
|
+
slug = slug
|
6
|
+
.split('-')
|
7
|
+
.map((part) => part.length > 0 ? part[0].toUpperCase() + part.substring(1) : '')
|
8
|
+
.join(' ');
|
9
|
+
slug =
|
10
|
+
'/' +
|
11
|
+
slug
|
12
|
+
.split('/')
|
13
|
+
.map((part) => part.length > 0 ? part[0].toUpperCase() + part.substring(1) : '')
|
14
|
+
.join('/');
|
15
|
+
}
|
16
|
+
return slug;
|
17
|
+
}
|
18
|
+
//# sourceMappingURL=unslugify.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"unslugify.js","sourceRoot":"","sources":["unslugify.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,uCAAuC,CAAC;AAEpE,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,eAAe,CACb,IAAI,EACJ,kFAAkF,CACnF,CAAC;IACF,IAAI,IAAI,EAAE;QACR,IAAI,GAAG,IAAI;aACR,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CACjE;aACA,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,IAAI;YACF,GAAG;gBACH,IAAI;qBACD,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CACjE;qBACA,IAAI,CAAC,GAAG,CAAC,CAAC;KAChB;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
@@ -15,13 +15,16 @@ export interface TrackProductProps {
|
|
15
15
|
index?: number;
|
16
16
|
/** The quantity of items added/removed from cart */
|
17
17
|
quantity?: number;
|
18
|
+
category: string;
|
18
19
|
}
|
19
20
|
export interface TrackCartProps {
|
20
21
|
cart: Cart;
|
22
|
+
callback?: (response?: Response) => void;
|
21
23
|
}
|
22
24
|
export interface TrackListProps {
|
23
25
|
listName: string;
|
24
26
|
products: Product[];
|
27
|
+
category: string;
|
25
28
|
}
|
26
29
|
export interface TrackPageProps {
|
27
30
|
pathname: string;
|
@@ -55,7 +58,7 @@ export interface InitOptions {
|
|
55
58
|
}
|
56
59
|
export interface BaseTrackingEvents {
|
57
60
|
trackProduct: (props: TrackProductProps, context: TrackingFunctionContext, eventId?: string) => void;
|
58
|
-
trackCartCheckout: (props: TrackCartProps, context: TrackingFunctionContext, eventId?: string) => void;
|
61
|
+
trackCartCheckout: (props: TrackCartProps, context: TrackingFunctionContext, eventId?: string, callback?: (response: Response) => void) => void;
|
59
62
|
trackCart: (props: TrackCartProps, context: TrackingFunctionContext, eventId?: string) => void;
|
60
63
|
trackList: (props: TrackListProps, context: TrackingFunctionContext, eventId?: string) => void;
|
61
64
|
trackPageView: (props: TrackPageProps, context: TrackingFunctionContext, eventId?: string) => void;
|
@@ -78,7 +81,7 @@ export interface TrackerRegistry {
|
|
78
81
|
on<E extends keyof TrackingEvents>(event: E, args: TrackingEvents[E], opts?: {
|
79
82
|
name?: string;
|
80
83
|
}): void;
|
81
|
-
emit<E extends keyof TrackingEvents>(event: E, props: any, context: TrackingFunctionContext, eventId?: string):
|
84
|
+
emit<E extends keyof TrackingEvents>(event: E, props: any, context: TrackingFunctionContext, eventId?: string): boolean;
|
82
85
|
/**
|
83
86
|
* Add `Tracker` to registry.
|
84
87
|
* - Auto-binds built-in events (see `TrackingEvents`)
|
@@ -86,9 +89,11 @@ export interface TrackerRegistry {
|
|
86
89
|
*/
|
87
90
|
add: (tracker: Tracker) => void;
|
88
91
|
}
|
89
|
-
export declare function createServerTracker({ currency, useArticleNumberAsId }: {
|
92
|
+
export declare function createServerTracker({ currency, useArticleNumberAsId, pixelId, token }: {
|
90
93
|
currency: string;
|
91
94
|
useArticleNumberAsId: boolean;
|
95
|
+
pixelId?: string;
|
96
|
+
token?: string;
|
92
97
|
}): Tracker;
|
93
98
|
export declare function trackerRegistry({ config, inServer }: {
|
94
99
|
config: AnalyticsConfig;
|
@@ -1,3 +1,12 @@
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
+
});
|
9
|
+
};
|
1
10
|
import eventemitter3 from 'eventemitter3';
|
2
11
|
export const trackingEvents = [
|
3
12
|
'trackProduct',
|
@@ -11,10 +20,12 @@ export const trackingEvents = [
|
|
11
20
|
'trackRegister',
|
12
21
|
'trackAddToWishList'
|
13
22
|
];
|
14
|
-
export function createServerTracker({ currency, useArticleNumberAsId }) {
|
23
|
+
export function createServerTracker({ currency, useArticleNumberAsId, pixelId, token }) {
|
15
24
|
const defaults = {
|
16
25
|
useArticleNumberAsId,
|
17
|
-
currency
|
26
|
+
currency,
|
27
|
+
pixelId,
|
28
|
+
token
|
18
29
|
};
|
19
30
|
const serverTracker = {
|
20
31
|
name: 'server',
|
@@ -30,14 +41,20 @@ export function createServerTracker({ currency, useArticleNumberAsId }) {
|
|
30
41
|
});
|
31
42
|
},
|
32
43
|
trackCartCheckout(props, context, eventId) {
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
45
|
+
try {
|
46
|
+
const response = yield fetch(`/_event?event=trackCartCheckout`, {
|
47
|
+
method: 'POST',
|
48
|
+
headers: {
|
49
|
+
'Content-Type': 'application/json'
|
50
|
+
},
|
51
|
+
body: JSON.stringify(Object.assign(Object.assign({}, defaults), { eventId, props: { cart: props.cart }, context, location: window.location.href }))
|
52
|
+
});
|
53
|
+
props.callback(response);
|
54
|
+
}
|
55
|
+
catch (error) {
|
56
|
+
props.callback(error);
|
57
|
+
}
|
41
58
|
});
|
42
59
|
},
|
43
60
|
trackCart(props, context, eventId) {
|
@@ -143,19 +160,19 @@ export function trackerRegistry({ config, inServer }) {
|
|
143
160
|
const events = new eventemitter3();
|
144
161
|
const registry = {
|
145
162
|
on(event, listeners, { name } = {}) {
|
146
|
-
return events.on(event, (...args) => {
|
163
|
+
return events.on(event.toString(), (...args) => __awaiter(this, void 0, void 0, function* () {
|
147
164
|
try {
|
148
|
-
listeners.apply(this, args);
|
165
|
+
return yield listeners.apply(this, args);
|
149
166
|
}
|
150
167
|
catch (err) {
|
151
168
|
console.error(`Error triggering ${event}:${name}`, {
|
152
169
|
err
|
153
170
|
});
|
154
171
|
}
|
155
|
-
});
|
172
|
+
}));
|
156
173
|
},
|
157
174
|
emit(event, props, context, eventId) {
|
158
|
-
return events.emit(event, props, context, eventId);
|
175
|
+
return events.emit(event.toString(), props, context, eventId);
|
159
176
|
},
|
160
177
|
add(tracker) {
|
161
178
|
if (trackers.find(({ name }) => name === tracker.name)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"trackerRegistry.js","sourceRoot":"","sources":["trackerRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,MAAM,eAAe,CAAC;
|
1
|
+
{"version":3,"file":"trackerRegistry.js","sourceRoot":"","sources":["trackerRegistry.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function breadcrumbsWithoutProduct(breadcrumbs?: string[]): string;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"breadcrumbsWithoutProduct.js","sourceRoot":"","sources":["breadcrumbsWithoutProduct.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,yBAAyB,CAAC,WAAsB;IAC9D,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE;QACrC,OAAO,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACjD;SAAM;QACL,OAAO,EAAE,CAAC;KACX;AACH,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"PreviewHandler.js","sourceRoot":"","sources":["PreviewHandler.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAc;IAA3B;QACE,YAAO,
|
1
|
+
{"version":3,"file":"PreviewHandler.js","sourceRoot":"","sources":["PreviewHandler.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAc;IAA3B;QACE,YAAO,GAAG,KAAK,CAAC;QAEhB,eAAU,GAAG,CAAC,UAAmB,EAAE,EAAE;YACnC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;QAC5B,CAAC,CAAC;QAEF,sBAAiB,GAAG,GAAG,EAAE;YACvB,OAAO;gBACL,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA"}
|
package/boot/SharedTree.js
CHANGED
@@ -19,7 +19,7 @@ const SharedTree = ({ activeBreakpoint, cookies, helmetContext, releware, client
|
|
19
19
|
React.createElement(HelmetProvider, { context: helmetContext },
|
20
20
|
React.createElement(BreakpointProvider, { value: activeBreakpoint },
|
21
21
|
React.createElement(ApolloProvider, { client: client },
|
22
|
-
React.createElement(ChannelProvider, { config: config,
|
22
|
+
React.createElement(ChannelProvider, { config: config, channelHandler: channelHandler },
|
23
23
|
React.createElement(AnalyticsProvider, { releware: releware },
|
24
24
|
React.createElement(PreviewProvider, { previewHandler: previewHandler },
|
25
25
|
React.createElement(Router, Object.assign({ basename: channelHandler.getChannelBasename() || undefined }, routerProps),
|
package/boot/SharedTree.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SharedTree.js","sourceRoot":"","sources":["SharedTree.tsx"],"names":[],"mappings":"AAAA,OAAO,iBAEN,MAAM,2CAA2C,CAAC;AAEnD,OAAO,KAAuB,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,UAAU;AACV,OAAO,EAAW,eAAe,EAAE,MAAM,cAAc,CAAC;AACxD,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,YAAY,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAe,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAgBpE,MAAM,UAAU,GAAG,CAAC,EAClB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAW,EACX,MAAM,EACN,WAAW,EACX,QAAQ,EACR,cAAc,EACd,cAAc,EACE,EAAgB,EAAE;IAClC,OAAO,CACL,oBAAC,cAAc,IAAC,MAAM,EAAE,MAAM;QAC5B,oBAAC,qBAAqB;YACpB,oBAAC,eAAe,IAAC,OAAO,EAAE,OAAO;gBAC/B,oBAAC,cAAc,IAAC,OAAO,EAAE,aAAa;oBACpC,oBAAC,kBAAkB,IAAC,KAAK,EAAE,gBAAgB;wBACzC,oBAAC,cAAc,IAAC,MAAM,EAAE,MAAM;4BAC5B,oBAAC,eAAe,IACd,MAAM,EAAE,MAAM,EACd,
|
1
|
+
{"version":3,"file":"SharedTree.js","sourceRoot":"","sources":["SharedTree.tsx"],"names":[],"mappings":"AAAA,OAAO,iBAEN,MAAM,2CAA2C,CAAC;AAEnD,OAAO,KAAuB,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,UAAU;AACV,OAAO,EAAW,eAAe,EAAE,MAAM,cAAc,CAAC;AACxD,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,YAAY,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAe,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAgBpE,MAAM,UAAU,GAAG,CAAC,EAClB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAW,EACX,MAAM,EACN,WAAW,EACX,QAAQ,EACR,cAAc,EACd,cAAc,EACE,EAAgB,EAAE;IAClC,OAAO,CACL,oBAAC,cAAc,IAAC,MAAM,EAAE,MAAM;QAC5B,oBAAC,qBAAqB;YACpB,oBAAC,eAAe,IAAC,OAAO,EAAE,OAAO;gBAC/B,oBAAC,cAAc,IAAC,OAAO,EAAE,aAAa;oBACpC,oBAAC,kBAAkB,IAAC,KAAK,EAAE,gBAAgB;wBACzC,oBAAC,cAAc,IAAC,MAAM,EAAE,MAAM;4BAC5B,oBAAC,eAAe,IACd,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc;gCAE9B,oBAAC,iBAAiB,IAAC,QAAQ,EAAE,QAAQ;oCACnC,oBAAC,eAAe,IAAC,cAAc,EAAE,cAAc;wCAC7C,oBAAC,MAAM,kBACL,QAAQ,EACN,cAAc,CAAC,kBAAkB,EAAE,IAAI,SAAS,IAE9C,WAAW;4CAEf,oBAAC,YAAY,IAAC,IAAI,EAAE,WAAW,IAC5B,QAAQ,CACI,CACR,CACO,CACA,CACJ,CACH,CACE,CACN,CACD,CACI,CACT,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
package/boot/apollo.d.ts
CHANGED
@@ -2,18 +2,20 @@ import { NormalizedCacheObject } from 'apollo-cache-inmemory';
|
|
2
2
|
import { ApolloClient } from 'apollo-client';
|
3
3
|
import { Request } from 'express';
|
4
4
|
import { GraphQLSchema } from 'graphql';
|
5
|
-
import { ChannelHandler } from '../ChannelHandler/ChannelHandler';
|
6
5
|
import { ApolloConfig } from '../components/ConfigProvider';
|
7
6
|
import { AuthHandler } from './AuthHandler';
|
8
7
|
import { PreviewHandler } from './PreviewHandler';
|
8
|
+
import { SelectedChannel } from '../components/ChannelContext/ChannelContext';
|
9
|
+
import { ChannelHandler } from '../ChannelHandler/ChannelHandler';
|
9
10
|
export interface CreateClientOpts {
|
10
11
|
apolloConfig: ApolloConfig;
|
11
12
|
schema?: GraphQLSchema;
|
12
13
|
authHandler?: AuthHandler;
|
13
|
-
|
14
|
+
selectedChannel?: SelectedChannel;
|
14
15
|
previewHandler?: PreviewHandler;
|
15
16
|
req?: Request;
|
17
|
+
channelHandler?: ChannelHandler;
|
16
18
|
}
|
17
|
-
export declare const createClient: ({ apolloConfig: { token, shopid, enableGateway, graphQLURI, useGraphQLProxyServer }, schema, authHandler,
|
19
|
+
export declare const createClient: ({ apolloConfig: { token, shopid, enableGateway, graphQLURI, useGraphQLProxyServer }, schema, authHandler, previewHandler, req, channelHandler }: CreateClientOpts) => {
|
18
20
|
client: ApolloClient<NormalizedCacheObject>;
|
19
21
|
};
|
package/boot/apollo.js
CHANGED
@@ -22,13 +22,10 @@ import { resolvers } from '../resolvers';
|
|
22
22
|
import typeDefs from './client-schema.gql';
|
23
23
|
import { logOperationTime } from './utils/queryLoggingMiddleware';
|
24
24
|
import { link as networkStatusLink } from '@jetshop/ui/Loading/NetworkStatusNotifier';
|
25
|
-
export const createClient = ({ apolloConfig: { token, shopid, enableGateway, graphQLURI, useGraphQLProxyServer }, schema, authHandler,
|
25
|
+
export const createClient = ({ apolloConfig: { token, shopid, enableGateway, graphQLURI, useGraphQLProxyServer }, schema, authHandler, previewHandler, req, channelHandler }) => {
|
26
26
|
if (!token || !shopid) {
|
27
27
|
throw new Error(`Missing ${!token && `token`} ${!shopid && `shopid`}`);
|
28
28
|
}
|
29
|
-
const channelHeaders = channelHandler
|
30
|
-
? channelHandler.getChannelHeaders()
|
31
|
-
: {};
|
32
29
|
const authHeaders = authHandler ? authHandler.getAuthHeaders() : {};
|
33
30
|
const previewHeaders = previewHandler
|
34
31
|
? previewHandler.getPreviewHeaders()
|
@@ -48,7 +45,7 @@ export const createClient = ({ apolloConfig: { token, shopid, enableGateway, gra
|
|
48
45
|
? new SchemaLink({
|
49
46
|
schema,
|
50
47
|
context: {
|
51
|
-
headers: Object.assign(Object.assign(Object.assign({},
|
48
|
+
headers: Object.assign(Object.assign(Object.assign({}, ((channelHandler === null || channelHandler === void 0 ? void 0 : channelHandler.getChannelHeaders()) || {})), authHeaders), previewHeaders)
|
52
49
|
}
|
53
50
|
})
|
54
51
|
: createHttpLink({
|
@@ -94,14 +91,13 @@ export const createClient = ({ apolloConfig: { token, shopid, enableGateway, gra
|
|
94
91
|
: enableGateway
|
95
92
|
? createGatewayLink()
|
96
93
|
: createDirectLink();
|
97
|
-
const channelMiddleware =
|
98
|
-
new
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
});
|
94
|
+
const channelMiddleware = new ApolloLink((operation, forward) => {
|
95
|
+
// Sets the current channel before each new HTTP request is made
|
96
|
+
operation.setContext(({ headers = {} }) => ({
|
97
|
+
headers: Object.assign(Object.assign({}, headers), ((channelHandler === null || channelHandler === void 0 ? void 0 : channelHandler.getChannelHeaders()) || {}))
|
98
|
+
}));
|
99
|
+
return forward ? forward(operation) : null;
|
100
|
+
});
|
105
101
|
const authMiddleware = authHandler &&
|
106
102
|
new ApolloLink((operation, forward) => {
|
107
103
|
// Sets the auth token when a new request is made
|