@faststore/core 2.1.102 → 2.1.104

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/package.json +2 -2
  2. package/src/pages/[...slug].tsx +1 -0
  3. package/src/pages/[slug]/p.tsx +1 -0
  4. package/.next/BUILD_ID +0 -1
  5. package/.next/build-manifest.json +0 -126
  6. package/.next/cache/.tsbuildinfo +0 -1
  7. package/.next/cache/config.json +0 -7
  8. package/.next/cache/eslint/.cache_1gneedd +0 -1
  9. package/.next/cache/next-server.js.nft.json +0 -1
  10. package/.next/cache/webpack/client-production/0.pack +0 -0
  11. package/.next/cache/webpack/client-production/index.pack +0 -0
  12. package/.next/cache/webpack/server-production/0.pack +0 -0
  13. package/.next/cache/webpack/server-production/index.pack +0 -0
  14. package/.next/export-marker.json +0 -1
  15. package/.next/images-manifest.json +0 -1
  16. package/.next/next-server.js.nft.json +0 -1
  17. package/.next/package.json +0 -1
  18. package/.next/prerender-manifest.json +0 -1
  19. package/.next/react-loadable-manifest.json +0 -47
  20. package/.next/required-server-files.json +0 -1
  21. package/.next/routes-manifest.json +0 -1
  22. package/.next/server/chunks/177.js +0 -120
  23. package/.next/server/chunks/183.js +0 -95
  24. package/.next/server/chunks/184.js +0 -61
  25. package/.next/server/chunks/289.js +0 -237
  26. package/.next/server/chunks/312.js +0 -677
  27. package/.next/server/chunks/350.js +0 -143
  28. package/.next/server/chunks/37.js +0 -609
  29. package/.next/server/chunks/386.js +0 -200
  30. package/.next/server/chunks/387.js +0 -505
  31. package/.next/server/chunks/388.js +0 -1700
  32. package/.next/server/chunks/473.js +0 -514
  33. package/.next/server/chunks/487.js +0 -9142
  34. package/.next/server/chunks/53.js +0 -61
  35. package/.next/server/chunks/574.js +0 -145
  36. package/.next/server/chunks/576.js +0 -95
  37. package/.next/server/chunks/585.js +0 -640
  38. package/.next/server/chunks/650.js +0 -9142
  39. package/.next/server/chunks/676.js +0 -32
  40. package/.next/server/chunks/692.js +0 -111
  41. package/.next/server/chunks/693.js +0 -58
  42. package/.next/server/chunks/74.js +0 -3966
  43. package/.next/server/chunks/779.js +0 -58
  44. package/.next/server/chunks/825.js +0 -4039
  45. package/.next/server/chunks/854.js +0 -72
  46. package/.next/server/chunks/859.js +0 -959
  47. package/.next/server/chunks/897.js +0 -1247
  48. package/.next/server/chunks/98.js +0 -163
  49. package/.next/server/chunks/988.js +0 -211
  50. package/.next/server/chunks/font-manifest.json +0 -1
  51. package/.next/server/font-manifest.json +0 -1
  52. package/.next/server/middleware-build-manifest.js +0 -1
  53. package/.next/server/middleware-manifest.json +0 -6
  54. package/.next/server/middleware-react-loadable-manifest.js +0 -1
  55. package/.next/server/pages/404.js +0 -386
  56. package/.next/server/pages/404.js.nft.json +0 -1
  57. package/.next/server/pages/500.js +0 -388
  58. package/.next/server/pages/500.js.nft.json +0 -1
  59. package/.next/server/pages/[...slug].js +0 -953
  60. package/.next/server/pages/[...slug].js.nft.json +0 -1
  61. package/.next/server/pages/[slug]/p.js +0 -2262
  62. package/.next/server/pages/[slug]/p.js.nft.json +0 -1
  63. package/.next/server/pages/_app.js +0 -278
  64. package/.next/server/pages/_app.js.nft.json +0 -1
  65. package/.next/server/pages/_document.js +0 -358
  66. package/.next/server/pages/_document.js.nft.json +0 -1
  67. package/.next/server/pages/_error.js +0 -164
  68. package/.next/server/pages/_error.js.nft.json +0 -1
  69. package/.next/server/pages/account.js +0 -363
  70. package/.next/server/pages/account.js.nft.json +0 -1
  71. package/.next/server/pages/api/graphql.js +0 -365
  72. package/.next/server/pages/api/graphql.js.nft.json +0 -1
  73. package/.next/server/pages/api/health/live.js +0 -31
  74. package/.next/server/pages/api/health/live.js.nft.json +0 -1
  75. package/.next/server/pages/api/health/ready.js +0 -31
  76. package/.next/server/pages/api/health/ready.js.nft.json +0 -1
  77. package/.next/server/pages/api/preview.js +0 -130
  78. package/.next/server/pages/api/preview.js.nft.json +0 -1
  79. package/.next/server/pages/checkout.js +0 -363
  80. package/.next/server/pages/checkout.js.nft.json +0 -1
  81. package/.next/server/pages/en-US/404.html +0 -81
  82. package/.next/server/pages/en-US/404.json +0 -1
  83. package/.next/server/pages/en-US/500.html +0 -81
  84. package/.next/server/pages/en-US/500.json +0 -1
  85. package/.next/server/pages/en-US/account.html +0 -81
  86. package/.next/server/pages/en-US/account.json +0 -1
  87. package/.next/server/pages/en-US/checkout.html +0 -81
  88. package/.next/server/pages/en-US/checkout.json +0 -1
  89. package/.next/server/pages/en-US/login.html +0 -81
  90. package/.next/server/pages/en-US/login.json +0 -1
  91. package/.next/server/pages/en-US/s.html +0 -81
  92. package/.next/server/pages/en-US/s.json +0 -1
  93. package/.next/server/pages/en-US.html +0 -90
  94. package/.next/server/pages/en-US.json +0 -1
  95. package/.next/server/pages/index.js +0 -432
  96. package/.next/server/pages/index.js.nft.json +0 -1
  97. package/.next/server/pages/login.js +0 -368
  98. package/.next/server/pages/login.js.nft.json +0 -1
  99. package/.next/server/pages/s.js +0 -466
  100. package/.next/server/pages/s.js.nft.json +0 -1
  101. package/.next/server/pages-manifest.json +0 -18
  102. package/.next/server/webpack-api-runtime.js +0 -229
  103. package/.next/server/webpack-runtime.js +0 -229
  104. package/.next/static/chunks/251.47f06fb688ea42d1.js +0 -1
  105. package/.next/static/chunks/383-c300b4a6b9b73189.js +0 -1
  106. package/.next/static/chunks/386.d01e0db26c523f0f.js +0 -1
  107. package/.next/static/chunks/438-a795db53afaf383d.js +0 -1
  108. package/.next/static/chunks/574.70612be06fd1365f.js +0 -1
  109. package/.next/static/chunks/585.3350efefe61c9461.js +0 -1
  110. package/.next/static/chunks/651.7142f31ce1e052b3.js +0 -1
  111. package/.next/static/chunks/666-930ab26848a94a5b.js +0 -1
  112. package/.next/static/chunks/741.52f7fb873418346f.js +0 -1
  113. package/.next/static/chunks/783-ded9d8cda0d5c8d9.js +0 -1
  114. package/.next/static/chunks/800.aab3d4f1576b290a.js +0 -1
  115. package/.next/static/chunks/98.40c7e17d9de4eb8f.js +0 -1
  116. package/.next/static/chunks/988.afda042dd9ba11d1.js +0 -1
  117. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +0 -1
  118. package/.next/static/chunks/main-fd466221927468fd.js +0 -1
  119. package/.next/static/chunks/pages/404-6c674028b2f80cbb.js +0 -1
  120. package/.next/static/chunks/pages/500-ff55de77265a7e43.js +0 -1
  121. package/.next/static/chunks/pages/[...slug]-8677aea289ea744c.js +0 -1
  122. package/.next/static/chunks/pages/[slug]/p-bd8bc0dc990926db.js +0 -1
  123. package/.next/static/chunks/pages/_app-7db7de3d205714be.js +0 -1
  124. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +0 -1
  125. package/.next/static/chunks/pages/account-b06035cba2c99604.js +0 -1
  126. package/.next/static/chunks/pages/checkout-f0c3e8d691cb8a54.js +0 -1
  127. package/.next/static/chunks/pages/index-cef00c688675a75c.js +0 -1
  128. package/.next/static/chunks/pages/login-4e0e6cab7a07f1f3.js +0 -1
  129. package/.next/static/chunks/pages/s-8bc74f787941260d.js +0 -1
  130. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  131. package/.next/static/chunks/webpack-683380d7d78e10c6.js +0 -1
  132. package/.next/static/css/1b48021b9c503e72.css +0 -1
  133. package/.next/static/css/527e334fa69cf40a.css +0 -1
  134. package/.next/static/css/6a7fdc5a21fbead5.css +0 -1
  135. package/.next/static/css/6e1a7434f061d0ef.css +0 -1
  136. package/.next/static/css/723835bce380750d.css +0 -1
  137. package/.next/static/css/8f93a4630936c20b.css +0 -1
  138. package/.next/static/css/9e76fef1c9ca89af.css +0 -1
  139. package/.next/static/css/a2eefb25a4608343.css +0 -1
  140. package/.next/static/css/cb7d1fcea42fab9c.css +0 -1
  141. package/.next/static/css/df588bb98c0b0ca6.css +0 -1
  142. package/.next/static/css/fd27ecc37832aa54.css +0 -1
  143. package/.next/static/ofbKk88d35plIgjMgCFBr/_buildManifest.js +0 -1
  144. package/.next/static/ofbKk88d35plIgjMgCFBr/_ssgManifest.js +0 -1
  145. package/.next/trace +0 -77
  146. package/public/~partytown/debug/partytown-atomics.js +0 -556
  147. package/public/~partytown/debug/partytown-media.js +0 -374
  148. package/public/~partytown/debug/partytown-sandbox-sw.js +0 -543
  149. package/public/~partytown/debug/partytown-sw.js +0 -59
  150. package/public/~partytown/debug/partytown-ww-atomics.js +0 -1789
  151. package/public/~partytown/debug/partytown-ww-sw.js +0 -1781
  152. package/public/~partytown/debug/partytown.js +0 -72
  153. package/public/~partytown/partytown-atomics.js +0 -2
  154. package/public/~partytown/partytown-media.js +0 -2
  155. package/public/~partytown/partytown-sw.js +0 -2
  156. package/public/~partytown/partytown.js +0 -2
@@ -1,2262 +0,0 @@
1
- (() => {
2
- var exports = {};
3
- exports.id = 103;
4
- exports.ids = [103];
5
- exports.modules = {
6
-
7
- /***/ 72951:
8
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
9
-
10
- "use strict";
11
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
12
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
14
- /* harmony export */ });
15
- /* harmony import */ var src_components_sections_BannerText__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(68824);
16
- /* harmony import */ var src_components_sections_Newsletter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(68170);
17
- /* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13271);
18
- /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5411);
19
- /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_2__);
20
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
21
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
22
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_sections_Newsletter__WEBPACK_IMPORTED_MODULE_4__]);
23
- src_components_sections_Newsletter__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
- function BannerNewsletter({
32
- banner,
33
- newsletter
34
- }) {
35
- return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Section__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
36
- className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_2___default().section)} section-banner-newsletter`,
37
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
38
- "data-fs-banner-text-newsletter": true,
39
- "data-fs-content": "banner-newsletter",
40
- children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(src_components_sections_BannerText__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
41
- title: banner.title,
42
- caption: banner.caption,
43
- link: banner?.link,
44
- variant: banner.variant,
45
- colorVariant: banner.colorVariant
46
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(src_components_sections_Newsletter__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
47
- title: newsletter.title,
48
- description: newsletter.description,
49
- icon: newsletter.icon,
50
- privacyPolicy: newsletter.privacyPolicy,
51
- emailInputLabel: newsletter.emailInputLabel,
52
- displayNameInput: newsletter.displayNameInput,
53
- nameInputLabel: newsletter.nameInputLabel,
54
- subscribeButtonLabel: newsletter.subscribeButtonLabel,
55
- toastSubscribe: newsletter.toastSubscribe,
56
- toastSubscribeError: newsletter.toastSubscribeError,
57
- card: newsletter.card
58
- })]
59
- })
60
- });
61
- }
62
-
63
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (BannerNewsletter);
64
- __webpack_async_result__();
65
- } catch(e) { __webpack_async_result__(e); } });
66
-
67
- /***/ }),
68
-
69
- /***/ 30994:
70
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
71
-
72
- "use strict";
73
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
74
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
75
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
76
- /* harmony export */ });
77
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
78
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
79
- /* harmony import */ var src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77691);
80
- /* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19785);
81
- /* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__);
82
- /* harmony import */ var _ProductShelf_section_module_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(56627);
83
- /* harmony import */ var _ProductShelf_section_module_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_ProductShelf_section_module_scss__WEBPACK_IMPORTED_MODULE_4__);
84
- /* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13271);
85
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20997);
86
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__);
87
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_5__]);
88
- src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_5__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
89
-
90
-
91
-
92
-
93
-
94
-
95
-
96
- const CrossSellingShelf = ({
97
- items,
98
- title,
99
- context,
100
- kind
101
- }) => {
102
- const {
103
- ref,
104
- inView
105
- } = (0,react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__.useInView)();
106
- const selectedFacets = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => [{
107
- key: kind,
108
- value: context.isVariantOf.productGroupID
109
- }], [kind, context.isVariantOf.productGroupID]);
110
- return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(_Section__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
111
- className: `${(_ProductShelf_section_module_scss__WEBPACK_IMPORTED_MODULE_4___default().section)} section-product-shelf layout__section`,
112
- ref: ref,
113
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
114
- inView: inView,
115
- first: items,
116
- title: title,
117
- selectedFacets: selectedFacets
118
- })
119
- });
120
- };
121
-
122
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CrossSellingShelf);
123
- __webpack_async_result__();
124
- } catch(e) { __webpack_async_result__(e); } });
125
-
126
- /***/ }),
127
-
128
- /***/ 55006:
129
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
130
-
131
- "use strict";
132
-
133
- // EXPORTS
134
- __webpack_require__.d(__webpack_exports__, {
135
- "lo": () => (/* binding */ Overrides_BuyButton),
136
- "FU": () => (/* binding */ Overrides_DiscountBadge),
137
- "JO": () => (/* binding */ Overrides_Icon),
138
- "hJ": () => (/* binding */ Overrides_ImageGallery),
139
- "Sl": () => (/* binding */ Overrides_ImageGalleryViewer),
140
- "tA": () => (/* binding */ Overrides_Price),
141
- "tc": () => (/* binding */ Overrides_ProductTitle),
142
- "cw": () => (/* binding */ Overrides_QuantitySelector),
143
- "CT": () => (/* binding */ Overrides_ShippingSimulation),
144
- "Ol": () => (/* binding */ Overrides_SkuSelector),
145
- "Pk": () => (/* binding */ __experimentalImageGallery),
146
- "d_": () => (/* binding */ __experimentalImageGalleryImage),
147
- "fX": () => (/* binding */ __experimentalNotAvailableButton),
148
- "iQ": () => (/* binding */ __experimentalShippingSimulation)
149
- });
150
-
151
- // EXTERNAL MODULE: external "react"
152
- var external_react_ = __webpack_require__(16689);
153
- var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
154
- // EXTERNAL MODULE: ../components/dist/esm/molecules/Rating/Rating.js
155
- var Rating = __webpack_require__(13024);
156
- ;// CONCATENATED MODULE: ../components/dist/esm/molecules/ProductTitle/ProductTitle.js
157
-
158
-
159
- const ProductTitle = (0,external_react_.forwardRef)(function ProductTitle({ title, label, refTag = 'Ref.: ', refNumber, testId = 'fs-product-title', ratingValue, ...otherProps }, ref) {
160
- return (external_react_default().createElement("header", { ref: ref, "data-fs-product-title": true, "data-testid": testId, ...otherProps },
161
- external_react_default().createElement("div", { "data-fs-product-title-header": true },
162
- title,
163
- !!label && label),
164
- (refNumber || ratingValue) && (external_react_default().createElement("div", { "data-fs-product-title-addendum": true },
165
- ratingValue && external_react_default().createElement(Rating/* default */.Z, { value: ratingValue }),
166
- refNumber && (external_react_default().createElement((external_react_default()).Fragment, null,
167
- refTag,
168
- " ",
169
- refNumber))))));
170
- });
171
- /* harmony default export */ const ProductTitle_ProductTitle = (ProductTitle);
172
- //# sourceMappingURL=ProductTitle.js.map
173
- // EXTERNAL MODULE: ../components/dist/esm/molecules/DiscountBadge/DiscountBadge.js + 1 modules
174
- var DiscountBadge = __webpack_require__(2946);
175
- // EXTERNAL MODULE: ../components/dist/esm/atoms/Button/Button.js
176
- var Button = __webpack_require__(83339);
177
- ;// CONCATENATED MODULE: ../components/dist/esm/molecules/BuyButton/BuyButton.js
178
-
179
-
180
- function BuyButton({ testId = 'fs-buy-button', icon, children, ...otherProps }) {
181
- return (external_react_default().createElement(Button/* default */.Z, { "data-fs-buy-button": true, icon: icon, iconPosition: "left", "data-testid": testId, ...otherProps }, children));
182
- }
183
- /* harmony default export */ const BuyButton_BuyButton = (BuyButton);
184
- //# sourceMappingURL=BuyButton.js.map
185
- // EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
186
- var Icon = __webpack_require__(2614);
187
- // EXTERNAL MODULE: ../components/dist/esm/atoms/Price/Price.js
188
- var Price = __webpack_require__(99767);
189
- // EXTERNAL MODULE: ../components/dist/esm/molecules/QuantitySelector/QuantitySelector.js
190
- var QuantitySelector = __webpack_require__(6693);
191
- // EXTERNAL MODULE: ../components/dist/esm/atoms/Label/Label.js
192
- var Label = __webpack_require__(31953);
193
- // EXTERNAL MODULE: ../components/dist/esm/atoms/Link/Link.js
194
- var Link = __webpack_require__(40727);
195
- // EXTERNAL MODULE: ../components/dist/esm/atoms/SROnly/SROnly.js
196
- var SROnly = __webpack_require__(55450);
197
- ;// CONCATENATED MODULE: ../components/dist/esm/molecules/SkuSelector/useDefineVariant.js
198
-
199
- const getImageName = (src) => {
200
- const sourcePath = new URL(src).pathname;
201
- const imageName = sourcePath.split('/').slice(-1)[0];
202
- return imageName;
203
- };
204
- const useDefineVariant = (options, variant) => (0,external_react_.useMemo)(() => {
205
- if (variant)
206
- return variant;
207
- const allOptionsHaveHexColor = options.every((option) => option.hexColor);
208
- if (allOptionsHaveHexColor) {
209
- return 'color';
210
- }
211
- const firstImageName = options[0]?.src && getImageName(options[0].src);
212
- const areSourcesEqualsOrNull = options.every((option) => {
213
- if (!option.src) {
214
- return true;
215
- }
216
- const optionImageName = getImageName(option.src);
217
- return optionImageName === firstImageName;
218
- });
219
- if (!areSourcesEqualsOrNull) {
220
- return 'image';
221
- }
222
- return 'label';
223
- }, [options, variant]);
224
- //# sourceMappingURL=useDefineVariant.js.map
225
- ;// CONCATENATED MODULE: ../components/dist/esm/molecules/SkuSelector/useSkuSlug.js
226
-
227
- function getSkuSlug(slugsMap, selectedVariations, dominantVariation) {
228
- const slugsMapKey = Object.entries(selectedVariations).flat().join('-');
229
- if (slugsMapKey in slugsMap) {
230
- return slugsMap[slugsMapKey];
231
- }
232
- const possibleVariants = Object.keys(slugsMap);
233
- const firstVariationForDominantValue = possibleVariants.find((slug) => slug.includes(`${dominantVariation}-${selectedVariations[dominantVariation]}`));
234
- return slugsMap[firstVariationForDominantValue ?? possibleVariants[0]];
235
- }
236
- const useSkuSlug = (activeVariations, slugsMap, skuPropertyName, getItemHrefProp) => {
237
- const getItemHref = (0,external_react_.useCallback)((option) => {
238
- if (getItemHrefProp)
239
- return { getItemHrefProp };
240
- const currentItemHref = `/${getSkuSlug(slugsMap, {
241
- ...activeVariations,
242
- [skuPropertyName]: option.value,
243
- }, skuPropertyName)}/p`;
244
- return currentItemHref;
245
- }, [activeVariations, getItemHrefProp, slugsMap, skuPropertyName]);
246
- return { getItemHref };
247
- };
248
- //# sourceMappingURL=useSkuSlug.js.map
249
- ;// CONCATENATED MODULE: ../components/dist/esm/molecules/SkuSelector/SkuSelector.js
250
-
251
-
252
-
253
-
254
- // TODO: Change by ImageComponent when it be right
255
- const ImageComponentFallback = ({ src, alt, ...otherProps }) => external_react_default().createElement("img", { src: src, alt: alt, ...otherProps });
256
- const SkuSelector = (0,external_react_.forwardRef)(function SkuSelector({ availableVariations, skuPropertyName, testId, activeVariations, linkProps, slugsMap, getItemHref: getItemHrefProp, ImageComponent = ImageComponentFallback, variant: variantProp, ...otherProps }, ref) {
257
- const activeSelectorValue = activeVariations[skuPropertyName];
258
- const options = availableVariations[skuPropertyName];
259
- const variant = useDefineVariant(options, variantProp);
260
- const { getItemHref } = useSkuSlug(activeVariations, slugsMap, skuPropertyName, getItemHrefProp);
261
- return (external_react_default().createElement("div", { ref: ref, "data-fs-sku-selector": true, "data-testid": testId, "data-fs-sku-selector-variant": variant, ...otherProps },
262
- skuPropertyName && (external_react_default().createElement(Label/* default */.Z, { "data-fs-sku-selector-title": true },
263
- skuPropertyName,
264
- ": ",
265
- external_react_default().createElement("strong", null, activeSelectorValue))),
266
- external_react_default().createElement("ul", { "data-fs-sku-selector-list": true }, options.map((option, index) => {
267
- return (external_react_default().createElement("li", { key: String(index), title: option.label, "data-fs-sku-selector-option": true, "data-fs-sku-selector-disabled": option.disabled, "data-fs-sku-selector-checked": option.value === activeVariations[skuPropertyName] },
268
- external_react_default().createElement(Link/* default */.Z, { "data-fs-sku-selector-option-link": true, href: getItemHref(option), ...linkProps },
269
- external_react_default().createElement(SROnly/* default */.Z, { text: option.label })),
270
- variant === 'label' && external_react_default().createElement("span", null, option.value),
271
- variant === 'image' && ImageComponent && (external_react_default().createElement("span", null,
272
- external_react_default().createElement(ImageComponent, { src: option.src ?? '', alt: option.alt ?? '', "data-fs-sku-selector-option-image": true }))),
273
- variant === 'color' && (external_react_default().createElement("span", null,
274
- external_react_default().createElement("div", { "data-fs-sku-selector-option-color": true, title: option.value, style: {
275
- '--data-fs-sku-selector-option-color-bkg-color': option.hexColor,
276
- } })))));
277
- }))));
278
- });
279
- /* harmony default export */ const SkuSelector_SkuSelector = (SkuSelector);
280
- //# sourceMappingURL=SkuSelector.js.map
281
- // EXTERNAL MODULE: ../components/dist/esm/molecules/InputField/InputField.js
282
- var InputField = __webpack_require__(93779);
283
- ;// CONCATENATED MODULE: ../components/dist/esm/molecules/Table/Table.js
284
-
285
- const Table = (0,external_react_.forwardRef)(function Table({ children, variant = 'colored', testId = 'fs-table', ...otherProps }, ref) {
286
- return (external_react_default().createElement("div", { "data-fs-table": true },
287
- external_react_default().createElement("table", { ref: ref, "data-fs-table-content": true, "data-fs-table-variant": variant, "data-testid": testId, ...otherProps }, children)));
288
- });
289
- /* harmony default export */ const Table_Table = (Table);
290
- //# sourceMappingURL=Table.js.map
291
- ;// CONCATENATED MODULE: ../components/dist/esm/molecules/Table/TableBody.js
292
-
293
- const TableBody = (0,external_react_.forwardRef)(function TableBody({ children, testId = 'fs-table-body', ...otherProps }, ref) {
294
- return (external_react_default().createElement("tbody", { ref: ref, "data-testid": testId, "data-fs-table-body": true, ...otherProps }, children));
295
- });
296
- /* harmony default export */ const Table_TableBody = (TableBody);
297
- //# sourceMappingURL=TableBody.js.map
298
- ;// CONCATENATED MODULE: ../components/dist/esm/molecules/Table/TableRow.js
299
-
300
- const TableRow = (0,external_react_.forwardRef)(function TableRow({ children, testId = 'fs-table-row', ...otherProps }, ref) {
301
- return (external_react_default().createElement("tr", { ref: ref, "data-fs-table-row": true, "data-testid": testId, ...otherProps }, children));
302
- });
303
- /* harmony default export */ const Table_TableRow = (TableRow);
304
- //# sourceMappingURL=TableRow.js.map
305
- ;// CONCATENATED MODULE: ../components/dist/esm/molecules/Table/TableCell.js
306
-
307
- const TableCell = (0,external_react_.forwardRef)(function TableCell({ scope, align, children, variant = 'data', testId = 'fs-table-cell', ...otherProps }, ref) {
308
- const Cell = variant === 'header' ? 'th' : 'td';
309
- return (external_react_default().createElement(Cell, { ref: ref, "data-fs-table-cell": variant, "data-fs-table-cell-align": align, "data-testid": testId, scope: scope, ...otherProps }, children));
310
- });
311
- /* harmony default export */ const Table_TableCell = (TableCell);
312
- //# sourceMappingURL=TableCell.js.map
313
- ;// CONCATENATED MODULE: ../components/dist/esm/organisms/ShippingSimulation/ShippingSimulation.js
314
-
315
-
316
- function ShippingSimulation({ testId = 'fs-shipping-simulation', formatter, title = 'Shipping', inputLabel = 'Postal Code', optionsLabel = 'Shipping options', idkPostalCodeLinkProps, onInput, onSubmit, onClear, location, options = [], displayClearButton = false, errorMessage, postalCode, ...otherProps }) {
317
- const hasShippingOptions = !!options && options.length > 0;
318
- return (external_react_default().createElement("section", { "data-fs-shipping-simulation": true, "data-fs-shipping-simulation-empty": !hasShippingOptions ? 'true' : 'false', "data-testid": testId, ...otherProps },
319
- external_react_default().createElement("h2", { "data-fs-shipping-simulation-title": true }, title),
320
- external_react_default().createElement(InputField/* default */.Z, { actionable: true, error: errorMessage, id: `${testId}-input-field`, label: inputLabel, value: postalCode, onInput: (event) => onInput?.(event), onSubmit: () => onSubmit?.(), onClear: () => onClear?.(), displayClearButton: displayClearButton }),
321
- external_react_default().createElement(Link/* default */.Z, { href: "/", "data-fs-shipping-simulation-link": true, size: "small", ...idkPostalCodeLinkProps }, idkPostalCodeLinkProps?.children ?? (external_react_default().createElement((external_react_default()).Fragment, null,
322
- "I don't know my Postal Code",
323
- external_react_default().createElement(Icon/* default */.Z, { name: "ArrowSquareOut", width: 20, height: 20 })))),
324
- hasShippingOptions && (external_react_default().createElement((external_react_default()).Fragment, null,
325
- external_react_default().createElement("header", { "data-fs-shipping-simulation-header": true },
326
- external_react_default().createElement("h3", { "data-fs-shipping-simulation-subtitle": true }, optionsLabel),
327
- external_react_default().createElement("p", { "data-fs-shipping-simulation-location": true }, location)),
328
- external_react_default().createElement(Table_Table, null,
329
- external_react_default().createElement(Table_TableBody, null, options.map((option) => (external_react_default().createElement(Table_TableRow, { key: option.carrier },
330
- external_react_default().createElement(Table_TableCell, { align: "left" }, option.carrier),
331
- external_react_default().createElement(Table_TableCell, null, option.localizedEstimates),
332
- external_react_default().createElement(Table_TableCell, { align: "right" }, option.price && (external_react_default().createElement(Price/* default */.Z, { formatter: formatter, value: option.price, SRText: "price" }))))))))))));
333
- }
334
- /* harmony default export */ const ShippingSimulation_ShippingSimulation = (ShippingSimulation);
335
- //# sourceMappingURL=ShippingSimulation.js.map
336
- // EXTERNAL MODULE: external "react-intersection-observer"
337
- var external_react_intersection_observer_ = __webpack_require__(19785);
338
- // EXTERNAL MODULE: ../components/dist/esm/molecules/IconButton/IconButton.js
339
- var IconButton = __webpack_require__(37041);
340
- ;// CONCATENATED MODULE: ../components/dist/esm/organisms/ImageGallery/ImageGallerySelector.js
341
-
342
-
343
-
344
- const SCROLL_MARGIN_VALUE = 400;
345
- const moveScroll = (container, value) => {
346
- if (container) {
347
- if (container.scrollHeight > container.clientHeight) {
348
- // TODO: Temporary workaround for scroll-behavior with scrollTop – Safari 15.4) https://developer.apple.com/forums/thread/703294
349
- container.style.overflow = 'auto';
350
- window.requestAnimationFrame(() => container.scrollTo({ top: value, behavior: 'smooth' }));
351
- setTimeout(() => (container.style.overflow = 'hidden'), 2000);
352
- }
353
- else {
354
- container.scrollLeft += value;
355
- }
356
- }
357
- };
358
- const hasScroll = (container) => {
359
- if (container) {
360
- return (container.scrollHeight > container.clientHeight ||
361
- container.scrollWidth > container.clientWidth);
362
- }
363
- return false;
364
- };
365
- function ImageGallerySelector({ images, onSelect, ImageComponent, currentImageIdx, testId = 'fs-image-gallery-selector', 'aria-label': ariaLabel = 'Product Images', navigationButtonLeftAriaLabel = 'Backward slide image selector', navigationButtonRightAriaLabel = 'Forward slide image selector', }) {
366
- const elementsRef = (0,external_react_.useRef)(null);
367
- const elementHasScroll = hasScroll(elementsRef.current);
368
- const [firstImageInView, setFirstImageInView] = (0,external_react_.useState)(true);
369
- const [lastImageInView, setLastImageInView] = (0,external_react_.useState)(true);
370
- const inViewChange = (0,external_react_.useCallback)((idx, inView) => {
371
- idx === 0 && setFirstImageInView(inView);
372
- idx === images.length - 1 && setLastImageInView(inView);
373
- }, [images.length]);
374
- return (external_react_default().createElement("section", { "data-fs-image-gallery-selector": true, "data-testid": testId, "aria-label": ariaLabel },
375
- elementHasScroll && !firstImageInView && (external_react_default().createElement("div", { "data-fs-image-gallery-selector-control": true },
376
- external_react_default().createElement(IconButton/* default */.Z, { "data-fs-image-gallery-selector-control-button": true, "aria-label": navigationButtonLeftAriaLabel, icon: external_react_default().createElement(Icon/* default */.Z, { name: "ArrowLeft" }), onClick: () => moveScroll(elementsRef.current, -SCROLL_MARGIN_VALUE) }))),
377
- external_react_default().createElement("div", { "data-fs-image-gallery-selector-elements": true, ref: elementsRef }, images.map((image, idx) => {
378
- return (external_react_default().createElement(external_react_intersection_observer_.InView, { key: idx, onChange: (inView) => inViewChange(idx, inView) },
379
- external_react_default().createElement(Button/* default */.Z, { key: idx, "aria-label": `${image.alternateName} - Image ${idx + 1} of ${images.length}`, onClick: () => onSelect(idx), "data-fs-image-gallery-selector-thumbnail": idx === currentImageIdx ? 'selected' : 'true' },
380
- external_react_default().createElement(ImageComponent, { url: image.url ?? '', loading: idx === 0 ? 'eager' : 'lazy', alternateName: image.alternateName ?? '' }))));
381
- })),
382
- elementHasScroll && !lastImageInView && (external_react_default().createElement("div", { "data-fs-image-gallery-selector-control": true },
383
- external_react_default().createElement(IconButton/* default */.Z, { "data-fs-image-gallery-selector-control-button": true, "aria-label": navigationButtonRightAriaLabel, icon: external_react_default().createElement(Icon/* default */.Z, { name: "ArrowLeft" }), onClick: () => moveScroll(elementsRef.current, +SCROLL_MARGIN_VALUE) })))));
384
- }
385
- /* harmony default export */ const ImageGallery_ImageGallerySelector = (ImageGallerySelector);
386
- //# sourceMappingURL=ImageGallerySelector.js.map
387
- ;// CONCATENATED MODULE: ../components/dist/esm/organisms/ImageGallery/ImageGallery.js
388
-
389
-
390
- const ImageGallery = (0,external_react_.forwardRef)(function ImageGallery({ images, children, ImageComponent, selectedImageIdx, imagePosition = 'center', setSelectedImageIdx, testId = 'fs-image-gallery', ...otherProps }, ref) {
391
- const hasSelector = images.length > 1;
392
- return (external_react_default().createElement("section", { ref: ref, "data-fs-image-gallery": hasSelector ? 'with-selector' : 'without-selector', "data-fs-image-gallery-position": imagePosition, "data-testid": testId, ...otherProps },
393
- children,
394
- hasSelector && (external_react_default().createElement(ImageGallery_ImageGallerySelector, { images: images, onSelect: setSelectedImageIdx, currentImageIdx: selectedImageIdx, ImageComponent: ImageComponent }))));
395
- });
396
- /* harmony default export */ const ImageGallery_ImageGallery = (ImageGallery);
397
- //# sourceMappingURL=ImageGallery.js.map
398
- ;// CONCATENATED MODULE: ../components/dist/esm/organisms/ImageGallery/ImageGalleryViewer.js
399
-
400
- const ImageGalleryViewer = ({ children, }) => {
401
- return external_react_default().createElement((external_react_default()).Fragment, null, children);
402
- };
403
- /* harmony default export */ const ImageGallery_ImageGalleryViewer = (ImageGalleryViewer);
404
- //# sourceMappingURL=ImageGalleryViewer.js.map
405
- // EXTERNAL MODULE: external "next/router"
406
- var router_ = __webpack_require__(71853);
407
- // EXTERNAL MODULE: external "react/jsx-runtime"
408
- var jsx_runtime_ = __webpack_require__(20997);
409
- ;// CONCATENATED MODULE: ./src/components/ui/ImageGallery/ImageGallery.tsx
410
- const _excluded = ["images", "imagePosition"];
411
-
412
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
413
-
414
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
415
-
416
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
417
-
418
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
419
-
420
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
421
-
422
-
423
-
424
-
425
-
426
-
427
- const ImageComponent = ({
428
- url,
429
- alternateName
430
- }) => {
431
- return /*#__PURE__*/jsx_runtime_.jsx(__experimentalImageGalleryImage.Component, {
432
- src: url,
433
- alt: alternateName,
434
- width: 68,
435
- height: 68
436
- });
437
- };
438
-
439
- const ImageGallery_ImageGallery_ImageGallery = _ref => {
440
- let {
441
- images,
442
- imagePosition
443
- } = _ref,
444
- otherProps = _objectWithoutProperties(_ref, _excluded);
445
-
446
- const {
447
- 0: selectedImageIdx,
448
- 1: setSelectedImageIdx
449
- } = (0,external_react_.useState)(0);
450
- const currentImage = images[selectedImageIdx] ?? images[0];
451
- const dynamicRoute = (0,router_.useRouter)().asPath;
452
- (0,external_react_.useEffect)(() => setSelectedImageIdx(0), [dynamicRoute]);
453
- return /*#__PURE__*/jsx_runtime_.jsx(Overrides_ImageGallery.Component, _objectSpread(_objectSpread(_objectSpread({}, Overrides_ImageGallery.props), {}, {
454
- images: images,
455
- ImageComponent: ImageComponent,
456
- selectedImageIdx: selectedImageIdx,
457
- setSelectedImageIdx: setSelectedImageIdx,
458
- imagePosition: imagePosition ?? Overrides_ImageGallery.props.imagePosition
459
- }, otherProps), {}, {
460
- children: /*#__PURE__*/jsx_runtime_.jsx(Overrides_ImageGalleryViewer.Component, _objectSpread(_objectSpread({}, Overrides_ImageGalleryViewer.props), {}, {
461
- children: /*#__PURE__*/jsx_runtime_.jsx(__experimentalImageGalleryImage.Component, _objectSpread(_objectSpread({
462
- sizes: "(max-width: 360px) 50vw, (max-width: 768px) 90vw, 50vw",
463
- width: 691,
464
- height: 691 * (3 / 4),
465
- loading: "eager"
466
- }, __experimentalImageGalleryImage.props), {}, {
467
- src: currentImage.url,
468
- alt: currentImage.alternateName
469
- }))
470
- }))
471
- }));
472
- };
473
-
474
- /* harmony default export */ const ui_ImageGallery_ImageGallery = (ImageGallery_ImageGallery_ImageGallery);
475
- // EXTERNAL MODULE: ./src/sdk/graphql/request.ts
476
- var request = __webpack_require__(180);
477
- ;// CONCATENATED MODULE: ./src/sdk/shipping/index.ts
478
-
479
- const query = "ShippingSimulationQuery";
480
- const getShippingSimulation = async ({
481
- items,
482
- postalCode,
483
- country
484
- }) => {
485
- const data = await (0,request/* request */.W)(query, {
486
- items,
487
- postalCode,
488
- country
489
- });
490
- return data.shipping;
491
- };
492
- /* harmony default export */ const shipping = ((/* unused pure expression or super */ null && (getShippingSimulation)));
493
- // EXTERNAL MODULE: ./src/sdk/session/index.ts + 1 modules
494
- var session = __webpack_require__(97295);
495
- ;// CONCATENATED MODULE: ./src/components/ui/ShippingSimulation/useShippingSimulation.ts
496
- function useShippingSimulation_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
497
-
498
- function useShippingSimulation_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? useShippingSimulation_ownKeys(Object(source), !0).forEach(function (key) { useShippingSimulation_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : useShippingSimulation_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
499
-
500
- function useShippingSimulation_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
501
-
502
-
503
-
504
- const createEmptySimulation = () => ({
505
- input: {
506
- postalCode: '',
507
- displayClearButton: false,
508
- errorMessage: ''
509
- },
510
- shippingSimulation: {
511
- location: '',
512
- options: []
513
- }
514
- });
515
-
516
- const reducer = (state, action) => {
517
- const {
518
- type
519
- } = action;
520
-
521
- switch (type) {
522
- case 'clear':
523
- {
524
- return createEmptySimulation();
525
- }
526
-
527
- case 'update':
528
- {
529
- const {
530
- payload
531
- } = action;
532
- return {
533
- input: useShippingSimulation_objectSpread(useShippingSimulation_objectSpread({}, state.input), payload.input),
534
- shippingSimulation: useShippingSimulation_objectSpread(useShippingSimulation_objectSpread({}, state.shippingSimulation), payload.shippingSimulation)
535
- };
536
- }
537
-
538
- case 'onInput':
539
- {
540
- const {
541
- payload
542
- } = action;
543
- return useShippingSimulation_objectSpread(useShippingSimulation_objectSpread({}, state), {}, {
544
- input: useShippingSimulation_objectSpread({}, payload)
545
- });
546
- }
547
-
548
- case 'onError':
549
- {
550
- const {
551
- payload
552
- } = action;
553
- return useShippingSimulation_objectSpread(useShippingSimulation_objectSpread({}, state), {}, {
554
- input: useShippingSimulation_objectSpread(useShippingSimulation_objectSpread({}, state.input), payload)
555
- });
556
- }
557
-
558
- default:
559
- throw new Error(`Action ${type} not implemented`);
560
- }
561
- };
562
-
563
- const useShippingSimulation = (shippingItem, fetchShippingSimulationFn, sessionPostalCode, country) => {
564
- const {
565
- 0: {
566
- input,
567
- shippingSimulation
568
- },
569
- 1: dispatch
570
- } = (0,external_react_.useReducer)(reducer, null, createEmptySimulation);
571
- const {
572
- postalCode: shippingPostalCode
573
- } = input;
574
- (0,external_react_.useEffect)(() => {
575
- if (!sessionPostalCode || shippingPostalCode) {
576
- return;
577
- } // Use sessionPostalCode if there is no shippingPostalCode
578
-
579
-
580
- async function fetchShipping() {
581
- const [location, options] = await fetchShippingSimulationFn(shippingItem, country, sessionPostalCode ?? '');
582
- dispatch({
583
- type: 'update',
584
- payload: {
585
- input: {
586
- postalCode: sessionPostalCode ?? '',
587
- displayClearButton: true,
588
- errorMessage: ''
589
- },
590
- shippingSimulation: {
591
- location,
592
- options
593
- }
594
- }
595
- });
596
- }
597
-
598
- fetchShipping();
599
- }, [country, fetchShippingSimulationFn, sessionPostalCode, shippingItem, shippingPostalCode]);
600
- const handleSubmit = (0,external_react_.useCallback)(async () => {
601
- try {
602
- const [location, options] = await fetchShippingSimulationFn(shippingItem, country, shippingPostalCode ?? '');
603
- dispatch({
604
- type: 'update',
605
- payload: {
606
- input: {
607
- displayClearButton: true,
608
- errorMessage: ''
609
- },
610
- shippingSimulation: {
611
- location,
612
- options
613
- }
614
- }
615
- });
616
- } catch (error) {
617
- dispatch({
618
- type: 'onError',
619
- payload: {
620
- displayClearButton: true,
621
- errorMessage: 'You entered an invalid Postal Code'
622
- }
623
- });
624
- }
625
- }, [country, fetchShippingSimulationFn, shippingItem, shippingPostalCode]);
626
- const handleOnInput = (0,external_react_.useCallback)(e => {
627
- const currentValue = e.currentTarget.value;
628
-
629
- if (currentValue) {
630
- dispatch({
631
- type: 'onInput',
632
- payload: {
633
- postalCode: currentValue,
634
- displayClearButton: false,
635
- errorMessage: ''
636
- }
637
- });
638
- } else {
639
- dispatch({
640
- type: 'clear'
641
- });
642
- }
643
- }, []);
644
- return {
645
- input,
646
- shippingSimulation,
647
- handleOnClear: () => {
648
- dispatch({
649
- type: 'clear'
650
- });
651
- },
652
- handleSubmit,
653
- handleOnInput
654
- };
655
- };
656
- ;// CONCATENATED MODULE: ./src/components/ui/ShippingSimulation/ShippingSimulation.tsx
657
- const ShippingSimulation_excluded = ["productShippingInfo", "formatter", "inputLabel", "title", "idkPostalCodeLinkProps"];
658
-
659
- function ShippingSimulation_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
660
-
661
- function ShippingSimulation_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ShippingSimulation_ownKeys(Object(source), !0).forEach(function (key) { ShippingSimulation_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ShippingSimulation_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
662
-
663
- function ShippingSimulation_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
664
-
665
- function ShippingSimulation_objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = ShippingSimulation_objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
666
-
667
- function ShippingSimulation_objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
668
-
669
-
670
-
671
-
672
-
673
-
674
-
675
- const fetchShippingSimulation = async (shippingItem, country, postalCode) => {
676
- const shipping = await getShippingSimulation({
677
- country,
678
- postalCode: postalCode,
679
- items: [shippingItem]
680
- });
681
- const location = [shipping?.address?.neighborhood, shipping?.address?.city].filter(Boolean).join(' / ') ?? '';
682
- const options = shipping?.logisticsInfo?.[0]?.slas ?? [];
683
- return [location, options];
684
- };
685
-
686
- function ShippingSimulation_ShippingSimulation_ShippingSimulation(_ref) {
687
- let {
688
- productShippingInfo,
689
- formatter,
690
- inputLabel,
691
- title,
692
- idkPostalCodeLinkProps
693
- } = _ref,
694
- otherProps = ShippingSimulation_objectWithoutProperties(_ref, ShippingSimulation_excluded);
695
-
696
- const {
697
- country,
698
- postalCode: sessionPostalCode
699
- } = (0,session/* useSession */.kP)();
700
- const {
701
- input,
702
- shippingSimulation,
703
- handleSubmit,
704
- handleOnInput,
705
- handleOnClear
706
- } = useShippingSimulation(productShippingInfo, fetchShippingSimulation, sessionPostalCode, country);
707
- const {
708
- postalCode,
709
- displayClearButton,
710
- errorMessage
711
- } = input;
712
- const {
713
- location,
714
- options
715
- } = shippingSimulation;
716
- return /*#__PURE__*/jsx_runtime_.jsx(Overrides_ShippingSimulation.Component, ShippingSimulation_objectSpread({
717
- formatter: formatter,
718
- onInput: handleOnInput,
719
- onSubmit: handleSubmit,
720
- onClear: handleOnClear,
721
- location: location,
722
- options: options,
723
- displayClearButton: displayClearButton,
724
- errorMessage: errorMessage,
725
- postalCode: postalCode,
726
- inputLabel: inputLabel,
727
- title: title,
728
- idkPostalCodeLinkProps: idkPostalCodeLinkProps
729
- }, otherProps));
730
- }
731
- // EXTERNAL MODULE: ./src/components/ui/Image/Image.tsx + 1 modules
732
- var Image = __webpack_require__(55731);
733
- ;// CONCATENATED MODULE: ./src/components/product/NotAvailableButton/NotAvailableButton.tsx
734
- // TODO: Remove this component when <OutOfStock /> is ready to use
735
-
736
-
737
-
738
- function NotAvailableButton({
739
- children
740
- }) {
741
- return /*#__PURE__*/jsx_runtime_.jsx(Button/* default */.Z, {
742
- variant: "primary",
743
- disabled: true,
744
- "data-fs-buy-button": true,
745
- children: children
746
- });
747
- }
748
-
749
- /* harmony default export */ const NotAvailableButton_NotAvailableButton = (NotAvailableButton);
750
- // EXTERNAL MODULE: ./src/utils/overrides.ts
751
- var overrides = __webpack_require__(59104);
752
- ;// CONCATENATED MODULE: ./src/customizations/components/overrides/ProductDetails.tsx
753
- // This is an example of how it can be used on the starter.
754
- const SECTION = 'ProductDetails';
755
- const override = {
756
- section: SECTION
757
- };
758
-
759
- ;// CONCATENATED MODULE: ./src/components/sections/ProductDetails/Overrides.tsx
760
-
761
-
762
-
763
-
764
-
765
-
766
-
767
- const {
768
- ProductTitle: Overrides_ProductTitle,
769
- DiscountBadge: Overrides_DiscountBadge,
770
- BuyButton: Overrides_BuyButton,
771
- Icon: Overrides_Icon,
772
- Price: Overrides_Price,
773
- QuantitySelector: Overrides_QuantitySelector,
774
- SkuSelector: Overrides_SkuSelector,
775
- ShippingSimulation: Overrides_ShippingSimulation,
776
- ImageGallery: Overrides_ImageGallery,
777
- ImageGalleryViewer: Overrides_ImageGalleryViewer,
778
- __experimentalImageGalleryImage,
779
- __experimentalImageGallery,
780
- __experimentalShippingSimulation,
781
- __experimentalNotAvailableButton
782
- } = (0,overrides/* getSectionOverrides */.f)({
783
- ProductTitle: ProductTitle_ProductTitle,
784
- DiscountBadge: DiscountBadge/* default */.Z,
785
- BuyButton: BuyButton_BuyButton,
786
- Icon: Icon/* default */.Z,
787
- Price: Price/* default */.Z,
788
- QuantitySelector: QuantitySelector/* default */.Z,
789
- SkuSelector: SkuSelector_SkuSelector,
790
- ShippingSimulation: ShippingSimulation_ShippingSimulation,
791
- ImageGallery: ImageGallery_ImageGallery,
792
- ImageGalleryViewer: ImageGallery_ImageGalleryViewer,
793
- __experimentalImageGalleryImage: Image/* default */.Z,
794
- __experimentalImageGallery: ui_ImageGallery_ImageGallery,
795
- __experimentalShippingSimulation: ShippingSimulation_ShippingSimulation_ShippingSimulation,
796
- __experimentalNotAvailableButton: NotAvailableButton_NotAvailableButton
797
- }, override);
798
-
799
-
800
- /***/ }),
801
-
802
- /***/ 81644:
803
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
804
-
805
- "use strict";
806
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
807
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
808
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
809
- /* harmony export */ });
810
- /* unused harmony export fragment */
811
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
812
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
813
- /* harmony import */ var _faststore_sdk__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(71072);
814
- /* harmony import */ var src_sdk_session__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(97295);
815
- /* harmony import */ var src_sdk_product_useProduct__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(63874);
816
- /* harmony import */ var src_sdk_product_useFormattedPrice__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(95346);
817
- /* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(13271);
818
- /* harmony import */ var src_components_ui_ProductDescription__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(81391);
819
- /* harmony import */ var src_components_ui_ProductDetails__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(29387);
820
- /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(79034);
821
- /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_7__);
822
- /* harmony import */ var src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55006);
823
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20997);
824
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__);
825
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_sdk_product_useProduct__WEBPACK_IMPORTED_MODULE_4__]);
826
- src_sdk_product_useProduct__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
827
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
828
-
829
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
830
-
831
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
832
-
833
-
834
-
835
-
836
-
837
-
838
-
839
-
840
-
841
-
842
-
843
-
844
-
845
-
846
- function ProductDetails({
847
- context: staleProduct,
848
- productTitle: {
849
- refNumber: showRefNumber,
850
- discountBadge: {
851
- showDiscountBadge,
852
- size: discountBadgeSize = src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .DiscountBadge.props.size */ .FU.props.size
853
- }
854
- },
855
- buyButton: {
856
- icon: buyButtonIcon,
857
- title: buyButtonTitle
858
- },
859
- shippingSimulator: {
860
- title: shippingSimulatorTitle = src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .__experimentalShippingSimulation.props.title */ .iQ.props.title,
861
- inputLabel: shippingSimulatorInputLabel = src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .__experimentalShippingSimulation.props.inputLabel */ .iQ.props.inputLabel,
862
- shippingOptionsTableTitle: shippingSimulatorOptionsTableTitle = src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .__experimentalShippingSimulation.props.optionsLabel */ .iQ.props.optionsLabel,
863
- link: {
864
- to: shippingSimulatorLinkUrl = src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .__experimentalShippingSimulation.props.idkPostalCodeLinkProps */ .iQ.props.idkPostalCodeLinkProps?.href,
865
- text: shippingSimulatorLinkText = src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .__experimentalShippingSimulation.props.idkPostalCodeLinkProps */ .iQ.props.idkPostalCodeLinkProps?.children
866
- }
867
- },
868
- productDescription: {
869
- title: productDescriptionDetailsTitle,
870
- initiallyExpanded: productDescriptionInitiallyExpanded,
871
- displayDescription: shouldDisplayProductDescription
872
- },
873
- imageGallery: {
874
- imagePosition = src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .__experimentalImageGallery.props.imagePosition */ .Pk.props.imagePosition
875
- },
876
- notAvailableButton: {
877
- title: notAvailableButtonTitle = src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .__experimentalNotAvailableButton.props.title */ .fX.props.title
878
- }
879
- }) {
880
- const {
881
- currency
882
- } = (0,src_sdk_session__WEBPACK_IMPORTED_MODULE_3__/* .useSession */ .kP)();
883
- const {
884
- 0: quantity,
885
- 1: setQuantity
886
- } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(1); // Stale while revalidate the product for fetching the new price etc
887
-
888
- const {
889
- data,
890
- isValidating
891
- } = (0,src_sdk_product_useProduct__WEBPACK_IMPORTED_MODULE_4__/* .useProduct */ .i)(staleProduct.id, {
892
- product: staleProduct
893
- });
894
-
895
- if (!data) {
896
- throw new Error('NotFound');
897
- }
898
-
899
- const {
900
- product: {
901
- id,
902
- sku,
903
- gtin,
904
- name: variantName,
905
- brand,
906
- isVariantOf,
907
- description,
908
- isVariantOf: {
909
- name,
910
- productGroupID: productId
911
- },
912
- image: productImages,
913
- offers: {
914
- offers: [{
915
- availability,
916
- price,
917
- listPrice,
918
- seller
919
- }],
920
- lowPrice
921
- }
922
- }
923
- } = data;
924
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
925
- (0,_faststore_sdk__WEBPACK_IMPORTED_MODULE_5__/* .sendAnalyticsEvent */ ._)({
926
- name: 'view_item',
927
- params: {
928
- currency: currency.code,
929
- value: price,
930
- items: [{
931
- item_id: isVariantOf.productGroupID,
932
- item_name: isVariantOf.name,
933
- item_brand: brand.name,
934
- item_variant: sku,
935
- price,
936
- discount: listPrice - price,
937
- currency: currency.code,
938
- item_variant_name: variantName,
939
- product_reference_id: gtin
940
- }]
941
- }
942
- });
943
- }, [isVariantOf.productGroupID, isVariantOf.name, brand.name, sku, price, listPrice, currency.code, variantName, gtin]);
944
- const outOfStock = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => availability === 'https://schema.org/OutOfStock', [availability]);
945
- return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(_Section__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
946
- className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_7___default().section)} section-product-details`,
947
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx("section", {
948
- "data-fs-product-details": true,
949
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("section", {
950
- "data-fs-product-details-body": true,
951
- "data-fs-content": "product-details",
952
- children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx("header", {
953
- "data-fs-product-details-title": true,
954
- "data-fs-product-details-section": true,
955
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .ProductTitle.Component */ .tc.Component, _objectSpread(_objectSpread({
956
- // TODO: We should review this prop. There's now way to override the title and use the dynamic name value.
957
- // Maybe passing a ProductTitleHeader component as a prop would be better, as it would be overridable.
958
- // Maybe now it's worth to make title always a h1 and receive only the name, as it would be easier for users to override.
959
- title: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx("h1", {
960
- children: name
961
- })
962
- }, src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .ProductTitle.props */ .tc.props), {}, {
963
- label: showDiscountBadge && /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .DiscountBadge.Component */ .FU.Component, _objectSpread(_objectSpread({}, src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .DiscountBadge.props */ .FU.props), {}, {
964
- size: discountBadgeSize // Dynamic props shouldn't be overridable
965
- // This decision can be reviewed later if needed
966
- ,
967
- listPrice: listPrice,
968
- spotPrice: lowPrice
969
- })),
970
- refNumber: showRefNumber && productId
971
- }))
972
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .__experimentalImageGallery.Component */ .Pk.Component, _objectSpread(_objectSpread({
973
- "data-fs-product-details-gallery": true
974
- }, src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .__experimentalImageGallery.props */ .Pk.props), {}, {
975
- imagePosition: imagePosition,
976
- images: productImages
977
- })), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("section", {
978
- "data-fs-product-details-info": true,
979
- children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx("section", {
980
- "data-fs-product-details-settings": true,
981
- "data-fs-product-details-section": true,
982
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(src_components_ui_ProductDetails__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
983
- product: data.product,
984
- isValidating: isValidating,
985
- buyButtonTitle: buyButtonTitle,
986
- quantity: quantity,
987
- setQuantity: setQuantity,
988
- buyButtonIcon: buyButtonIcon,
989
- notAvailableButtonTitle: notAvailableButtonTitle
990
- })
991
- }), !outOfStock && /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .__experimentalShippingSimulation.Component */ .iQ.Component, _objectSpread(_objectSpread({
992
- "data-fs-product-details-section": true,
993
- "data-fs-product-details-shipping": true,
994
- formatter: src_sdk_product_useFormattedPrice__WEBPACK_IMPORTED_MODULE_9__/* .useFormattedPrice */ .P
995
- }, src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .__experimentalShippingSimulation.props */ .iQ.props), {}, {
996
- idkPostalCodeLinkProps: _objectSpread(_objectSpread({}, src_components_sections_ProductDetails_Overrides__WEBPACK_IMPORTED_MODULE_2__/* .__experimentalShippingSimulation.props.idkPostalCodeLinkProps */ .iQ.props.idkPostalCodeLinkProps), {}, {
997
- href: shippingSimulatorLinkUrl,
998
- children: shippingSimulatorLinkText
999
- }),
1000
- productShippingInfo: {
1001
- id,
1002
- quantity,
1003
- seller: seller.identifier
1004
- },
1005
- title: shippingSimulatorTitle,
1006
- inputLabel: shippingSimulatorInputLabel,
1007
- optionsLabel: shippingSimulatorOptionsTableTitle
1008
- }))]
1009
- }), shouldDisplayProductDescription && /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(src_components_ui_ProductDescription__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
1010
- initiallyExpanded: productDescriptionInitiallyExpanded,
1011
- descriptionData: [{
1012
- title: productDescriptionDetailsTitle,
1013
- content: description
1014
- }]
1015
- })]
1016
- })
1017
- })
1018
- });
1019
- }
1020
-
1021
- const fragment = "unknown";
1022
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductDetails);
1023
- __webpack_async_result__();
1024
- } catch(e) { __webpack_async_result__(e); } });
1025
-
1026
- /***/ }),
1027
-
1028
- /***/ 81391:
1029
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1030
-
1031
- "use strict";
1032
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1033
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
1034
- /* harmony export */ });
1035
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
1036
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1037
- /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71516);
1038
- /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(40783);
1039
- /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(67734);
1040
- /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(27583);
1041
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20997);
1042
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__);
1043
-
1044
-
1045
-
1046
-
1047
-
1048
- function ProductDescription({
1049
- descriptionData,
1050
- initiallyExpanded = 'first'
1051
- }) {
1052
- /**
1053
- * Maps 'initiallyExpanded' prop values to indices
1054
- */
1055
- const INITIALLY_EXPANDED_MAP = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({
1056
- none: [],
1057
- first: [0],
1058
- all: [0, 1, 2, 3]
1059
- }), []);
1060
- const {
1061
- 0: indices,
1062
- 1: setIndices
1063
- } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(new Set(INITIALLY_EXPANDED_MAP[initiallyExpanded]));
1064
-
1065
- const onChange = index => {
1066
- setIndices(currentIndices => {
1067
- const newIndices = new Set(currentIndices);
1068
-
1069
- if (currentIndices.has(index)) {
1070
- newIndices.delete(index);
1071
- } else {
1072
- newIndices.add(index);
1073
- }
1074
-
1075
- return newIndices;
1076
- });
1077
- };
1078
-
1079
- return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx("section", {
1080
- "data-fs-product-description": true,
1081
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
1082
- indices: indices,
1083
- onChange: onChange,
1084
- "aria-label": "Product Details Content",
1085
- children: descriptionData.map(({
1086
- title,
1087
- content
1088
- }, index) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(_faststore_ui__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
1089
- as: "article",
1090
- index: index,
1091
- prefixId: "product-description",
1092
- "data-fs-product-details-description": true,
1093
- children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
1094
- children: title
1095
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
1096
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx("p", {
1097
- className: "text__body",
1098
- children: content
1099
- })
1100
- })]
1101
- }, String(index)))
1102
- })
1103
- });
1104
- }
1105
-
1106
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductDescription);
1107
-
1108
- /***/ }),
1109
-
1110
- /***/ 29387:
1111
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1112
-
1113
- "use strict";
1114
-
1115
- // EXPORTS
1116
- __webpack_require__.d(__webpack_exports__, {
1117
- "Z": () => (/* binding */ ProductDetails_ProductDetailsSettings)
1118
- });
1119
-
1120
- // EXTERNAL MODULE: external "react"
1121
- var external_react_ = __webpack_require__(16689);
1122
- // EXTERNAL MODULE: ../sdk/dist/analytics/sendAnalyticsEvent.js
1123
- var sendAnalyticsEvent = __webpack_require__(71072);
1124
- // EXTERNAL MODULE: ./src/sdk/session/index.ts + 1 modules
1125
- var session = __webpack_require__(97295);
1126
- // EXTERNAL MODULE: ../components/dist/esm/hooks/UIProvider.js
1127
- var UIProvider = __webpack_require__(16652);
1128
- // EXTERNAL MODULE: ./src/sdk/cart/index.ts + 1 modules
1129
- var cart = __webpack_require__(46073);
1130
- ;// CONCATENATED MODULE: ./src/sdk/cart/useBuyButton.ts
1131
-
1132
-
1133
-
1134
-
1135
-
1136
- const useBuyButton = item => {
1137
- const {
1138
- openCart
1139
- } = (0,UIProvider/* useUI */.l)();
1140
- const {
1141
- currency: {
1142
- code
1143
- }
1144
- } = (0,session/* useSession */.kP)();
1145
- const onClick = (0,external_react_.useCallback)(e => {
1146
- e.preventDefault();
1147
-
1148
- if (!item) {
1149
- return;
1150
- }
1151
-
1152
- (0,sendAnalyticsEvent/* sendAnalyticsEvent */._)({
1153
- name: 'add_to_cart',
1154
- params: {
1155
- currency: code,
1156
- // TODO: In the future, we can explore more robust ways of
1157
- // calculating the value (gift items, discounts, etc.).
1158
- value: item.price * item.quantity,
1159
- items: [{
1160
- item_id: item.itemOffered.isVariantOf.productGroupID,
1161
- item_name: item.itemOffered.isVariantOf.name,
1162
- item_brand: item.itemOffered.brand.name,
1163
- item_variant: item.itemOffered.sku,
1164
- quantity: item.quantity,
1165
- price: item.price,
1166
- discount: item.listPrice - item.price,
1167
- currency: code,
1168
- item_variant_name: item.itemOffered.name,
1169
- product_reference_id: item.itemOffered.gtin
1170
- }]
1171
- }
1172
- });
1173
- cart/* cartStore.addItem */.i8.addItem(item);
1174
- openCart();
1175
- }, [code, item, openCart]);
1176
- return {
1177
- onClick,
1178
- 'data-testid': 'buy-button',
1179
- 'data-sku': item?.itemOffered.sku,
1180
- 'data-seller': item?.seller.identifier
1181
- };
1182
- };
1183
- // EXTERNAL MODULE: ./src/sdk/product/useFormattedPrice.ts
1184
- var useFormattedPrice = __webpack_require__(95346);
1185
- // EXTERNAL MODULE: ./node_modules/next/link.js
1186
- var next_link = __webpack_require__(41664);
1187
- var link_default = /*#__PURE__*/__webpack_require__.n(next_link);
1188
- // EXTERNAL MODULE: ./src/components/ui/Image/Image.tsx + 1 modules
1189
- var Image = __webpack_require__(55731);
1190
- // EXTERNAL MODULE: ./src/components/sections/ProductDetails/Overrides.tsx + 19 modules
1191
- var Overrides = __webpack_require__(55006);
1192
- // EXTERNAL MODULE: external "react/jsx-runtime"
1193
- var jsx_runtime_ = __webpack_require__(20997);
1194
- ;// CONCATENATED MODULE: ./src/components/ui/SkuSelector/Selectors.tsx
1195
- const _excluded = ["src", "alt"],
1196
- _excluded2 = ["slugsMap", "activeVariations", "availableVariations"];
1197
-
1198
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1199
-
1200
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1201
-
1202
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1203
-
1204
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
1205
-
1206
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
1207
-
1208
-
1209
-
1210
-
1211
-
1212
-
1213
-
1214
- const ImageComponent = _ref => {
1215
- let {
1216
- src,
1217
- alt
1218
- } = _ref,
1219
- otherProps = _objectWithoutProperties(_ref, _excluded);
1220
-
1221
- return /*#__PURE__*/jsx_runtime_.jsx(Image/* default */.Z, _objectSpread({
1222
- src: src,
1223
- alt: alt,
1224
- width: 34,
1225
- height: 34
1226
- }, otherProps));
1227
- };
1228
-
1229
- function Selectors(_ref2) {
1230
- let {
1231
- slugsMap,
1232
- activeVariations,
1233
- availableVariations
1234
- } = _ref2,
1235
- otherProps = _objectWithoutProperties(_ref2, _excluded2);
1236
-
1237
- return /*#__PURE__*/jsx_runtime_.jsx("section", _objectSpread(_objectSpread({}, otherProps), {}, {
1238
- children: availableVariations && Object.keys(availableVariations).map(skuVariant => /*#__PURE__*/(0,external_react_.createElement)(Overrides/* SkuSelector.Component */.Ol.Component, _objectSpread(_objectSpread({
1239
- ImageComponent: ImageComponent
1240
- }, Overrides/* SkuSelector.props */.Ol.props), {}, {
1241
- key: skuVariant,
1242
- skuPropertyName: skuVariant,
1243
- availableVariations: availableVariations,
1244
- activeVariations: activeVariations,
1245
- slugsMap: slugsMap,
1246
- linkProps: _objectSpread(_objectSpread({}, Overrides/* SkuSelector.props.linkProps */.Ol.props.linkProps ?? {}), {}, {
1247
- as: Overrides/* SkuSelector.props.linkProps */.Ol.props.linkProps?.as ?? (link_default()),
1248
- legacyBehavior: Overrides/* SkuSelector.props.linkProps */.Ol.props.linkProps?.legacyBehavior ?? false
1249
- })
1250
- })))
1251
- }));
1252
- }
1253
-
1254
- /* harmony default export */ const SkuSelector_Selectors = (Selectors);
1255
- ;// CONCATENATED MODULE: ./src/components/ui/ProductDetails/AddToCartLoadingSkeleton.tsx
1256
-
1257
-
1258
- function AddToCartLoadingSkeleton() {
1259
- return (
1260
- /*#__PURE__*/
1261
- // Generated via https://skeletonreact.com/.
1262
- (0,jsx_runtime_.jsxs)("svg", {
1263
- role: "img",
1264
- width: "100%",
1265
- height: "48",
1266
- "aria-labelledby": "loading-aria",
1267
- viewBox: "0 0 112 48",
1268
- preserveAspectRatio: "none",
1269
- children: [/*#__PURE__*/jsx_runtime_.jsx("title", {
1270
- id: "loading-aria",
1271
- children: "Loading..."
1272
- }), /*#__PURE__*/jsx_runtime_.jsx("rect", {
1273
- x: "0",
1274
- y: "0",
1275
- width: "100%",
1276
- height: "100%",
1277
- clipPath: "url(#clip-path)",
1278
- style: {
1279
- fill: 'url("#fill")'
1280
- }
1281
- }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("defs", {
1282
- children: [/*#__PURE__*/jsx_runtime_.jsx("clipPath", {
1283
- id: "clip-path",
1284
- children: /*#__PURE__*/jsx_runtime_.jsx("rect", {
1285
- x: "0",
1286
- y: "0",
1287
- rx: "2",
1288
- ry: "2",
1289
- width: "112",
1290
- height: "48"
1291
- })
1292
- }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("linearGradient", {
1293
- id: "fill",
1294
- children: [/*#__PURE__*/jsx_runtime_.jsx("stop", {
1295
- offset: "0.599964",
1296
- stopColor: "#f3f3f3",
1297
- stopOpacity: "1",
1298
- children: /*#__PURE__*/jsx_runtime_.jsx("animate", {
1299
- attributeName: "offset",
1300
- values: "-2; -2; 1",
1301
- keyTimes: "0; 0.25; 1",
1302
- dur: "2s",
1303
- repeatCount: "indefinite"
1304
- })
1305
- }), /*#__PURE__*/jsx_runtime_.jsx("stop", {
1306
- offset: "1.59996",
1307
- stopColor: "#ecebeb",
1308
- stopOpacity: "1",
1309
- children: /*#__PURE__*/jsx_runtime_.jsx("animate", {
1310
- attributeName: "offset",
1311
- values: "-1; -1; 2",
1312
- keyTimes: "0; 0.25; 1",
1313
- dur: "2s",
1314
- repeatCount: "indefinite"
1315
- })
1316
- }), /*#__PURE__*/jsx_runtime_.jsx("stop", {
1317
- offset: "2.59996",
1318
- stopColor: "#f3f3f3",
1319
- stopOpacity: "1",
1320
- children: /*#__PURE__*/jsx_runtime_.jsx("animate", {
1321
- attributeName: "offset",
1322
- values: "0; 0; 3",
1323
- keyTimes: "0; 0.25; 1",
1324
- dur: "2s",
1325
- repeatCount: "indefinite"
1326
- })
1327
- })]
1328
- })]
1329
- })]
1330
- })
1331
- );
1332
- }
1333
- ;// CONCATENATED MODULE: ./src/components/ui/ProductDetails/ProductDetailsSettings.tsx
1334
- function ProductDetailsSettings_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1335
-
1336
- function ProductDetailsSettings_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ProductDetailsSettings_ownKeys(Object(source), !0).forEach(function (key) { ProductDetailsSettings_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ProductDetailsSettings_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1337
-
1338
- function ProductDetailsSettings_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1339
-
1340
-
1341
-
1342
-
1343
-
1344
-
1345
-
1346
-
1347
-
1348
-
1349
-
1350
- function ProductDetailsSettings({
1351
- product,
1352
- buyButtonTitle,
1353
- isValidating,
1354
- quantity,
1355
- setQuantity,
1356
- buyButtonIcon: {
1357
- icon: buyButtonIconName = Overrides/* Icon.props.name */.JO.props.name,
1358
- alt: buyButtonIconAlt = Overrides/* Icon.props.aria-label */.JO.props["aria-label"]
1359
- },
1360
- notAvailableButtonTitle
1361
- }) {
1362
- const {
1363
- id,
1364
- sku,
1365
- gtin,
1366
- name: variantName,
1367
- brand,
1368
- isVariantOf,
1369
- isVariantOf: {
1370
- skuVariants
1371
- },
1372
- image: productImages,
1373
- additionalProperty,
1374
- offers: {
1375
- lowPrice,
1376
- offers: [{
1377
- availability,
1378
- price,
1379
- listPrice,
1380
- seller
1381
- }]
1382
- }
1383
- } = product;
1384
- const buyProps = useBuyButton({
1385
- id,
1386
- price,
1387
- listPrice,
1388
- seller,
1389
- quantity,
1390
- itemOffered: {
1391
- sku,
1392
- name: variantName,
1393
- gtin,
1394
- image: productImages,
1395
- brand,
1396
- isVariantOf,
1397
- additionalProperty
1398
- }
1399
- });
1400
- const outOfStock = (0,external_react_.useMemo)(() => availability === 'https://schema.org/OutOfStock', [availability]);
1401
- const shouldShowDiscountedPrice = (0,external_react_.useMemo)(() => lowPrice !== listPrice, [lowPrice, listPrice]);
1402
-
1403
- const AddToCartButton = () => {
1404
- return outOfStock ?
1405
- /*#__PURE__*/
1406
- // TODO: Adds <OutOfStock /> when component is ready to use
1407
- jsx_runtime_.jsx(Overrides/* __experimentalNotAvailableButton.Component */.fX.Component, {
1408
- children: notAvailableButtonTitle
1409
- }) : /*#__PURE__*/jsx_runtime_.jsx(Overrides/* BuyButton.Component */.lo.Component, ProductDetailsSettings_objectSpread(ProductDetailsSettings_objectSpread(ProductDetailsSettings_objectSpread({}, Overrides/* BuyButton.props */.lo.props), {}, {
1410
- icon: /*#__PURE__*/jsx_runtime_.jsx(Overrides/* Icon.Component */.JO.Component, ProductDetailsSettings_objectSpread(ProductDetailsSettings_objectSpread({}, Overrides/* Icon.props */.JO.props), {}, {
1411
- name: buyButtonIconName,
1412
- "aria-label": buyButtonIconAlt
1413
- }))
1414
- }, buyProps), {}, {
1415
- children: buyButtonTitle || 'Add to Cart'
1416
- }));
1417
- };
1418
-
1419
- return /*#__PURE__*/(0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
1420
- children: [!outOfStock && /*#__PURE__*/(0,jsx_runtime_.jsxs)("section", {
1421
- "data-fs-product-details-values": true,
1422
- children: [/*#__PURE__*/jsx_runtime_.jsx("div", {
1423
- "data-fs-product-details-prices": true,
1424
- children: shouldShowDiscountedPrice ? /*#__PURE__*/(0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
1425
- children: [/*#__PURE__*/jsx_runtime_.jsx(Overrides/* Price.Component */.tA.Component, ProductDetailsSettings_objectSpread(ProductDetailsSettings_objectSpread({
1426
- formatter: useFormattedPrice/* useFormattedPrice */.P,
1427
- testId: "list-price",
1428
- variant: "listing",
1429
- SRText: "Original price:"
1430
- }, Overrides/* Price.props */.tA.props), {}, {
1431
- // Dynamic props shouldn't be overridable
1432
- // This decision can be reviewed later if needed
1433
- value: listPrice,
1434
- "data-value": listPrice
1435
- })), /*#__PURE__*/jsx_runtime_.jsx(Overrides/* Price.Component */.tA.Component, ProductDetailsSettings_objectSpread(ProductDetailsSettings_objectSpread({
1436
- formatter: useFormattedPrice/* useFormattedPrice */.P,
1437
- testId: "price",
1438
- variant: "spot",
1439
- className: "text__lead",
1440
- SRText: "Sale Price:"
1441
- }, Overrides/* Price.props */.tA.props), {}, {
1442
- // Dynamic props shouldn't be overridable
1443
- // This decision can be reviewed later if needed
1444
- value: lowPrice,
1445
- "data-value": lowPrice
1446
- }))]
1447
- }) : /*#__PURE__*/jsx_runtime_.jsx(Overrides/* Price.Component */.tA.Component, ProductDetailsSettings_objectSpread(ProductDetailsSettings_objectSpread({
1448
- formatter: useFormattedPrice/* useFormattedPrice */.P,
1449
- testId: "list-price",
1450
- variant: "spot",
1451
- className: "text__lead",
1452
- SRText: "Original price:"
1453
- }, Overrides/* Price.props */.tA.props), {}, {
1454
- // Dynamic props shouldn't be overridable
1455
- // This decision can be reviewed later if needed
1456
- value: lowPrice,
1457
- "data-value": lowPrice
1458
- }))
1459
- }), /*#__PURE__*/jsx_runtime_.jsx(Overrides/* QuantitySelector.Component */.cw.Component, ProductDetailsSettings_objectSpread(ProductDetailsSettings_objectSpread({
1460
- min: 1,
1461
- max: 10
1462
- }, Overrides/* QuantitySelector.props */.cw.props), {}, {
1463
- // Dynamic props shouldn't be overridable
1464
- // This decision can be reviewed later if needed
1465
- onChange: setQuantity
1466
- }))]
1467
- }), skuVariants && /*#__PURE__*/jsx_runtime_.jsx(SkuSelector_Selectors, {
1468
- slugsMap: skuVariants.slugsMap,
1469
- availableVariations: skuVariants.availableVariations,
1470
- activeVariations: skuVariants.activeVariations,
1471
- "data-fs-product-details-selectors": true
1472
- }), isValidating ?
1473
- /*#__PURE__*/
1474
-
1475
- /* NOTE:
1476
- A loading skeleton had to be used to avoid a Lighthouse's
1477
- non-composited animation violation due to the button transitioning its
1478
- background color when changing from its initial disabled to active state.
1479
- See full explanation on commit https://git.io/JyXV5. */
1480
- jsx_runtime_.jsx(AddToCartLoadingSkeleton, {}) : /*#__PURE__*/jsx_runtime_.jsx(AddToCartButton, {})]
1481
- });
1482
- }
1483
-
1484
- /* harmony default export */ const ProductDetails_ProductDetailsSettings = (ProductDetailsSettings);
1485
-
1486
- /***/ }),
1487
-
1488
- /***/ 75779:
1489
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
1490
-
1491
- "use strict";
1492
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
1493
- __webpack_require__.r(__webpack_exports__);
1494
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1495
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
1496
- /* harmony export */ "getStaticPaths": () => (/* binding */ getStaticPaths),
1497
- /* harmony export */ "getStaticProps": () => (/* binding */ getStaticProps)
1498
- /* harmony export */ });
1499
- /* harmony import */ var _faststore_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74826);
1500
- /* harmony import */ var next_seo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16641);
1501
- /* harmony import */ var next_seo__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_seo__WEBPACK_IMPORTED_MODULE_1__);
1502
- /* harmony import */ var src_components_cms_RenderSections__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(82224);
1503
- /* harmony import */ var src_components_sections_BannerNewsletter_BannerNewsletter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(72951);
1504
- /* harmony import */ var src_components_sections_Breadcrumb__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(80387);
1505
- /* harmony import */ var src_components_sections_CrossSellingShelf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(30994);
1506
- /* harmony import */ var src_components_sections_ProductDetails__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(81644);
1507
- /* harmony import */ var src_customizations_components__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(20859);
1508
- /* harmony import */ var src_sdk_session__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(97295);
1509
- /* harmony import */ var src_sdk_tests_mark__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(82541);
1510
- /* harmony import */ var src_server__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(10350);
1511
- /* harmony import */ var src_server_cms__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(49497);
1512
- /* harmony import */ var src_components_cms_GlobalSections__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(4074);
1513
- /* harmony import */ var _faststore_config__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(97183);
1514
- /* harmony import */ var _faststore_config__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_faststore_config__WEBPACK_IMPORTED_MODULE_13__);
1515
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20997);
1516
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__);
1517
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_sections_ProductDetails__WEBPACK_IMPORTED_MODULE_4__, src_components_sections_CrossSellingShelf__WEBPACK_IMPORTED_MODULE_5__, src_components_sections_BannerNewsletter_BannerNewsletter__WEBPACK_IMPORTED_MODULE_6__, src_components_cms_GlobalSections__WEBPACK_IMPORTED_MODULE_9__, src_components_cms_RenderSections__WEBPACK_IMPORTED_MODULE_10__, src_server__WEBPACK_IMPORTED_MODULE_11__]);
1518
- ([src_components_sections_ProductDetails__WEBPACK_IMPORTED_MODULE_4__, src_components_sections_CrossSellingShelf__WEBPACK_IMPORTED_MODULE_5__, src_components_sections_BannerNewsletter_BannerNewsletter__WEBPACK_IMPORTED_MODULE_6__, src_components_cms_GlobalSections__WEBPACK_IMPORTED_MODULE_9__, src_components_cms_RenderSections__WEBPACK_IMPORTED_MODULE_10__, src_server__WEBPACK_IMPORTED_MODULE_11__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1519
- const _excluded = ["listPrice"];
1520
-
1521
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
1522
-
1523
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
1524
-
1525
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1526
-
1527
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1528
-
1529
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1530
-
1531
-
1532
-
1533
-
1534
-
1535
-
1536
-
1537
-
1538
-
1539
-
1540
-
1541
-
1542
-
1543
-
1544
-
1545
- /**
1546
- * Sections: Components imported from each store's custom components and '../components/sections' only.
1547
- * Do not import or render components from any other folder in here.
1548
- */
1549
-
1550
-
1551
-
1552
-
1553
- const COMPONENTS = _objectSpread({
1554
- Breadcrumb: src_components_sections_Breadcrumb__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z,
1555
- ProductDetails: src_components_sections_ProductDetails__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z,
1556
- CrossSellingShelf: src_components_sections_CrossSellingShelf__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z,
1557
- BannerNewsletter: src_components_sections_BannerNewsletter_BannerNewsletter__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z
1558
- }, src_customizations_components__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z);
1559
-
1560
- function Page({
1561
- product,
1562
- sections,
1563
- globalSections,
1564
- offers,
1565
- meta
1566
- }) {
1567
- const {
1568
- currency
1569
- } = (0,src_sdk_session__WEBPACK_IMPORTED_MODULE_8__/* .useSession */ .kP)();
1570
- return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(src_components_cms_GlobalSections__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .ZP, _objectSpread(_objectSpread({}, globalSections), {}, {
1571
- children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(next_seo__WEBPACK_IMPORTED_MODULE_1__.NextSeo, {
1572
- title: meta.title,
1573
- description: meta.description,
1574
- canonical: meta.canonical,
1575
- openGraph: {
1576
- type: 'og:product',
1577
- url: meta.canonical,
1578
- title: meta.title,
1579
- description: meta.description,
1580
- images: product.image.map(img => ({
1581
- url: img.url,
1582
- alt: img.alternateName
1583
- }))
1584
- },
1585
- additionalMetaTags: [{
1586
- property: 'product:price:amount',
1587
- content: product.offers.lowPrice?.toString() ?? undefined
1588
- }, {
1589
- property: 'product:price:currency',
1590
- content: currency.code
1591
- }]
1592
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(next_seo__WEBPACK_IMPORTED_MODULE_1__.BreadcrumbJsonLd, {
1593
- itemListElements: product.breadcrumbList.itemListElement
1594
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(next_seo__WEBPACK_IMPORTED_MODULE_1__.ProductJsonLd, {
1595
- productName: product.name,
1596
- description: product.description,
1597
- brand: product.brand.name,
1598
- sku: product.sku,
1599
- gtin: product.gtin,
1600
- releaseDate: product.releaseDate,
1601
- images: product.image.map(img => img.url) // Somehow, Google does not understand this valid Schema.org schema, so we need to do conversions
1602
- ,
1603
- offers: offers
1604
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_cms_RenderSections__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
1605
- context: product,
1606
- sections: sections,
1607
- components: COMPONENTS
1608
- })]
1609
- }));
1610
- }
1611
-
1612
- const query = "ServerProductPageQuery";
1613
- const getStaticProps = async ({
1614
- params,
1615
- previewData
1616
- }) => {
1617
- const slug = params?.slug ?? '';
1618
- const [searchResult, cmsPage, globalSections] = await Promise.all([(0,src_server__WEBPACK_IMPORTED_MODULE_11__/* .execute */ .h)({
1619
- variables: {
1620
- slug
1621
- },
1622
- operationName: query
1623
- }), (0,src_server_cms__WEBPACK_IMPORTED_MODULE_12__/* .getPage */ .f)(_objectSpread(_objectSpread({}, previewData?.contentType === 'pdp' ? previewData : null), {}, {
1624
- contentType: 'pdp'
1625
- })), (0,src_components_cms_GlobalSections__WEBPACK_IMPORTED_MODULE_9__/* .getGlobalSectionsData */ .Tc)(previewData)]);
1626
- const {
1627
- data,
1628
- errors = []
1629
- } = searchResult;
1630
- const notFound = errors.find(_faststore_api__WEBPACK_IMPORTED_MODULE_0__.isNotFoundError);
1631
-
1632
- if (notFound) {
1633
- return {
1634
- notFound: true
1635
- };
1636
- }
1637
-
1638
- if (errors.length > 0) {
1639
- throw errors[0];
1640
- }
1641
-
1642
- const {
1643
- seo
1644
- } = data.product;
1645
- const title = seo.title || (_faststore_config__WEBPACK_IMPORTED_MODULE_13___default().seo.title);
1646
- const description = seo.description || (_faststore_config__WEBPACK_IMPORTED_MODULE_13___default().seo.description);
1647
- const canonical = `${(_faststore_config__WEBPACK_IMPORTED_MODULE_13___default().storeUrl)}${seo.canonical}`;
1648
- const meta = {
1649
- title,
1650
- description,
1651
- canonical
1652
- };
1653
- let offer = {};
1654
-
1655
- if (data.product.offers.offers.length > 0) {
1656
- const _data$product$offers$ = data.product.offers.offers[0],
1657
- {
1658
- listPrice
1659
- } = _data$product$offers$,
1660
- offerData = _objectWithoutProperties(_data$product$offers$, _excluded);
1661
-
1662
- offer = offerData;
1663
- }
1664
-
1665
- const offers = _objectSpread(_objectSpread({}, offer), {}, {
1666
- priceCurrency: data.product.offers.priceCurrency,
1667
- url: canonical
1668
- });
1669
-
1670
- return {
1671
- props: _objectSpread(_objectSpread(_objectSpread({}, data), cmsPage), {}, {
1672
- meta,
1673
- offers,
1674
- globalSections
1675
- })
1676
- };
1677
- };
1678
- const getStaticPaths = async () => {
1679
- return {
1680
- paths: [],
1681
- fallback: 'blocking'
1682
- };
1683
- };
1684
- Page.displayName = 'Page';
1685
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,src_sdk_tests_mark__WEBPACK_IMPORTED_MODULE_14__/* .mark */ .B)(Page));
1686
- __webpack_async_result__();
1687
- } catch(e) { __webpack_async_result__(e); } });
1688
-
1689
- /***/ }),
1690
-
1691
- /***/ 63874:
1692
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
1693
-
1694
- "use strict";
1695
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
1696
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1697
- /* harmony export */ "i": () => (/* binding */ useProduct)
1698
- /* harmony export */ });
1699
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
1700
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1701
- /* harmony import */ var _graphql_useQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(77732);
1702
- /* harmony import */ var _session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(97295);
1703
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_graphql_useQuery__WEBPACK_IMPORTED_MODULE_2__]);
1704
- _graphql_useQuery__WEBPACK_IMPORTED_MODULE_2__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
1705
-
1706
-
1707
-
1708
- const query = "BrowserProductQuery";
1709
- const useProduct = (productID, fallbackData) => {
1710
- const {
1711
- channel,
1712
- locale
1713
- } = (0,_session__WEBPACK_IMPORTED_MODULE_1__/* .useSession */ .kP)();
1714
- const variables = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
1715
- if (!channel) {
1716
- throw new Error(`useProduct: 'channel' from session is an empty string.`);
1717
- }
1718
-
1719
- return {
1720
- locator: [{
1721
- key: 'id',
1722
- value: productID
1723
- }, {
1724
- key: 'channel',
1725
- value: channel
1726
- }, {
1727
- key: 'locale',
1728
- value: locale
1729
- }]
1730
- };
1731
- }, [channel, locale, productID]);
1732
- return (0,_graphql_useQuery__WEBPACK_IMPORTED_MODULE_2__/* .useQuery */ .aM)(query, variables, {
1733
- fallbackData,
1734
- revalidateOnMount: true
1735
- });
1736
- };
1737
- __webpack_async_result__();
1738
- } catch(e) { __webpack_async_result__(e); } });
1739
-
1740
- /***/ }),
1741
-
1742
- /***/ 5411:
1743
- /***/ ((module) => {
1744
-
1745
- // Exports
1746
- module.exports = {
1747
- "section": "section_section__pVnFl"
1748
- };
1749
-
1750
-
1751
- /***/ }),
1752
-
1753
- /***/ 79034:
1754
- /***/ ((module) => {
1755
-
1756
- // Exports
1757
- module.exports = {
1758
- "section": "section_section__XsOoR"
1759
- };
1760
-
1761
-
1762
- /***/ }),
1763
-
1764
- /***/ 74691:
1765
- /***/ ((module) => {
1766
-
1767
- "use strict";
1768
- module.exports = require("@opentelemetry/api");
1769
-
1770
- /***/ }),
1771
-
1772
- /***/ 38973:
1773
- /***/ ((module) => {
1774
-
1775
- "use strict";
1776
- module.exports = require("@opentelemetry/api-logs");
1777
-
1778
- /***/ }),
1779
-
1780
- /***/ 16969:
1781
- /***/ ((module) => {
1782
-
1783
- "use strict";
1784
- module.exports = require("@opentelemetry/exporter-logs-otlp-grpc");
1785
-
1786
- /***/ }),
1787
-
1788
- /***/ 15196:
1789
- /***/ ((module) => {
1790
-
1791
- "use strict";
1792
- module.exports = require("@opentelemetry/exporter-trace-otlp-grpc");
1793
-
1794
- /***/ }),
1795
-
1796
- /***/ 44161:
1797
- /***/ ((module) => {
1798
-
1799
- "use strict";
1800
- module.exports = require("@opentelemetry/resources");
1801
-
1802
- /***/ }),
1803
-
1804
- /***/ 42793:
1805
- /***/ ((module) => {
1806
-
1807
- "use strict";
1808
- module.exports = require("@opentelemetry/sdk-logs");
1809
-
1810
- /***/ }),
1811
-
1812
- /***/ 1283:
1813
- /***/ ((module) => {
1814
-
1815
- "use strict";
1816
- module.exports = require("@opentelemetry/sdk-trace-base");
1817
-
1818
- /***/ }),
1819
-
1820
- /***/ 16676:
1821
- /***/ ((module) => {
1822
-
1823
- "use strict";
1824
- module.exports = require("@vtex/client-cms");
1825
-
1826
- /***/ }),
1827
-
1828
- /***/ 78641:
1829
- /***/ ((module) => {
1830
-
1831
- "use strict";
1832
- module.exports = require("draftjs-to-html");
1833
-
1834
- /***/ }),
1835
-
1836
- /***/ 12404:
1837
- /***/ ((module) => {
1838
-
1839
- "use strict";
1840
- module.exports = require("fast-deep-equal");
1841
-
1842
- /***/ }),
1843
-
1844
- /***/ 57343:
1845
- /***/ ((module) => {
1846
-
1847
- "use strict";
1848
- module.exports = require("graphql");
1849
-
1850
- /***/ }),
1851
-
1852
- /***/ 36548:
1853
- /***/ ((module) => {
1854
-
1855
- "use strict";
1856
- module.exports = require("graphql/language");
1857
-
1858
- /***/ }),
1859
-
1860
- /***/ 83430:
1861
- /***/ ((module) => {
1862
-
1863
- "use strict";
1864
- module.exports = require("idb-keyval");
1865
-
1866
- /***/ }),
1867
-
1868
- /***/ 47881:
1869
- /***/ ((module) => {
1870
-
1871
- "use strict";
1872
- module.exports = require("isomorphic-unfetch");
1873
-
1874
- /***/ }),
1875
-
1876
- /***/ 16641:
1877
- /***/ ((module) => {
1878
-
1879
- "use strict";
1880
- module.exports = require("next-seo");
1881
-
1882
- /***/ }),
1883
-
1884
- /***/ 3280:
1885
- /***/ ((module) => {
1886
-
1887
- "use strict";
1888
- module.exports = require("next/dist/shared/lib/app-router-context.js");
1889
-
1890
- /***/ }),
1891
-
1892
- /***/ 92796:
1893
- /***/ ((module) => {
1894
-
1895
- "use strict";
1896
- module.exports = require("next/dist/shared/lib/head-manager-context.js");
1897
-
1898
- /***/ }),
1899
-
1900
- /***/ 94957:
1901
- /***/ ((module) => {
1902
-
1903
- "use strict";
1904
- module.exports = require("next/dist/shared/lib/head.js");
1905
-
1906
- /***/ }),
1907
-
1908
- /***/ 3539:
1909
- /***/ ((module) => {
1910
-
1911
- "use strict";
1912
- module.exports = require("next/dist/shared/lib/i18n/detect-domain-locale.js");
1913
-
1914
- /***/ }),
1915
-
1916
- /***/ 34014:
1917
- /***/ ((module) => {
1918
-
1919
- "use strict";
1920
- module.exports = require("next/dist/shared/lib/i18n/normalize-locale-path.js");
1921
-
1922
- /***/ }),
1923
-
1924
- /***/ 64486:
1925
- /***/ ((module) => {
1926
-
1927
- "use strict";
1928
- module.exports = require("next/dist/shared/lib/image-blur-svg.js");
1929
-
1930
- /***/ }),
1931
-
1932
- /***/ 50744:
1933
- /***/ ((module) => {
1934
-
1935
- "use strict";
1936
- module.exports = require("next/dist/shared/lib/image-config-context.js");
1937
-
1938
- /***/ }),
1939
-
1940
- /***/ 35843:
1941
- /***/ ((module) => {
1942
-
1943
- "use strict";
1944
- module.exports = require("next/dist/shared/lib/image-config.js");
1945
-
1946
- /***/ }),
1947
-
1948
- /***/ 78524:
1949
- /***/ ((module) => {
1950
-
1951
- "use strict";
1952
- module.exports = require("next/dist/shared/lib/is-plain-object.js");
1953
-
1954
- /***/ }),
1955
-
1956
- /***/ 78020:
1957
- /***/ ((module) => {
1958
-
1959
- "use strict";
1960
- module.exports = require("next/dist/shared/lib/mitt.js");
1961
-
1962
- /***/ }),
1963
-
1964
- /***/ 64406:
1965
- /***/ ((module) => {
1966
-
1967
- "use strict";
1968
- module.exports = require("next/dist/shared/lib/page-path/denormalize-page-path.js");
1969
-
1970
- /***/ }),
1971
-
1972
- /***/ 24964:
1973
- /***/ ((module) => {
1974
-
1975
- "use strict";
1976
- module.exports = require("next/dist/shared/lib/router-context.js");
1977
-
1978
- /***/ }),
1979
-
1980
- /***/ 93431:
1981
- /***/ ((module) => {
1982
-
1983
- "use strict";
1984
- module.exports = require("next/dist/shared/lib/router/utils/add-locale.js");
1985
-
1986
- /***/ }),
1987
-
1988
- /***/ 11751:
1989
- /***/ ((module) => {
1990
-
1991
- "use strict";
1992
- module.exports = require("next/dist/shared/lib/router/utils/add-path-prefix.js");
1993
-
1994
- /***/ }),
1995
-
1996
- /***/ 46220:
1997
- /***/ ((module) => {
1998
-
1999
- "use strict";
2000
- module.exports = require("next/dist/shared/lib/router/utils/compare-states.js");
2001
-
2002
- /***/ }),
2003
-
2004
- /***/ 10299:
2005
- /***/ ((module) => {
2006
-
2007
- "use strict";
2008
- module.exports = require("next/dist/shared/lib/router/utils/format-next-pathname-info.js");
2009
-
2010
- /***/ }),
2011
-
2012
- /***/ 23938:
2013
- /***/ ((module) => {
2014
-
2015
- "use strict";
2016
- module.exports = require("next/dist/shared/lib/router/utils/format-url.js");
2017
-
2018
- /***/ }),
2019
-
2020
- /***/ 29565:
2021
- /***/ ((module) => {
2022
-
2023
- "use strict";
2024
- module.exports = require("next/dist/shared/lib/router/utils/get-asset-path-from-route.js");
2025
-
2026
- /***/ }),
2027
-
2028
- /***/ 35789:
2029
- /***/ ((module) => {
2030
-
2031
- "use strict";
2032
- module.exports = require("next/dist/shared/lib/router/utils/get-next-pathname-info.js");
2033
-
2034
- /***/ }),
2035
-
2036
- /***/ 1897:
2037
- /***/ ((module) => {
2038
-
2039
- "use strict";
2040
- module.exports = require("next/dist/shared/lib/router/utils/is-bot.js");
2041
-
2042
- /***/ }),
2043
-
2044
- /***/ 1428:
2045
- /***/ ((module) => {
2046
-
2047
- "use strict";
2048
- module.exports = require("next/dist/shared/lib/router/utils/is-dynamic.js");
2049
-
2050
- /***/ }),
2051
-
2052
- /***/ 28854:
2053
- /***/ ((module) => {
2054
-
2055
- "use strict";
2056
- module.exports = require("next/dist/shared/lib/router/utils/parse-path.js");
2057
-
2058
- /***/ }),
2059
-
2060
- /***/ 91292:
2061
- /***/ ((module) => {
2062
-
2063
- "use strict";
2064
- module.exports = require("next/dist/shared/lib/router/utils/parse-relative-url.js");
2065
-
2066
- /***/ }),
2067
-
2068
- /***/ 34567:
2069
- /***/ ((module) => {
2070
-
2071
- "use strict";
2072
- module.exports = require("next/dist/shared/lib/router/utils/path-has-prefix.js");
2073
-
2074
- /***/ }),
2075
-
2076
- /***/ 80979:
2077
- /***/ ((module) => {
2078
-
2079
- "use strict";
2080
- module.exports = require("next/dist/shared/lib/router/utils/querystring.js");
2081
-
2082
- /***/ }),
2083
-
2084
- /***/ 93297:
2085
- /***/ ((module) => {
2086
-
2087
- "use strict";
2088
- module.exports = require("next/dist/shared/lib/router/utils/remove-trailing-slash.js");
2089
-
2090
- /***/ }),
2091
-
2092
- /***/ 36052:
2093
- /***/ ((module) => {
2094
-
2095
- "use strict";
2096
- module.exports = require("next/dist/shared/lib/router/utils/resolve-rewrites.js");
2097
-
2098
- /***/ }),
2099
-
2100
- /***/ 84226:
2101
- /***/ ((module) => {
2102
-
2103
- "use strict";
2104
- module.exports = require("next/dist/shared/lib/router/utils/route-matcher.js");
2105
-
2106
- /***/ }),
2107
-
2108
- /***/ 95052:
2109
- /***/ ((module) => {
2110
-
2111
- "use strict";
2112
- module.exports = require("next/dist/shared/lib/router/utils/route-regex.js");
2113
-
2114
- /***/ }),
2115
-
2116
- /***/ 59232:
2117
- /***/ ((module) => {
2118
-
2119
- "use strict";
2120
- module.exports = require("next/dist/shared/lib/utils.js");
2121
-
2122
- /***/ }),
2123
-
2124
- /***/ 71853:
2125
- /***/ ((module) => {
2126
-
2127
- "use strict";
2128
- module.exports = require("next/router");
2129
-
2130
- /***/ }),
2131
-
2132
- /***/ 75471:
2133
- /***/ ((module) => {
2134
-
2135
- "use strict";
2136
- module.exports = require("p-limit");
2137
-
2138
- /***/ }),
2139
-
2140
- /***/ 16689:
2141
- /***/ ((module) => {
2142
-
2143
- "use strict";
2144
- module.exports = require("react");
2145
-
2146
- /***/ }),
2147
-
2148
- /***/ 66405:
2149
- /***/ ((module) => {
2150
-
2151
- "use strict";
2152
- module.exports = require("react-dom");
2153
-
2154
- /***/ }),
2155
-
2156
- /***/ 19785:
2157
- /***/ ((module) => {
2158
-
2159
- "use strict";
2160
- module.exports = require("react-intersection-observer");
2161
-
2162
- /***/ }),
2163
-
2164
- /***/ 3789:
2165
- /***/ ((module) => {
2166
-
2167
- "use strict";
2168
- module.exports = require("react-swipeable");
2169
-
2170
- /***/ }),
2171
-
2172
- /***/ 20997:
2173
- /***/ ((module) => {
2174
-
2175
- "use strict";
2176
- module.exports = require("react/jsx-runtime");
2177
-
2178
- /***/ }),
2179
-
2180
- /***/ 73823:
2181
- /***/ ((module) => {
2182
-
2183
- "use strict";
2184
- module.exports = require("tabbable");
2185
-
2186
- /***/ }),
2187
-
2188
- /***/ 40752:
2189
- /***/ ((module) => {
2190
-
2191
- "use strict";
2192
- module.exports = require("tslib");
2193
-
2194
- /***/ }),
2195
-
2196
- /***/ 99664:
2197
- /***/ ((module) => {
2198
-
2199
- "use strict";
2200
- module.exports = import("@envelop/core");;
2201
-
2202
- /***/ }),
2203
-
2204
- /***/ 37886:
2205
- /***/ ((module) => {
2206
-
2207
- "use strict";
2208
- module.exports = import("@envelop/graphql-jit");;
2209
-
2210
- /***/ }),
2211
-
2212
- /***/ 84656:
2213
- /***/ ((module) => {
2214
-
2215
- "use strict";
2216
- module.exports = import("@envelop/parser-cache");;
2217
-
2218
- /***/ }),
2219
-
2220
- /***/ 36093:
2221
- /***/ ((module) => {
2222
-
2223
- "use strict";
2224
- module.exports = import("@envelop/validation-cache");;
2225
-
2226
- /***/ }),
2227
-
2228
- /***/ 97564:
2229
- /***/ ((module) => {
2230
-
2231
- "use strict";
2232
- module.exports = import("chalk");;
2233
-
2234
- /***/ }),
2235
-
2236
- /***/ 15941:
2237
- /***/ ((module) => {
2238
-
2239
- "use strict";
2240
- module.exports = import("swr");;
2241
-
2242
- /***/ }),
2243
-
2244
- /***/ 6113:
2245
- /***/ ((module) => {
2246
-
2247
- "use strict";
2248
- module.exports = require("crypto");
2249
-
2250
- /***/ })
2251
-
2252
- };
2253
- ;
2254
-
2255
- // load runtime
2256
- var __webpack_require__ = require("../../webpack-runtime.js");
2257
- __webpack_require__.C(exports);
2258
- var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
2259
- var __webpack_exports__ = __webpack_require__.X(0, [676,825,487,183,177,74,53,779,854,473,184,897,387,350,693], () => (__webpack_exec__(75779)));
2260
- module.exports = __webpack_exports__;
2261
-
2262
- })();