@faststore/core 2.2.0-alpha.5 → 2.2.0-alpha.7

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