@faststore/core 2.1.98 → 2.1.99

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