@faststore/core 2.1.55 → 2.1.57

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 (150) hide show
  1. package/.turbo/turbo-build.log +6 -6
  2. package/faststore.config.js +4 -0
  3. package/package.json +4 -4
  4. package/.next/BUILD_ID +0 -1
  5. package/.next/build-manifest.json +0 -129
  6. package/.next/cache/.tsbuildinfo +0 -1
  7. package/.next/cache/config.json +0 -7
  8. package/.next/cache/eslint/.cache_1gneedd +0 -1
  9. package/.next/cache/next-server.js.nft.json +0 -1
  10. package/.next/cache/webpack/client-production/0.pack +0 -0
  11. package/.next/cache/webpack/client-production/index.pack +0 -0
  12. package/.next/cache/webpack/server-production/0.pack +0 -0
  13. package/.next/cache/webpack/server-production/index.pack +0 -0
  14. package/.next/export-marker.json +0 -1
  15. package/.next/images-manifest.json +0 -1
  16. package/.next/next-server.js.nft.json +0 -1
  17. package/.next/package.json +0 -1
  18. package/.next/prerender-manifest.json +0 -1
  19. package/.next/react-loadable-manifest.json +0 -44
  20. package/.next/required-server-files.json +0 -1
  21. package/.next/routes-manifest.json +0 -1
  22. package/.next/server/chunks/107.js +0 -56
  23. package/.next/server/chunks/143.js +0 -106
  24. package/.next/server/chunks/183.js +0 -91
  25. package/.next/server/chunks/184.js +0 -61
  26. package/.next/server/chunks/186.js +0 -112
  27. package/.next/server/chunks/188.js +0 -119
  28. package/.next/server/chunks/289.js +0 -238
  29. package/.next/server/chunks/309.js +0 -624
  30. package/.next/server/chunks/312.js +0 -688
  31. package/.next/server/chunks/350.js +0 -143
  32. package/.next/server/chunks/430.js +0 -648
  33. package/.next/server/chunks/487.js +0 -9142
  34. package/.next/server/chunks/576.js +0 -91
  35. package/.next/server/chunks/581.js +0 -513
  36. package/.next/server/chunks/650.js +0 -9142
  37. package/.next/server/chunks/676.js +0 -32
  38. package/.next/server/chunks/74.js +0 -4022
  39. package/.next/server/chunks/744.js +0 -60
  40. package/.next/server/chunks/751.js +0 -210
  41. package/.next/server/chunks/825.js +0 -4039
  42. package/.next/server/chunks/854.js +0 -72
  43. package/.next/server/chunks/859.js +0 -959
  44. package/.next/server/chunks/90.js +0 -57
  45. package/.next/server/chunks/907.js +0 -1903
  46. package/.next/server/chunks/934.js +0 -508
  47. package/.next/server/chunks/953.js +0 -1250
  48. package/.next/server/chunks/98.js +0 -124
  49. package/.next/server/chunks/font-manifest.json +0 -1
  50. package/.next/server/font-manifest.json +0 -1
  51. package/.next/server/middleware-build-manifest.js +0 -1
  52. package/.next/server/middleware-manifest.json +0 -6
  53. package/.next/server/middleware-react-loadable-manifest.js +0 -1
  54. package/.next/server/pages/404.js +0 -386
  55. package/.next/server/pages/404.js.nft.json +0 -1
  56. package/.next/server/pages/500.js +0 -388
  57. package/.next/server/pages/500.js.nft.json +0 -1
  58. package/.next/server/pages/[...slug].js +0 -1005
  59. package/.next/server/pages/[...slug].js.nft.json +0 -1
  60. package/.next/server/pages/[slug]/p.js +0 -2364
  61. package/.next/server/pages/[slug]/p.js.nft.json +0 -1
  62. package/.next/server/pages/_app.js +0 -281
  63. package/.next/server/pages/_app.js.nft.json +0 -1
  64. package/.next/server/pages/_document.js +0 -352
  65. package/.next/server/pages/_document.js.nft.json +0 -1
  66. package/.next/server/pages/_error.js +0 -164
  67. package/.next/server/pages/_error.js.nft.json +0 -1
  68. package/.next/server/pages/account.js +0 -363
  69. package/.next/server/pages/account.js.nft.json +0 -1
  70. package/.next/server/pages/api/graphql.js +0 -365
  71. package/.next/server/pages/api/graphql.js.nft.json +0 -1
  72. package/.next/server/pages/api/preview.js +0 -148
  73. package/.next/server/pages/api/preview.js.nft.json +0 -1
  74. package/.next/server/pages/checkout.js +0 -363
  75. package/.next/server/pages/checkout.js.nft.json +0 -1
  76. package/.next/server/pages/en-US/404.html +0 -81
  77. package/.next/server/pages/en-US/404.json +0 -1
  78. package/.next/server/pages/en-US/500.html +0 -81
  79. package/.next/server/pages/en-US/500.json +0 -1
  80. package/.next/server/pages/en-US/account.html +0 -81
  81. package/.next/server/pages/en-US/account.json +0 -1
  82. package/.next/server/pages/en-US/checkout.html +0 -81
  83. package/.next/server/pages/en-US/checkout.json +0 -1
  84. package/.next/server/pages/en-US/login.html +0 -81
  85. package/.next/server/pages/en-US/login.json +0 -1
  86. package/.next/server/pages/en-US/s.html +0 -81
  87. package/.next/server/pages/en-US/s.json +0 -1
  88. package/.next/server/pages/en-US.html +0 -81
  89. package/.next/server/pages/en-US.json +0 -1
  90. package/.next/server/pages/index.js +0 -439
  91. package/.next/server/pages/index.js.nft.json +0 -1
  92. package/.next/server/pages/login.js +0 -368
  93. package/.next/server/pages/login.js.nft.json +0 -1
  94. package/.next/server/pages/s.js +0 -466
  95. package/.next/server/pages/s.js.nft.json +0 -1
  96. package/.next/server/pages-manifest.json +0 -16
  97. package/.next/server/webpack-api-runtime.js +0 -229
  98. package/.next/server/webpack-runtime.js +0 -229
  99. package/.next/static/chunks/143.dd8a556e6957baa1.js +0 -1
  100. package/.next/static/chunks/27.37e4942c9236a071.js +0 -1
  101. package/.next/static/chunks/309.548249b3b3588d3b.js +0 -1
  102. package/.next/static/chunks/33-7f26ec3a5ae7a227.js +0 -1
  103. package/.next/static/chunks/548-ab84e9e8b49413ab.js +0 -1
  104. package/.next/static/chunks/651.7142f31ce1e052b3.js +0 -1
  105. package/.next/static/chunks/676.b7bc42f3e37ff88f.js +0 -1
  106. package/.next/static/chunks/686-78f207384adb0d83.js +0 -1
  107. package/.next/static/chunks/738-67a288ca3569cdbb.js +0 -1
  108. package/.next/static/chunks/741.52f7fb873418346f.js +0 -1
  109. package/.next/static/chunks/751.f9415d15cb5be269.js +0 -1
  110. package/.next/static/chunks/917-bf452887bdb70e03.js +0 -1
  111. package/.next/static/chunks/98.97381d2021f86cd9.js +0 -1
  112. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +0 -1
  113. package/.next/static/chunks/main-fd466221927468fd.js +0 -1
  114. package/.next/static/chunks/pages/404-7812758b206af5cc.js +0 -1
  115. package/.next/static/chunks/pages/500-0c1b954316d40621.js +0 -1
  116. package/.next/static/chunks/pages/[...slug]-fd9cc16734d8f161.js +0 -1
  117. package/.next/static/chunks/pages/[slug]/p-5a83993d8ff855a6.js +0 -1
  118. package/.next/static/chunks/pages/_app-73e1a1982ec17ff6.js +0 -1
  119. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +0 -1
  120. package/.next/static/chunks/pages/account-ac4fa43a2d996db5.js +0 -1
  121. package/.next/static/chunks/pages/checkout-fa13dc49318df859.js +0 -1
  122. package/.next/static/chunks/pages/index-e8b556e0a22cf818.js +0 -1
  123. package/.next/static/chunks/pages/login-5759fba9bb7ae351.js +0 -1
  124. package/.next/static/chunks/pages/s-a63dd94090d398be.js +0 -1
  125. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  126. package/.next/static/chunks/webpack-1d498edbf92d70ad.js +0 -1
  127. package/.next/static/css/527e334fa69cf40a.css +0 -1
  128. package/.next/static/css/6e1a7434f061d0ef.css +0 -1
  129. package/.next/static/css/a2eefb25a4608343.css +0 -1
  130. package/.next/static/css/a4effc58a718c27a.css +0 -1
  131. package/.next/static/css/b3f8dd61e5d35ef6.css +0 -1
  132. package/.next/static/css/cb7d1fcea42fab9c.css +0 -1
  133. package/.next/static/css/dcc281598933766a.css +0 -1
  134. package/.next/static/css/df588bb98c0b0ca6.css +0 -1
  135. package/.next/static/css/e3d648c53f88c1b9.css +0 -1
  136. package/.next/static/css/ebc1e9d3e686bad3.css +0 -1
  137. package/.next/static/eyFnbBbCBoWbp9h5XhZVV/_buildManifest.js +0 -1
  138. package/.next/static/eyFnbBbCBoWbp9h5XhZVV/_ssgManifest.js +0 -1
  139. package/.next/trace +0 -80
  140. package/public/~partytown/debug/partytown-atomics.js +0 -556
  141. package/public/~partytown/debug/partytown-media.js +0 -374
  142. package/public/~partytown/debug/partytown-sandbox-sw.js +0 -543
  143. package/public/~partytown/debug/partytown-sw.js +0 -59
  144. package/public/~partytown/debug/partytown-ww-atomics.js +0 -1789
  145. package/public/~partytown/debug/partytown-ww-sw.js +0 -1781
  146. package/public/~partytown/debug/partytown.js +0 -72
  147. package/public/~partytown/partytown-atomics.js +0 -2
  148. package/public/~partytown/partytown-media.js +0 -2
  149. package/public/~partytown/partytown-sw.js +0 -2
  150. package/public/~partytown/partytown.js +0 -2
@@ -1,1250 +0,0 @@
1
- exports.id = 953;
2
- exports.ids = [953];
3
- exports.modules = {
4
-
5
- /***/ 36252:
6
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7
-
8
- "use strict";
9
-
10
- // EXPORTS
11
- __webpack_require__.d(__webpack_exports__, {
12
- "Z": () => (/* reexport */ sections_BannerText_BannerText)
13
- });
14
-
15
- // EXTERNAL MODULE: external "react"
16
- var external_react_ = __webpack_require__(16689);
17
- ;// CONCATENATED MODULE: ../components/dist/organisms/BannerText/BannerText.js
18
-
19
- const BannerTextContext = (0,external_react_.createContext)(undefined);
20
- const BannerText = (0,external_react_.forwardRef)(function BannerText({ children, testId = 'fs-banner-text', variant = 'primary', colorVariant = 'main', ...otherProps }, ref) {
21
- const context = { variant, colorVariant };
22
- return (external_react_.createElement(BannerTextContext.Provider, { value: context },
23
- external_react_.createElement("article", { ref: ref, "data-fs-banner-text": true, "data-fs-banner-text-variant": variant, "data-fs-banner-text-color-variant": colorVariant, "data-testid": testId, ...otherProps }, children)));
24
- });
25
- function useBannerText() {
26
- const context = (0,external_react_.useContext)(BannerTextContext);
27
- if (context === undefined) {
28
- throw new Error('Do not use BannerText components outside the BannerText context.');
29
- }
30
- return context;
31
- }
32
- /* harmony default export */ const BannerText_BannerText = (BannerText);
33
- //# sourceMappingURL=BannerText.js.map
34
- // EXTERNAL MODULE: ../components/dist/molecules/LinkButton/LinkButton.js
35
- var LinkButton = __webpack_require__(46481);
36
- ;// CONCATENATED MODULE: ../components/dist/organisms/BannerText/BannerTextContent.js
37
-
38
-
39
-
40
- const BannerTextContent = (0,external_react_.forwardRef)(function BannerTextContent({ testId = 'fs-banner-text-content', title, caption, link, linkText, ...otherProps }, ref) {
41
- const { variant, colorVariant } = useBannerText();
42
- return (external_react_.createElement("header", { ref: ref, "data-fs-banner-text-content": true, "data-fs-content": "banner-text", "data-testid": testId, ...otherProps },
43
- external_react_.createElement("div", { "data-fs-banner-text-heading": true, "data-fs-banner-text-color-variant": colorVariant },
44
- external_react_.createElement("h2", null, title),
45
- variant === 'secondary' && caption && external_react_.createElement("p", null, caption)),
46
- external_react_.createElement(LinkButton/* default */.Z, { "data-fs-banner-text-link": true, href: link, variant: variant, inverse: colorVariant === 'main', "aria-label": linkText }, linkText)));
47
- });
48
- /* harmony default export */ const BannerText_BannerTextContent = (BannerTextContent);
49
- //# sourceMappingURL=BannerTextContent.js.map
50
- // EXTERNAL MODULE: ./src/utils/overrides.ts
51
- var overrides = __webpack_require__(59104);
52
- ;// CONCATENATED MODULE: ./src/customizations/components/overrides/BannerText.tsx
53
- // This is an example of how it can be used on the starter.
54
- const SECTION = 'BannerText';
55
- const override = {
56
- section: SECTION
57
- };
58
-
59
- ;// CONCATENATED MODULE: ./src/components/sections/BannerText/Overrides.tsx
60
-
61
-
62
-
63
- const {
64
- BannerText: Overrides_BannerText,
65
- BannerTextContent: Overrides_BannerTextContent
66
- } = (0,overrides/* getSectionOverrides */.f)({
67
- BannerText: BannerText_BannerText,
68
- BannerTextContent: BannerText_BannerTextContent
69
- }, override);
70
-
71
- // EXTERNAL MODULE: ./src/components/sections/Section/index.ts
72
- var Section = __webpack_require__(57067);
73
- // EXTERNAL MODULE: ./src/components/sections/BannerText/section.module.scss
74
- var section_module = __webpack_require__(37283);
75
- var section_module_default = /*#__PURE__*/__webpack_require__.n(section_module);
76
- // EXTERNAL MODULE: external "react/jsx-runtime"
77
- var jsx_runtime_ = __webpack_require__(20997);
78
- ;// CONCATENATED MODULE: ./src/components/sections/BannerText/BannerText.tsx
79
- 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; }
80
-
81
- 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; }
82
-
83
- 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; }
84
-
85
-
86
-
87
-
88
-
89
-
90
- // TODO: Change actionPath and actionLabel with Link
91
- function BannerText_BannerText_BannerText({
92
- title,
93
- caption,
94
- link: {
95
- url: linkUrl = Overrides_BannerTextContent.props.link,
96
- text: linkText = Overrides_BannerTextContent.props.linkText
97
- },
98
- variant = Overrides_BannerText.props.variant ?? 'primary',
99
- colorVariant = Overrides_BannerText.props.colorVariant ?? 'main'
100
- }) {
101
- return /*#__PURE__*/jsx_runtime_.jsx(Section/* default */.Z, {
102
- className: `${(section_module_default()).section} section-banner layout__section`,
103
- children: /*#__PURE__*/jsx_runtime_.jsx("div", {
104
- className: "layout__content",
105
- children: /*#__PURE__*/jsx_runtime_.jsx(Overrides_BannerText.Component, _objectSpread(_objectSpread({}, Overrides_BannerText.props), {}, {
106
- variant: variant,
107
- colorVariant: colorVariant,
108
- children: /*#__PURE__*/jsx_runtime_.jsx(Overrides_BannerTextContent.Component, _objectSpread(_objectSpread({}, Overrides_BannerTextContent.props), {}, {
109
- title: title,
110
- caption: caption,
111
- link: linkUrl,
112
- linkText: linkText
113
- }))
114
- }))
115
- })
116
- });
117
- }
118
-
119
- /* harmony default export */ const sections_BannerText_BannerText = (BannerText_BannerText_BannerText);
120
- ;// CONCATENATED MODULE: ./src/components/sections/BannerText/index.ts
121
-
122
-
123
- /***/ }),
124
-
125
- /***/ 68170:
126
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
127
-
128
- "use strict";
129
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
130
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
131
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
132
- /* harmony export */ });
133
- /* harmony import */ var src_components_ui_Newsletter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24798);
134
- /* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57067);
135
- /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(37781);
136
- /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_3__);
137
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20997);
138
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__);
139
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_ui_Newsletter__WEBPACK_IMPORTED_MODULE_0__]);
140
- src_components_ui_Newsletter__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
141
- const _excluded = ["icon", "title", "description", "privacyPolicy", "emailInputLabel", "displayNameInput", "nameInputLabel", "subscribeButtonLabel", "card", "toastSubscribe", "toastSubscribeError"];
142
-
143
- 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; }
144
-
145
- 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; }
146
-
147
- 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; }
148
-
149
- 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; }
150
-
151
- 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; }
152
-
153
-
154
-
155
-
156
-
157
-
158
- const Newsletter = function Newsletter(_ref) {
159
- let {
160
- icon,
161
- title,
162
- description,
163
- privacyPolicy,
164
- emailInputLabel,
165
- displayNameInput,
166
- nameInputLabel,
167
- subscribeButtonLabel,
168
- card,
169
- toastSubscribe,
170
- toastSubscribeError
171
- } = _ref,
172
- otherProps = _objectWithoutProperties(_ref, _excluded);
173
-
174
- return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(_Section__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
175
- className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_3___default().section)} section-newsletter`,
176
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_ui_Newsletter__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z, _objectSpread({
177
- icon: icon,
178
- title: title,
179
- description: description,
180
- privacyPolicy: privacyPolicy,
181
- emailInputLabel: emailInputLabel,
182
- displayNameInput: displayNameInput,
183
- nameInputLabel: nameInputLabel,
184
- subscribeButtonLabel: subscribeButtonLabel,
185
- toastSubscribe: toastSubscribe,
186
- toastSubscribeError: toastSubscribeError,
187
- card: card
188
- }, otherProps))
189
- });
190
- };
191
-
192
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Newsletter);
193
- __webpack_async_result__();
194
- } catch(e) { __webpack_async_result__(e); } });
195
-
196
- /***/ }),
197
-
198
- /***/ 97678:
199
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
200
-
201
- "use strict";
202
-
203
- // EXPORTS
204
- __webpack_require__.d(__webpack_exports__, {
205
- "zx": () => (/* binding */ Overrides_Button),
206
- "N9": () => (/* binding */ HeaderIcon),
207
- "yk": () => (/* binding */ InputFieldEmail),
208
- "s9": () => (/* binding */ InputFieldName),
209
- "eA": () => (/* binding */ ToastIconError),
210
- "$B": () => (/* binding */ ToastIconSuccess)
211
- });
212
-
213
- // EXTERNAL MODULE: ../components/dist/atoms/Icon/Icon.js
214
- var Icon = __webpack_require__(82185);
215
- // EXTERNAL MODULE: ../components/dist/molecules/InputField/InputField.js
216
- var InputField = __webpack_require__(87107);
217
- // EXTERNAL MODULE: ../components/dist/atoms/Button/Button.js
218
- var Button = __webpack_require__(33815);
219
- // EXTERNAL MODULE: ./src/utils/overrides.ts
220
- var overrides = __webpack_require__(59104);
221
- ;// CONCATENATED MODULE: ./src/customizations/components/overrides/Newsletter.tsx
222
- // This is an example of how it can be used on the starter.
223
- const SECTION = 'Newsletter';
224
- const override = {
225
- section: SECTION
226
- };
227
-
228
- ;// CONCATENATED MODULE: ./src/components/sections/Newsletter/Overrides.tsx
229
-
230
-
231
-
232
- const {
233
- ToastIconSuccess,
234
- ToastIconError,
235
- HeaderIcon,
236
- InputFieldName,
237
- InputFieldEmail,
238
- Button: Overrides_Button
239
- } = (0,overrides/* getSectionOverrides */.f)({
240
- ToastIconSuccess: Icon/* default */.Z,
241
- ToastIconError: Icon/* default */.Z,
242
- HeaderIcon: Icon/* default */.Z,
243
- InputFieldName: InputField/* default */.Z,
244
- InputFieldEmail: InputField/* default */.Z,
245
- Button: Button/* default */.Z
246
- }, override);
247
-
248
-
249
- /***/ }),
250
-
251
- /***/ 87191:
252
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
253
-
254
- "use strict";
255
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
256
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
257
- /* harmony export */ "Z": () => (/* reexport safe */ _Newsletter__WEBPACK_IMPORTED_MODULE_0__.Z)
258
- /* harmony export */ });
259
- /* harmony import */ var _Newsletter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(68170);
260
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Newsletter__WEBPACK_IMPORTED_MODULE_0__]);
261
- _Newsletter__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
262
-
263
- __webpack_async_result__();
264
- } catch(e) { __webpack_async_result__(e); } });
265
-
266
- /***/ }),
267
-
268
- /***/ 9557:
269
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
270
-
271
- "use strict";
272
-
273
- // EXPORTS
274
- __webpack_require__.d(__webpack_exports__, {
275
- "IW": () => (/* binding */ Overrides_ProductShelf),
276
- "EM": () => (/* binding */ __experimentalCarousel),
277
- "zM": () => (/* binding */ __experimentalProductCard)
278
- });
279
-
280
- // EXTERNAL MODULE: ../components/dist/organisms/ProductShelf/ProductShelf.js
281
- var ProductShelf = __webpack_require__(2619);
282
- // EXTERNAL MODULE: ./src/components/product/ProductCard/index.ts + 4 modules
283
- var ProductCard = __webpack_require__(853);
284
- // EXTERNAL MODULE: external "react"
285
- var external_react_ = __webpack_require__(16689);
286
- // EXTERNAL MODULE: ../components/dist/molecules/IconButton/IconButton.js
287
- var IconButton = __webpack_require__(90518);
288
- // EXTERNAL MODULE: ../components/dist/atoms/Icon/Icon.js
289
- var Icon = __webpack_require__(82185);
290
- // EXTERNAL MODULE: external "react-swipeable"
291
- var external_react_swipeable_ = __webpack_require__(3789);
292
- ;// CONCATENATED MODULE: ../components/dist/hooks/useSlider.js
293
-
294
-
295
- const nextPage = (current, total) => (current + 1) % total;
296
- const previousPage = (current, total) => (total - ((total - current + 1) % total)) % total;
297
- function reducer(state, action) {
298
- switch (action.type) {
299
- case 'NEXT_PAGE': {
300
- // If `state.infinite` is true, we need to take into account an extra
301
- // page in the calculation. This extra page is a clone of the first page.
302
- const adjustedTotalPages = state.infinite
303
- ? state.totalPages + 1
304
- : state.totalPages;
305
- const nextPageIndex = nextPage(state.currentPage, adjustedTotalPages);
306
- const nextItemIndex = (nextPageIndex % adjustedTotalPages) * state.itemsPerPage;
307
- return {
308
- ...state,
309
- sliding: true,
310
- slideDirection: 'next',
311
- currentItem: nextItemIndex,
312
- currentPage: nextPageIndex,
313
- };
314
- }
315
- case 'PREVIOUS_PAGE': {
316
- // If `state.infinite` is true, we need to take into account an extra
317
- // page in the calculation. This extra page is a clone of the first page.
318
- const adjustedTotalPages = state.infinite
319
- ? state.totalPages + 1
320
- : state.totalPages;
321
- // If `state.infinite` is true and we're currently on page 0, we need to
322
- // let the slider go to page -1. This -1 page is a clone of the last page.
323
- const shouldGoToClone = state.infinite && state.currentPage === 0;
324
- const previousPageIndex = shouldGoToClone
325
- ? -1
326
- : previousPage(state.currentPage, state.totalPages);
327
- return {
328
- ...state,
329
- sliding: true,
330
- slideDirection: 'previous',
331
- currentItem: (previousPageIndex % adjustedTotalPages) * state.itemsPerPage,
332
- currentPage: previousPageIndex,
333
- };
334
- }
335
- case 'GO_TO_PAGE': {
336
- if (action.payload.pageIndex === state.currentPage) {
337
- return state;
338
- }
339
- return {
340
- ...state,
341
- sliding: action.payload.shouldSlide,
342
- slideDirection: action.payload.pageIndex > state.currentPage ? 'next' : 'previous',
343
- currentItem: (action.payload.pageIndex % state.totalPages) * state.itemsPerPage,
344
- currentPage: action.payload.pageIndex,
345
- };
346
- }
347
- case 'STOP_SLIDE':
348
- return { ...state, sliding: false };
349
- default:
350
- return state;
351
- }
352
- }
353
- const defaultSliderState = (totalItems, itemsPerPage, infinite) => ({
354
- currentItem: 0,
355
- currentPage: 0,
356
- sliding: false,
357
- slideDirection: 'next',
358
- totalItems,
359
- itemsPerPage,
360
- totalPages: Math.ceil(totalItems / itemsPerPage),
361
- infinite,
362
- });
363
- const slide = (page, dispatch) => {
364
- if (page === 'next') {
365
- dispatch({ type: 'NEXT_PAGE' });
366
- }
367
- if (page === 'previous') {
368
- dispatch({ type: 'PREVIOUS_PAGE' });
369
- }
370
- if (typeof page === 'number') {
371
- dispatch({
372
- type: 'GO_TO_PAGE',
373
- payload: {
374
- pageIndex: page,
375
- shouldSlide: true,
376
- },
377
- });
378
- }
379
- };
380
- const useSlider = ({ totalItems, itemsPerPage = 1, infiniteMode = false, shouldSlideOnSwipe = true, ...swipeableConfigOverrides }) => {
381
- const [sliderState, sliderDispatch] = (0,external_react_.useReducer)(reducer, undefined, () => defaultSliderState(totalItems, itemsPerPage, infiniteMode));
382
- const handlers = (0,external_react_swipeable_.useSwipeable)({
383
- onSwipedRight: () => shouldSlideOnSwipe && slide('previous', sliderDispatch),
384
- onSwipedLeft: () => shouldSlideOnSwipe && slide('next', sliderDispatch),
385
- trackMouse: true,
386
- ...swipeableConfigOverrides,
387
- });
388
- return {
389
- handlers,
390
- slide,
391
- sliderState,
392
- sliderDispatch,
393
- };
394
- };
395
- //# sourceMappingURL=useSlider.js.map
396
- // EXTERNAL MODULE: ../components/dist/atoms/Button/Button.js
397
- var Button = __webpack_require__(33815);
398
- ;// CONCATENATED MODULE: ../components/dist/molecules/Carousel/CarouselBullets.js
399
-
400
-
401
- const defaultAriaLabel = (id, idx, isActive) => isActive ? `Current page from ${id}` : `Go to page ${idx + 1} from ${id}`;
402
- const CarouselBullets = (0,external_react_.forwardRef)(function Bullets({ id, totalQuantity, activeBullet, onClick, testId = 'fs-carousel-bullets', ariaLabelGenerator = defaultAriaLabel, ariaControlsGenerator, ...otherProps }, ref) {
403
- const bulletIndexes = (0,external_react_.useMemo)(() => Array(totalQuantity).fill(0), [totalQuantity]);
404
- return (external_react_.createElement("div", { ref: ref, "data-fs-carousel-bullets": true, "data-testid": testId, role: "tablist", ...otherProps }, bulletIndexes.map((_, idx) => {
405
- const isActive = activeBullet === idx;
406
- return (external_react_.createElement(Button/* default */.Z, { key: `${id}-${idx}`, role: "tab", tabIndex: -1, "data-fs-carousel-bullet": true, testId: `${testId}-bullet`, onClick: (e) => onClick(e, idx), "aria-label": ariaLabelGenerator(id, idx, isActive), "aria-controls": ariaControlsGenerator?.(idx), "aria-selected": isActive, variant: "tertiary" }));
407
- })));
408
- });
409
- /* harmony default export */ const Carousel_CarouselBullets = (CarouselBullets);
410
- //# sourceMappingURL=CarouselBullets.js.map
411
- ;// CONCATENATED MODULE: ../components/dist/hooks/useSlideVisibility.js
412
-
413
- function isSlideVisible({ itemsPerPage, currentSlide, slideIdx, totalItems, }) {
414
- const isClonedSlide = currentSlide < 0 || currentSlide >= totalItems;
415
- const isVisible = slideIdx >= currentSlide && slideIdx < currentSlide + itemsPerPage;
416
- return isClonedSlide || isVisible;
417
- }
418
- const useSlideVisibility = ({ currentSlide, itemsPerPage, totalItems, }) => {
419
- /** Keeps track of slides that have been visualized before.
420
- * We want to keep rendering them because the issue is mostly rendering
421
- * slides that might never be viewed; On the other hand, hiding slides
422
- * that were visible causes visual glitches */
423
- const visitedSlides = (0,external_react_.useRef)(new Set());
424
- (0,external_react_.useEffect)(() => {
425
- for (let i = 0; i < itemsPerPage; i++) {
426
- visitedSlides.current.add(currentSlide + i);
427
- }
428
- }, [currentSlide, itemsPerPage]);
429
- const isItemVisible = (index) => isSlideVisible({
430
- slideIdx: index,
431
- currentSlide,
432
- itemsPerPage,
433
- totalItems,
434
- });
435
- const shouldRenderItem = (index) => {
436
- return visitedSlides.current.has(index) || isItemVisible(index);
437
- };
438
- return { shouldRenderItem, isItemVisible };
439
- };
440
- //# sourceMappingURL=useSlideVisibility.js.map
441
- ;// CONCATENATED MODULE: ../components/dist/molecules/Carousel/CarouselItem.js
442
-
443
-
444
- function CarouselItem({ id, index, state, children, totalItems, infiniteMode, isScrollCarousel, }) {
445
- const { isItemVisible, shouldRenderItem } = useSlideVisibility({
446
- totalItems,
447
- currentSlide: state.currentItem,
448
- itemsPerPage: state.itemsPerPage,
449
- });
450
- const style = (!isScrollCarousel && { width: '100%' }) ||
451
- (isScrollCarousel && {
452
- maxWidth: '60%',
453
- display: 'inline-block',
454
- });
455
- const shouldDisplayItem = isScrollCarousel || shouldRenderItem(index - Number(infiniteMode));
456
- return (external_react_.createElement("li", { style: style, id: `${id}-carousel-item-${index}`, "data-fs-carousel-item": true, "data-fs-carousel-item-visible": isItemVisible(index - Number(infiniteMode)) || undefined }, shouldDisplayItem ? children : null));
457
- }
458
- /* harmony default export */ const Carousel_CarouselItem = (CarouselItem);
459
- //# sourceMappingURL=CarouselItem.js.map
460
- ;// CONCATENATED MODULE: ../components/dist/molecules/Carousel/Carousel.js
461
-
462
-
463
-
464
-
465
-
466
- const createTransformValues = (infinite, totalItems) => {
467
- const transformMap = {};
468
- const slideWidth = 100 / totalItems;
469
- for (let idx = 0; idx < totalItems; ++idx) {
470
- const currIdx = infinite ? idx - 1 : idx;
471
- const transformValue = -(slideWidth * idx);
472
- transformMap[currIdx] = transformValue;
473
- }
474
- return transformMap;
475
- };
476
- function Carousel({ children, className, 'aria-label': ariaLabel, infiniteMode = true, controls = 'complete', testId = 'fs-carousel', transition = {
477
- duration: 400,
478
- property: 'transform',
479
- }, id = 'fs-carousel', variant = 'slide', itemsPerPage = 1, navigationIcons = undefined, ...swipeableConfigOverrides }) {
480
- const carouselTrackRef = (0,external_react_.useRef)(null);
481
- const isSlideCarousel = variant === 'slide';
482
- const isScrollCarousel = variant === 'scroll';
483
- const childrenArray = external_react_.Children.toArray(children);
484
- const childrenCount = childrenArray.length;
485
- const numberOfSlides = infiniteMode ? childrenCount + 2 : childrenCount;
486
- const slidingTransition = `${transition.property} ${transition.duration}ms ${transition.timing ?? ''} ${transition.delay ?? ''}`;
487
- const { handlers, slide, sliderState, sliderDispatch } = useSlider({
488
- itemsPerPage,
489
- infiniteMode,
490
- totalItems: childrenCount,
491
- shouldSlideOnSwipe: isSlideCarousel,
492
- ...swipeableConfigOverrides,
493
- });
494
- const pagesCount = Math.ceil(childrenCount / sliderState.itemsPerPage);
495
- const showNavigationArrows = pagesCount !== 1 &&
496
- (controls === 'complete' || controls === 'navigationArrows');
497
- const showPaginationBullets = pagesCount !== 1 &&
498
- (controls === 'complete' || controls === 'paginationBullets');
499
- const transformValues = (0,external_react_.useMemo)(() => createTransformValues(infiniteMode, numberOfSlides), [numberOfSlides, infiniteMode]);
500
- const postRenderedSlides = infiniteMode && children ? childrenArray.slice(0, 1) : [];
501
- const preRenderedSlides = infiniteMode && children ? childrenArray.slice(childrenCount - 1) : [];
502
- const slides = preRenderedSlides.concat(children ?? [], postRenderedSlides);
503
- const slideCarouselTrackStyle = (0,external_react_.useMemo)(() => ({
504
- display: 'flex',
505
- width: `${numberOfSlides * 100}%`,
506
- transition: sliderState.sliding ? slidingTransition : undefined,
507
- transform: `translate3d(${transformValues[sliderState.currentPage]}%, 0, 0)`,
508
- }), [
509
- numberOfSlides,
510
- transformValues,
511
- slidingTransition,
512
- sliderState.sliding,
513
- sliderState.currentPage,
514
- ]);
515
- const scrollCarouselTrackStyle = (0,external_react_.useMemo)(() => ({
516
- width: '100%',
517
- display: 'block',
518
- overflowX: 'scroll',
519
- whiteSpace: 'nowrap',
520
- }), []);
521
- const carouselTrackStyle = (isSlideCarousel && slideCarouselTrackStyle) ||
522
- (isScrollCarousel && scrollCarouselTrackStyle);
523
- const slidePrevious = () => {
524
- if (sliderState.sliding ||
525
- (!infiniteMode && sliderState.currentPage === 0)) {
526
- return;
527
- }
528
- slide('previous', sliderDispatch);
529
- };
530
- const slideNext = () => {
531
- if (sliderState.sliding ||
532
- (!infiniteMode && sliderState.currentPage === childrenCount - 1)) {
533
- return;
534
- }
535
- slide('next', sliderDispatch);
536
- };
537
- const onScrollTrack = (event) => {
538
- if (isSlideCarousel || itemsPerPage > 1) {
539
- return;
540
- }
541
- const itemWidth = Number(event.currentTarget.firstElementChild?.scrollWidth);
542
- const scrollOffset = event.currentTarget?.scrollLeft;
543
- const formatter = scrollOffset > itemWidth / 2 ? Math.round : Math.floor;
544
- const page = formatter(scrollOffset / itemWidth);
545
- slide(page, sliderDispatch);
546
- };
547
- const onTransitionTrackEnd = () => {
548
- sliderDispatch({
549
- type: 'STOP_SLIDE',
550
- });
551
- if (infiniteMode && sliderState.currentItem >= childrenCount) {
552
- sliderDispatch({
553
- type: 'GO_TO_PAGE',
554
- payload: {
555
- pageIndex: 0,
556
- shouldSlide: false,
557
- },
558
- });
559
- }
560
- if (infiniteMode && sliderState.currentItem < 0) {
561
- sliderDispatch({
562
- type: 'GO_TO_PAGE',
563
- payload: {
564
- pageIndex: sliderState.totalPages - 1,
565
- shouldSlide: false,
566
- },
567
- });
568
- }
569
- };
570
- const onScrollPagination = async (index, slideDirection) => {
571
- if (slideDirection === 'previous' && sliderState.currentPage === 0) {
572
- return;
573
- }
574
- if (slideDirection === 'next' &&
575
- sliderState.currentPage === sliderState.totalPages - 1) {
576
- return;
577
- }
578
- let scrollOffset;
579
- const carouselItemsWidth = Number(carouselTrackRef.current?.firstElementChild?.clientWidth);
580
- if (itemsPerPage > 1) {
581
- scrollOffset = index * carouselItemsWidth * itemsPerPage;
582
- }
583
- else {
584
- scrollOffset = index * carouselItemsWidth - carouselItemsWidth * 0.125;
585
- }
586
- carouselTrackRef.current?.scrollTo({
587
- left: scrollOffset,
588
- behavior: 'smooth',
589
- });
590
- slide(index, sliderDispatch);
591
- };
592
- // accessible behavior for tablist
593
- const handleBulletsKeyDown = (event) => {
594
- switch (event.key) {
595
- case 'ArrowLeft': {
596
- isSlideCarousel && slidePrevious();
597
- isScrollCarousel &&
598
- onScrollPagination(sliderState.currentPage - 1, 'previous');
599
- break;
600
- }
601
- case 'ArrowRight': {
602
- isSlideCarousel && slideNext();
603
- isScrollCarousel &&
604
- onScrollPagination(sliderState.currentPage + 1, 'next');
605
- break;
606
- }
607
- case 'Home': {
608
- slide(0, sliderDispatch);
609
- break;
610
- }
611
- case 'End': {
612
- slide(childrenCount - 1, sliderDispatch);
613
- break;
614
- }
615
- default:
616
- }
617
- };
618
- return (external_react_.createElement("section", { id: id, "data-fs-carousel": true, className: className, "data-testid": testId, "aria-label": ariaLabel },
619
- external_react_.createElement("div", { "data-fs-carousel-track-container": true, style: {
620
- width: '100%',
621
- overflow: 'hidden',
622
- display: isScrollCarousel ? 'block' : undefined,
623
- }, ...handlers },
624
- external_react_.createElement("ul", { "aria-live": "polite", ref: carouselTrackRef, style: carouselTrackStyle, "data-fs-carousel-track": true, onScroll: onScrollTrack, onTransitionEnd: onTransitionTrackEnd }, slides.map((currentSlide, idx) => (external_react_.createElement(Carousel_CarouselItem, { id: id, index: idx, key: String(idx), state: sliderState, totalItems: childrenCount, infiniteMode: infiniteMode, isScrollCarousel: isScrollCarousel }, currentSlide))))),
625
- showNavigationArrows && (external_react_.createElement("div", { "data-fs-carousel-controls": true },
626
- external_react_.createElement(IconButton/* default */.Z, { "data-fs-carousel-control": "left", "aria-controls": id, "aria-label": "previous", icon: navigationIcons?.left ?? (external_react_.createElement(Icon/* default */.Z, { name: "ArrowLeft", width: 20, height: 20, weight: "bold" })), onClick: () => {
627
- isSlideCarousel && slidePrevious();
628
- isScrollCarousel &&
629
- onScrollPagination(sliderState.currentPage - 1, 'previous');
630
- } }),
631
- external_react_.createElement(IconButton/* default */.Z, { "data-fs-carousel-control": "right", "aria-controls": id, "aria-label": "next", icon: navigationIcons?.right ?? (external_react_.createElement(Icon/* default */.Z, { name: "ArrowRight", width: 20, height: 20, weight: "bold" })), onClick: () => {
632
- isSlideCarousel && slideNext();
633
- isScrollCarousel &&
634
- onScrollPagination(sliderState.currentPage + 1, 'next');
635
- } }))),
636
- showPaginationBullets && (external_react_.createElement(Carousel_CarouselBullets, { id: id, tabIndex: 0, activeBullet: sliderState.currentPage, totalQuantity: pagesCount, onKeyDown: handleBulletsKeyDown, onClick: async (_, idx) => {
637
- isSlideCarousel &&
638
- !sliderState.sliding &&
639
- slide(idx, sliderDispatch);
640
- isScrollCarousel && onScrollPagination(idx);
641
- }, onFocus: (event) => event.currentTarget.focus(), ariaControlsGenerator: (idx) => `${id}-carousel-item-${idx}` }))));
642
- }
643
- /* harmony default export */ const Carousel_Carousel = (Carousel);
644
- //# sourceMappingURL=Carousel.js.map
645
- // EXTERNAL MODULE: external "react/jsx-runtime"
646
- var jsx_runtime_ = __webpack_require__(20997);
647
- ;// CONCATENATED MODULE: ./src/components/ui/Carousel/Carousel.tsx
648
-
649
-
650
-
651
- function Carousel_Carousel_Carousel({
652
- id,
653
- testId,
654
- children,
655
- itemsPerPage = 5
656
- }) {
657
- const isMobile = window.innerWidth <= 768;
658
- return /*#__PURE__*/jsx_runtime_.jsx(Carousel_Carousel, {
659
- id: id,
660
- testId: testId,
661
- variant: "scroll",
662
- infiniteMode: false,
663
- itemsPerPage: isMobile ? 1 : itemsPerPage,
664
- children: children
665
- });
666
- }
667
-
668
- /* harmony default export */ const ui_Carousel_Carousel = (Carousel_Carousel_Carousel);
669
- ;// CONCATENATED MODULE: ./src/components/ui/Carousel/index.ts
670
-
671
- // EXTERNAL MODULE: ./src/utils/overrides.ts
672
- var overrides = __webpack_require__(59104);
673
- ;// CONCATENATED MODULE: ./src/customizations/components/overrides/ProductShelf.tsx
674
- // This is an example of how it can be used on the starter.
675
- const SECTION = 'ProductShelf';
676
- const override = {
677
- section: SECTION
678
- };
679
-
680
- ;// CONCATENATED MODULE: ./src/components/sections/ProductShelf/Overrides.tsx
681
-
682
-
683
-
684
-
685
-
686
- const {
687
- ProductShelf: Overrides_ProductShelf,
688
- __experimentalCarousel,
689
- __experimentalProductCard
690
- } = (0,overrides/* getSectionOverrides */.f)({
691
- ProductShelf: ProductShelf/* default */.Z,
692
- __experimentalCarousel: ui_Carousel_Carousel,
693
- __experimentalProductCard: ProductCard/* default */.Z
694
- }, override);
695
-
696
-
697
- /***/ }),
698
-
699
- /***/ 14396:
700
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
701
-
702
- "use strict";
703
-
704
- // EXPORTS
705
- __webpack_require__.d(__webpack_exports__, {
706
- "Z": () => (/* reexport */ ProductShelfSkeleton_ProductShelfSkeleton)
707
- });
708
-
709
- // EXTERNAL MODULE: ../components/dist/organisms/ProductShelf/ProductShelf.js
710
- var ProductShelf = __webpack_require__(2619);
711
- // EXTERNAL MODULE: external "react"
712
- var external_react_ = __webpack_require__(16689);
713
- ;// CONCATENATED MODULE: ../components/dist/organisms/ProductShelf/ProductShelfItems.js
714
-
715
- const ProductShelfItems = (0,external_react_.forwardRef)(function ProductShelfItems({ testId = 'fs-product-shelf-items', children, ...otherProps }, ref) {
716
- return (external_react_.createElement("ul", { role: "list", ref: ref, "data-fs-product-shelf-items": true, "data-fs-content": "product-shelf", "data-testid": testId, ...otherProps }, children));
717
- });
718
- /* harmony default export */ const ProductShelf_ProductShelfItems = (ProductShelfItems);
719
- //# sourceMappingURL=ProductShelfItems.js.map
720
- ;// CONCATENATED MODULE: ../components/dist/organisms/ProductShelf/ProductShelfItem.js
721
-
722
- const ProductShelfItem = (0,external_react_.forwardRef)(function ProductShelfItem({ testId = 'fs-product-shelf-item', children, ...otherProps }, ref) {
723
- return (external_react_.createElement("li", { role: "listitem", ref: ref, "data-fs-product-shelf-item": true, "data-testid": testId, ...otherProps }, children));
724
- });
725
- /* harmony default export */ const ProductShelf_ProductShelfItem = (ProductShelfItem);
726
- //# sourceMappingURL=ProductShelfItem.js.map
727
- // EXTERNAL MODULE: ./src/constants.ts
728
- var constants = __webpack_require__(18459);
729
- // EXTERNAL MODULE: ./src/components/skeletons/ProductCardSkeleton/index.ts + 1 modules
730
- var ProductCardSkeleton = __webpack_require__(73288);
731
- // EXTERNAL MODULE: external "react/jsx-runtime"
732
- var jsx_runtime_ = __webpack_require__(20997);
733
- ;// CONCATENATED MODULE: ./src/components/skeletons/ProductShelfSkeleton/ProductShelfSkeleton.tsx
734
-
735
-
736
-
737
-
738
-
739
-
740
- function ProductShelfSkeleton({
741
- children,
742
- aspectRatio,
743
- loading = true
744
- }) {
745
- return loading ? /*#__PURE__*/jsx_runtime_.jsx(ProductShelf/* default */.Z, {
746
- "data-fs-product-shelf-skeleton": true,
747
- children: /*#__PURE__*/jsx_runtime_.jsx(ProductShelf_ProductShelfItems, {
748
- children: Array.from({
749
- length: constants/* ITEMS_PER_SECTION */.K
750
- }, (_, index) => /*#__PURE__*/jsx_runtime_.jsx(ProductShelf_ProductShelfItem, {
751
- children: /*#__PURE__*/jsx_runtime_.jsx(ProductCardSkeleton/* default */.Z, {
752
- aspectRatio: aspectRatio,
753
- sectioned: true,
754
- bordered: true
755
- })
756
- }, String(index)))
757
- })
758
- }) : /*#__PURE__*/jsx_runtime_.jsx(jsx_runtime_.Fragment, {
759
- children: children
760
- });
761
- }
762
-
763
- /* harmony default export */ const ProductShelfSkeleton_ProductShelfSkeleton = (ProductShelfSkeleton);
764
- ;// CONCATENATED MODULE: ./src/components/skeletons/ProductShelfSkeleton/index.ts
765
-
766
-
767
- /***/ }),
768
-
769
- /***/ 870:
770
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
771
-
772
- "use strict";
773
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
774
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
775
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
776
- /* harmony export */ });
777
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
778
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
779
- /* harmony import */ var draft_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26911);
780
- /* harmony import */ var draft_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(draft_js__WEBPACK_IMPORTED_MODULE_1__);
781
- /* harmony import */ var draft_js_export_html__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4539);
782
- /* harmony import */ var draft_js_export_html__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(draft_js_export_html__WEBPACK_IMPORTED_MODULE_2__);
783
- /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(35728);
784
- /* harmony import */ var src_sdk_newsletter_useNewsletter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(35822);
785
- /* harmony import */ var src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(97678);
786
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20997);
787
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__);
788
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_sdk_newsletter_useNewsletter__WEBPACK_IMPORTED_MODULE_3__]);
789
- src_sdk_newsletter_useNewsletter__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
790
- 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; }
791
-
792
- 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; }
793
-
794
- 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; }
795
-
796
-
797
-
798
-
799
-
800
-
801
-
802
-
803
-
804
-
805
-
806
-
807
- const cmsToHtml = content => {
808
- if (!content) {
809
- return '';
810
- }
811
-
812
- const rawDraftContentState = JSON.parse(content);
813
- const html = (0,draft_js_export_html__WEBPACK_IMPORTED_MODULE_2__.stateToHTML)((0,draft_js__WEBPACK_IMPORTED_MODULE_1__.convertFromRaw)(rawDraftContentState), {
814
- entityStyleFn: entity => {
815
- const entityType = entity.get('type').toLowerCase();
816
-
817
- if (entityType === 'link') {
818
- const data = entity.getData();
819
- return {
820
- element: 'a',
821
- attributes: {
822
- 'data-fs-link': 'true',
823
- 'data-fs-link-variant': 'inline',
824
- 'data-fs-link-inverse': 'true',
825
- 'data-fs-link-size': 'regular',
826
- 'data-testid': 'fs-link',
827
- href: data.url
828
- }
829
- };
830
- }
831
- }
832
- });
833
- return html;
834
- };
835
-
836
- const Newsletter = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Newsletter({
837
- icon,
838
- title,
839
- description,
840
- privacyPolicy,
841
- emailInputLabel,
842
- displayNameInput,
843
- nameInputLabel,
844
- subscribeButtonLabel,
845
- subscribeButtonLoadingLabel,
846
- card,
847
- toastSubscribe,
848
- toastSubscribeError
849
- }, ref) {
850
- const {
851
- subscribeUser,
852
- loading,
853
- data
854
- } = (0,src_sdk_newsletter_useNewsletter__WEBPACK_IMPORTED_MODULE_3__/* .useNewsletter */ .u)();
855
- const nameInputRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
856
- const emailInputRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
857
- const subscriptionButtonLabel = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => loading ? subscribeButtonLoadingLabel : subscribeButtonLabel, [loading, subscribeButtonLabel, subscribeButtonLoadingLabel]);
858
- const {
859
- pushToast
860
- } = (0,_faststore_ui__WEBPACK_IMPORTED_MODULE_6__/* .useUI */ .l)();
861
-
862
- const handleSubmit = event => {
863
- event.preventDefault();
864
- subscribeUser({
865
- data: {
866
- name: nameInputRef.current?.value ?? '',
867
- email: emailInputRef.current?.value ?? ''
868
- }
869
- });
870
-
871
- if (data?.subscribeToNewsletter?.id) {
872
- pushToast(_objectSpread(_objectSpread({}, toastSubscribe), {}, {
873
- status: 'INFO',
874
- icon: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx(src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .ToastIconSuccess.Component */ .$B.Component, _objectSpread(_objectSpread({
875
- width: 30,
876
- height: 30
877
- }, src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .ToastIconSuccess.props */ .$B.props), {}, {
878
- name: toastSubscribe.icon ?? src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .ToastIconSuccess.props.name */ .$B.props.name
879
- }))
880
- }));
881
- } else {
882
- pushToast(_objectSpread(_objectSpread({}, toastSubscribeError), {}, {
883
- status: 'ERROR',
884
- icon: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx(src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .ToastIconError.Component */ .eA.Component, _objectSpread(_objectSpread({
885
- width: 30,
886
- height: 30
887
- }, src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .ToastIconError.props */ .eA.props), {}, {
888
- name: toastSubscribe.icon ?? src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .ToastIconError.props.name */ .eA.props.name
889
- }))
890
- }));
891
- }
892
-
893
- const formElement = event.currentTarget;
894
- formElement.reset();
895
- };
896
-
897
- return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx("div", {
898
- "data-fs-newsletter": card ? 'card' : '',
899
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("form", {
900
- ref: ref,
901
- "data-fs-newsletter-form": true,
902
- "data-fs-content": "newsletter",
903
- onSubmit: handleSubmit,
904
- children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("header", {
905
- "data-fs-newsletter-header": true,
906
- children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("h3", {
907
- children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx(src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .HeaderIcon.Component */ .N9.Component, _objectSpread(_objectSpread({
908
- width: 32,
909
- height: 32
910
- }, src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .HeaderIcon.props */ .N9.props), {}, {
911
- name: icon?.icon ?? src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .HeaderIcon.props.name */ .N9.props.name
912
- })), title]
913
- }), description && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("span", {
914
- children: [" ", description]
915
- })]
916
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx("div", {
917
- "data-fs-newsletter-controls": true,
918
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, {
919
- children: [displayNameInput ? /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx(src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .InputFieldName.Component */ .s9.Component, _objectSpread(_objectSpread({
920
- id: "newsletter-name",
921
- required: true
922
- }, src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .InputFieldName.props */ .s9.props), {}, {
923
- label: nameInputLabel ?? src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .InputFieldName.props.label */ .s9.props.label // Dynamic props shouldn't be overridable
924
- // This decision can be reviewed later if needed
925
- ,
926
- inputRef: nameInputRef
927
- })) : null, /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx(src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .InputFieldEmail.Component */ .yk.Component, _objectSpread(_objectSpread({
928
- id: "newsletter-email",
929
- type: "email",
930
- required: true
931
- }, src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .InputFieldEmail.props */ .yk.props), {}, {
932
- label: emailInputLabel ?? src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .InputFieldEmail.props.label */ .yk.props.label // Dynamic props shouldn't be overridable
933
- // This decision can be reviewed later if needed
934
- ,
935
- inputRef: emailInputRef
936
- })), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx("span", {
937
- "data-fs-newsletter-addendum": true,
938
- dangerouslySetInnerHTML: {
939
- __html: cmsToHtml(privacyPolicy)
940
- }
941
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx(src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .Button.Component */ .zx.Component, _objectSpread(_objectSpread({
942
- variant: "secondary",
943
- inverse: true,
944
- type: "submit"
945
- }, src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .Button.props */ .zx.props), {}, {
946
- children: loading ? subscribeButtonLoadingLabel : subscribeButtonLabel
947
- }))]
948
- })
949
- })]
950
- })
951
- });
952
- });
953
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Newsletter);
954
- __webpack_async_result__();
955
- } catch(e) { __webpack_async_result__(e); } });
956
-
957
- /***/ }),
958
-
959
- /***/ 24798:
960
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
961
-
962
- "use strict";
963
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
964
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
965
- /* harmony export */ "Z": () => (/* reexport safe */ _Newsletter__WEBPACK_IMPORTED_MODULE_0__.Z)
966
- /* harmony export */ });
967
- /* harmony import */ var _Newsletter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(870);
968
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Newsletter__WEBPACK_IMPORTED_MODULE_0__]);
969
- _Newsletter__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
970
-
971
- __webpack_async_result__();
972
- } catch(e) { __webpack_async_result__(e); } });
973
-
974
- /***/ }),
975
-
976
- /***/ 77691:
977
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
978
-
979
- "use strict";
980
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
981
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
982
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
983
- /* harmony export */ });
984
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
985
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
986
- /* harmony import */ var src_components_skeletons_ProductShelfSkeleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14396);
987
- /* harmony import */ var src_sdk_analytics_hooks_useViewItemListEvent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55184);
988
- /* harmony import */ var src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24867);
989
- /* harmony import */ var src_utils_utilities__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(43952);
990
- /* harmony import */ var src_components_sections_ProductShelf_Overrides__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9557);
991
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20997);
992
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__);
993
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_3__]);
994
- src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
995
- const _excluded = ["title", "inView", "productCardConfiguration"];
996
-
997
- 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; }
998
-
999
- 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; }
1000
-
1001
- 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; }
1002
-
1003
- 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; }
1004
-
1005
- 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; }
1006
-
1007
-
1008
-
1009
-
1010
-
1011
-
1012
-
1013
-
1014
-
1015
-
1016
-
1017
-
1018
- function ProductShelf(_ref) {
1019
- let {
1020
- title,
1021
- inView,
1022
- productCardConfiguration: {
1023
- bordered = src_components_sections_ProductShelf_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .__experimentalProductCard.props.bordered */ .zM.props.bordered,
1024
- showDiscountBadge = src_components_sections_ProductShelf_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .__experimentalProductCard.props.showDiscountBadge */ .zM.props.showDiscountBadge
1025
- } = {}
1026
- } = _ref,
1027
- variables = _objectWithoutProperties(_ref, _excluded);
1028
-
1029
- const titleId = (0,src_utils_utilities__WEBPACK_IMPORTED_MODULE_6__/* .textToKebabCase */ .B)(title);
1030
- const id = (0,react__WEBPACK_IMPORTED_MODULE_0__.useId)();
1031
- const viewedOnce = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);
1032
- const products = (0,src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_3__/* .useProductsQuery */ .kN)(variables);
1033
- const productEdges = products?.edges ?? [];
1034
- const aspectRatio = 1;
1035
- const {
1036
- sendViewItemListEvent
1037
- } = (0,src_sdk_analytics_hooks_useViewItemListEvent__WEBPACK_IMPORTED_MODULE_2__/* .useViewItemListEvent */ .m)({
1038
- products: productEdges,
1039
- title,
1040
- page: 0,
1041
- pageSize: 0
1042
- });
1043
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
1044
- if (inView && !viewedOnce.current && productEdges.length) {
1045
- sendViewItemListEvent();
1046
- viewedOnce.current = true;
1047
- }
1048
- }, [inView, productEdges.length, sendViewItemListEvent]);
1049
-
1050
- if (products?.edges.length === 0) {
1051
- return null;
1052
- }
1053
-
1054
- return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, {
1055
- children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx("h2", {
1056
- className: "text__title-section layout__content",
1057
- children: title
1058
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx(src_components_skeletons_ProductShelfSkeleton__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
1059
- aspectRatio: aspectRatio,
1060
- loading: products === undefined,
1061
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx(src_components_sections_ProductShelf_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .ProductShelf.Component */ .IW.Component, _objectSpread(_objectSpread({}, src_components_sections_ProductShelf_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .ProductShelf.props */ .IW.props), {}, {
1062
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx(src_components_sections_ProductShelf_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .__experimentalCarousel.Component */ .EM.Component, _objectSpread(_objectSpread({
1063
- id: titleId || id
1064
- }, src_components_sections_ProductShelf_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .__experimentalCarousel.props */ .EM.props), {}, {
1065
- children: productEdges.map((product, idx) => /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(src_components_sections_ProductShelf_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .__experimentalProductCard.Component */ .zM.Component, _objectSpread(_objectSpread({
1066
- aspectRatio: aspectRatio,
1067
- imgProps: {
1068
- width: 216,
1069
- height: 216,
1070
- sizes: '(max-width: 768px) 42vw, 30vw'
1071
- }
1072
- }, src_components_sections_ProductShelf_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .__experimentalProductCard.props */ .zM.props), {}, {
1073
- bordered: bordered,
1074
- showDiscountBadge: showDiscountBadge // Dynamic props shouldn't be overridable
1075
- // This decision can be reviewed later if needed
1076
- ,
1077
- key: `${product.node.id}`,
1078
- product: product.node,
1079
- index: idx + 1
1080
- })))
1081
- }))
1082
- }))
1083
- })]
1084
- });
1085
- }
1086
-
1087
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductShelf);
1088
- __webpack_async_result__();
1089
- } catch(e) { __webpack_async_result__(e); } });
1090
-
1091
- /***/ }),
1092
-
1093
- /***/ 34805:
1094
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
1095
-
1096
- "use strict";
1097
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
1098
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1099
- /* harmony export */ "Z": () => (/* reexport safe */ _ProductShelf__WEBPACK_IMPORTED_MODULE_0__.Z)
1100
- /* harmony export */ });
1101
- /* harmony import */ var _ProductShelf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77691);
1102
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_ProductShelf__WEBPACK_IMPORTED_MODULE_0__]);
1103
- _ProductShelf__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
1104
-
1105
- __webpack_async_result__();
1106
- } catch(e) { __webpack_async_result__(e); } });
1107
-
1108
- /***/ }),
1109
-
1110
- /***/ 88597:
1111
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
1112
-
1113
- "use strict";
1114
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
1115
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1116
- /* harmony export */ "t": () => (/* binding */ useLazyQuery)
1117
- /* harmony export */ });
1118
- /* harmony import */ var swr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15941);
1119
- /* harmony import */ var _request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(180);
1120
- /* harmony import */ var _useQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(77732);
1121
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr__WEBPACK_IMPORTED_MODULE_0__, _useQuery__WEBPACK_IMPORTED_MODULE_1__]);
1122
- ([swr__WEBPACK_IMPORTED_MODULE_0__, _useQuery__WEBPACK_IMPORTED_MODULE_1__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1123
-
1124
-
1125
-
1126
- const useLazyQuery = (operationName, variables, options) => {
1127
- const response = (0,swr__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_useQuery__WEBPACK_IMPORTED_MODULE_1__/* .getKey */ .km)(operationName, variables), () => null, _useQuery__WEBPACK_IMPORTED_MODULE_1__/* .DEFAULT_OPTIONS */ .WN);
1128
-
1129
- const execute = async queryVariables => {
1130
- const data = await (0,_request__WEBPACK_IMPORTED_MODULE_2__/* .request */ .W)(operationName, queryVariables, options);
1131
- response.mutate(data, false);
1132
- };
1133
-
1134
- return [execute, response];
1135
- };
1136
- __webpack_async_result__();
1137
- } catch(e) { __webpack_async_result__(e); } });
1138
-
1139
- /***/ }),
1140
-
1141
- /***/ 35822:
1142
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
1143
-
1144
- "use strict";
1145
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
1146
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1147
- /* harmony export */ "u": () => (/* binding */ useNewsletter)
1148
- /* harmony export */ });
1149
- /* unused harmony export mutation */
1150
- /* harmony import */ var _graphql_useLazyQuery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88597);
1151
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_graphql_useLazyQuery__WEBPACK_IMPORTED_MODULE_0__]);
1152
- _graphql_useLazyQuery__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
1153
-
1154
- const mutation = "SubscribeToNewsletter";
1155
- const useNewsletter = () => {
1156
- const [subscribeUser, {
1157
- data,
1158
- error,
1159
- isValidating: loading
1160
- }] = (0,_graphql_useLazyQuery__WEBPACK_IMPORTED_MODULE_0__/* .useLazyQuery */ .t)(mutation, {
1161
- data: {
1162
- name: '',
1163
- email: ''
1164
- }
1165
- });
1166
- return {
1167
- subscribeUser,
1168
- data,
1169
- error,
1170
- loading
1171
- };
1172
- };
1173
- __webpack_async_result__();
1174
- } catch(e) { __webpack_async_result__(e); } });
1175
-
1176
- /***/ }),
1177
-
1178
- /***/ 43952:
1179
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1180
-
1181
- "use strict";
1182
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1183
- /* harmony export */ "B": () => (/* binding */ textToKebabCase)
1184
- /* harmony export */ });
1185
- //Input "Example Text!". Output: example-text
1186
- function textToKebabCase(text) {
1187
- // Replace spaces and special characters with hyphens
1188
- let kebabCase = text.replace(/[^\w\s]/gi, '-'); // Remove whitespace
1189
-
1190
- kebabCase = kebabCase.replace(/\s+/g, '-'); // Convert to lowercase
1191
-
1192
- kebabCase = kebabCase.toLowerCase();
1193
- return kebabCase ?? '';
1194
- }
1195
-
1196
- /***/ }),
1197
-
1198
- /***/ 37283:
1199
- /***/ ((module) => {
1200
-
1201
- // Exports
1202
- module.exports = {
1203
- "section": "section_section__ivuGF"
1204
- };
1205
-
1206
-
1207
- /***/ }),
1208
-
1209
- /***/ 37781:
1210
- /***/ ((module) => {
1211
-
1212
- // Exports
1213
- module.exports = {
1214
- "section": "section_section__kRRBW"
1215
- };
1216
-
1217
-
1218
- /***/ }),
1219
-
1220
- /***/ 56627:
1221
- /***/ ((module) => {
1222
-
1223
- // Exports
1224
- module.exports = {
1225
- "section": "section_section__C1DoH",
1226
- "loading": "section_loading__k5bCF"
1227
- };
1228
-
1229
-
1230
- /***/ }),
1231
-
1232
- /***/ 2619:
1233
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1234
-
1235
- "use strict";
1236
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1237
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
1238
- /* harmony export */ });
1239
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
1240
-
1241
- const ProductShelf = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ProductShelf({ testId = 'fs-product-shelf', children, ...otherProps }, ref) {
1242
- return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { ref: ref, "data-fs-product-shelf": true, "data-fs-content": "product-shelf", "data-testid": testId, ...otherProps }, children));
1243
- });
1244
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductShelf);
1245
- //# sourceMappingURL=ProductShelf.js.map
1246
-
1247
- /***/ })
1248
-
1249
- };
1250
- ;