@faststore/core 2.1.5 → 2.1.9

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