@faststore/core 2.0.118-alpha.0 → 2.0.120-alpha.0

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 (160) hide show
  1. package/.turbo/turbo-build.log +38 -26
  2. package/CHANGELOG.md +6 -0
  3. package/cms/faststore/content-types.json +6 -0
  4. package/cms/faststore/sections.json +8 -0
  5. package/package.json +2 -2
  6. package/src/Layout.tsx +2 -24
  7. package/src/components/cms/GlobalSections.tsx +81 -0
  8. package/src/components/cms/RenderSections.tsx +39 -0
  9. package/src/components/common/Alert/Alert.tsx +7 -5
  10. package/src/components/common/Alert/index.ts +1 -0
  11. package/src/components/sections/Alert/Alert.tsx +28 -0
  12. package/src/pages/404.tsx +25 -3
  13. package/src/pages/500.tsx +25 -3
  14. package/src/pages/[...slug].tsx +85 -66
  15. package/src/pages/[slug]/p.tsx +16 -6
  16. package/src/pages/account.tsx +25 -3
  17. package/src/pages/checkout.tsx +25 -3
  18. package/src/pages/index.tsx +20 -10
  19. package/src/pages/login.tsx +25 -3
  20. package/src/pages/s.tsx +63 -39
  21. package/.next/BUILD_ID +0 -1
  22. package/.next/build-manifest.json +0 -99
  23. package/.next/cache/.tsbuildinfo +0 -1
  24. package/.next/cache/config.json +0 -7
  25. package/.next/cache/eslint/.cache_1gneedd +0 -1
  26. package/.next/cache/next-server.js.nft.json +0 -1
  27. package/.next/cache/webpack/client-production/0.pack +0 -0
  28. package/.next/cache/webpack/client-production/index.pack +0 -0
  29. package/.next/cache/webpack/server-production/0.pack +0 -0
  30. package/.next/cache/webpack/server-production/index.pack +0 -0
  31. package/.next/export-marker.json +0 -1
  32. package/.next/images-manifest.json +0 -1
  33. package/.next/next-server.js.nft.json +0 -1
  34. package/.next/package.json +0 -1
  35. package/.next/prerender-manifest.json +0 -1
  36. package/.next/react-loadable-manifest.json +0 -42
  37. package/.next/required-server-files.json +0 -1
  38. package/.next/routes-manifest.json +0 -1
  39. package/.next/server/chunks/120.js +0 -435
  40. package/.next/server/chunks/123.js +0 -58
  41. package/.next/server/chunks/1394.js +0 -3801
  42. package/.next/server/chunks/1597.js +0 -151
  43. package/.next/server/chunks/1608.js +0 -515
  44. package/.next/server/chunks/2154.js +0 -206
  45. package/.next/server/chunks/247.js +0 -61
  46. package/.next/server/chunks/2502.js +0 -584
  47. package/.next/server/chunks/2914.js +0 -95
  48. package/.next/server/chunks/2922.js +0 -7293
  49. package/.next/server/chunks/3264.js +0 -67
  50. package/.next/server/chunks/3431.js +0 -7241
  51. package/.next/server/chunks/350.js +0 -142
  52. package/.next/server/chunks/3746.js +0 -250
  53. package/.next/server/chunks/3898.js +0 -240
  54. package/.next/server/chunks/4312.js +0 -674
  55. package/.next/server/chunks/4371.js +0 -1424
  56. package/.next/server/chunks/5098.js +0 -124
  57. package/.next/server/chunks/5335.js +0 -544
  58. package/.next/server/chunks/5576.js +0 -79
  59. package/.next/server/chunks/6280.js +0 -322
  60. package/.next/server/chunks/6465.js +0 -91
  61. package/.next/server/chunks/676.js +0 -32
  62. package/.next/server/chunks/6859.js +0 -959
  63. package/.next/server/chunks/6881.js +0 -320
  64. package/.next/server/chunks/6898.js +0 -149
  65. package/.next/server/chunks/7104.js +0 -235
  66. package/.next/server/chunks/7181.js +0 -664
  67. package/.next/server/chunks/7183.js +0 -79
  68. package/.next/server/chunks/8098.js +0 -246
  69. package/.next/server/chunks/810.js +0 -432
  70. package/.next/server/chunks/8287.js +0 -58
  71. package/.next/server/chunks/9143.js +0 -106
  72. package/.next/server/chunks/9557.js +0 -119
  73. package/.next/server/chunks/9854.js +0 -72
  74. package/.next/server/chunks/font-manifest.json +0 -1
  75. package/.next/server/font-manifest.json +0 -1
  76. package/.next/server/middleware-build-manifest.js +0 -1
  77. package/.next/server/middleware-manifest.json +0 -6
  78. package/.next/server/middleware-react-loadable-manifest.js +0 -1
  79. package/.next/server/pages/404.js.nft.json +0 -1
  80. package/.next/server/pages/500.js.nft.json +0 -1
  81. package/.next/server/pages/[...slug].js +0 -666
  82. package/.next/server/pages/[...slug].js.nft.json +0 -1
  83. package/.next/server/pages/[slug]/p.js +0 -2327
  84. package/.next/server/pages/[slug]/p.js.nft.json +0 -1
  85. package/.next/server/pages/_app.js +0 -2454
  86. package/.next/server/pages/_app.js.nft.json +0 -1
  87. package/.next/server/pages/_document.js +0 -304
  88. package/.next/server/pages/_document.js.nft.json +0 -1
  89. package/.next/server/pages/_error.js +0 -164
  90. package/.next/server/pages/_error.js.nft.json +0 -1
  91. package/.next/server/pages/account.js.nft.json +0 -1
  92. package/.next/server/pages/api/graphql.js +0 -315
  93. package/.next/server/pages/api/graphql.js.nft.json +0 -1
  94. package/.next/server/pages/api/preview.js +0 -118
  95. package/.next/server/pages/api/preview.js.nft.json +0 -1
  96. package/.next/server/pages/checkout.js.nft.json +0 -1
  97. package/.next/server/pages/en-US/404.html +0 -81
  98. package/.next/server/pages/en-US/500.html +0 -81
  99. package/.next/server/pages/en-US/account.html +0 -81
  100. package/.next/server/pages/en-US/checkout.html +0 -81
  101. package/.next/server/pages/en-US/login.html +0 -81
  102. package/.next/server/pages/en-US/s.html +0 -81
  103. package/.next/server/pages/en-US.html +0 -81
  104. package/.next/server/pages/en-US.json +0 -1
  105. package/.next/server/pages/index.js +0 -475
  106. package/.next/server/pages/index.js.nft.json +0 -1
  107. package/.next/server/pages/login.js.nft.json +0 -1
  108. package/.next/server/pages/s.js.nft.json +0 -1
  109. package/.next/server/pages-manifest.json +0 -16
  110. package/.next/server/webpack-api-runtime.js +0 -229
  111. package/.next/server/webpack-runtime.js +0 -229
  112. package/.next/static/chunks/143.dd8a556e6957baa1.js +0 -1
  113. package/.next/static/chunks/170.79b2f8527e327bca.js +0 -1
  114. package/.next/static/chunks/264-5b07911df63b8601.js +0 -1
  115. package/.next/static/chunks/351-a4e28d64f48c5269.js +0 -1
  116. package/.next/static/chunks/54.e6562383f8a1dfe7.js +0 -1
  117. package/.next/static/chunks/597.fc79494903e8bb84.js +0 -1
  118. package/.next/static/chunks/608.59e69b83f35d9c44.js +0 -1
  119. package/.next/static/chunks/651.7142f31ce1e052b3.js +0 -1
  120. package/.next/static/chunks/741.52f7fb873418346f.js +0 -1
  121. package/.next/static/chunks/781-e1b538e051ff4c3e.js +0 -1
  122. package/.next/static/chunks/98.97381d2021f86cd9.js +0 -1
  123. package/.next/static/chunks/996.98e590872c51f815.js +0 -1
  124. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +0 -1
  125. package/.next/static/chunks/main-9746772201fe3ac1.js +0 -1
  126. package/.next/static/chunks/pages/404-3637ef83b3359df7.js +0 -1
  127. package/.next/static/chunks/pages/500-910883c20541d9ce.js +0 -1
  128. package/.next/static/chunks/pages/[...slug]-29d3b81ee0953846.js +0 -1
  129. package/.next/static/chunks/pages/[slug]/p-9b24055cb30ee7a8.js +0 -1
  130. package/.next/static/chunks/pages/_app-4aeb21d72aeea9b7.js +0 -1
  131. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +0 -1
  132. package/.next/static/chunks/pages/account-b8fc5222ffe89b60.js +0 -1
  133. package/.next/static/chunks/pages/checkout-f8cb7cb22225ef9d.js +0 -1
  134. package/.next/static/chunks/pages/index-d48285f48d2a66ea.js +0 -1
  135. package/.next/static/chunks/pages/login-45cc84352bac2408.js +0 -1
  136. package/.next/static/chunks/pages/s-ba2868e14fedb65b.js +0 -1
  137. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  138. package/.next/static/chunks/webpack-f725b61675603493.js +0 -1
  139. package/.next/static/css/1f987650dd4e39d0.css +0 -1
  140. package/.next/static/css/3a57acf6e411f24d.css +0 -1
  141. package/.next/static/css/4abccf9803c3c356.css +0 -1
  142. package/.next/static/css/502746c995f64cce.css +0 -1
  143. package/.next/static/css/6507cb48401e73a4.css +0 -1
  144. package/.next/static/css/6f4d3e91f1d161a8.css +0 -1
  145. package/.next/static/media/brandless-neutral.76ddf63a.png +0 -0
  146. package/.next/static/vmkgl19jDr5XASw3dFJg7/_buildManifest.js +0 -1
  147. package/.next/static/vmkgl19jDr5XASw3dFJg7/_ssgManifest.js +0 -1
  148. package/.next/trace +0 -64
  149. package/public/~partytown/debug/partytown-atomics.js +0 -556
  150. package/public/~partytown/debug/partytown-media.js +0 -374
  151. package/public/~partytown/debug/partytown-sandbox-sw.js +0 -543
  152. package/public/~partytown/debug/partytown-sw.js +0 -59
  153. package/public/~partytown/debug/partytown-ww-atomics.js +0 -1789
  154. package/public/~partytown/debug/partytown-ww-sw.js +0 -1781
  155. package/public/~partytown/debug/partytown.js +0 -72
  156. package/public/~partytown/partytown-atomics.js +0 -2
  157. package/public/~partytown/partytown-media.js +0 -2
  158. package/public/~partytown/partytown-sw.js +0 -2
  159. package/public/~partytown/partytown.js +0 -2
  160. package/src/components/cms/RenderPageSections.tsx +0 -37
@@ -1,124 +0,0 @@
1
- "use strict";
2
- exports.id = 5098;
3
- exports.ids = [5098,9143];
4
- exports.modules = {
5
-
6
- /***/ 3664:
7
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8
-
9
- __webpack_require__.r(__webpack_exports__);
10
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11
- /* harmony export */ "default": () => (/* binding */ sendEvent)
12
- /* harmony export */ });
13
- /* harmony import */ var _search__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9143);
14
-
15
- function sendEvent(event) {
16
- // VTEX RC
17
- window?.sendrc?.(event.name, event.params); // VTEX Intelligent Search
18
-
19
- (0,_search__WEBPACK_IMPORTED_MODULE_0__["default"])(event);
20
- }
21
-
22
- /***/ }),
23
-
24
- /***/ 9143:
25
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26
-
27
- __webpack_require__.r(__webpack_exports__);
28
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
30
- /* harmony export */ });
31
- /* harmony import */ var _faststore_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7183);
32
- /* harmony import */ var _faststore_config__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_faststore_config__WEBPACK_IMPORTED_MODULE_0__);
33
- 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; }
34
-
35
- 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; }
36
-
37
- 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; }
38
-
39
- /**
40
- * More info at: https://www.notion.so/vtexhandbook/Event-API-Documentation-48eee26730cf4d7f80f8fd7262231f84
41
- */
42
-
43
- const THIRTY_MINUTES_S = 30 * 60;
44
- const ONE_YEAR_S = 365 * 24 * 3600;
45
-
46
- const randomUUID = () => typeof crypto.randomUUID === 'function' ? crypto.randomUUID() : (Math.random() * 1e6).toFixed(0);
47
-
48
- const createStorage = (key, expiresSecond) => {
49
- const timelapsed = past => (Date.now() - past) / 1e3;
50
-
51
- return () => {
52
- const item = JSON.parse(localStorage.getItem(key) ?? 'null');
53
- const isExpired = !item || timelapsed(item.createdAt) > expiresSecond;
54
- const payload = isExpired ? randomUUID() : item.payload;
55
-
56
- if (isExpired) {
57
- const data = {
58
- payload,
59
- createdAt: Date.now()
60
- };
61
- localStorage.setItem(key, JSON.stringify(data));
62
- }
63
-
64
- return payload;
65
- };
66
- };
67
-
68
- const user = {
69
- anonymous: createStorage('vtex.search.anonymous', ONE_YEAR_S),
70
- session: createStorage('vtex.search.session', THIRTY_MINUTES_S)
71
- };
72
-
73
- const sendEvent = options => fetch(`https://sp.vtex.com/event-api/v1/${(_faststore_config__WEBPACK_IMPORTED_MODULE_0___default().api.storeId)}/event`, {
74
- method: 'POST',
75
- body: JSON.stringify(_objectSpread(_objectSpread({}, options), {}, {
76
- userAgent: navigator.userAgent,
77
- anonymous: user.anonymous(),
78
- session: user.session()
79
- })),
80
- headers: {
81
- 'content-type': 'application/json'
82
- }
83
- });
84
-
85
- const isFullTextSearch = url => typeof url.searchParams.get('q') === 'string' && /^\/s(\/)?$/g.test(url.pathname);
86
-
87
- const handleEvent = event => {
88
- if (event.name !== 'search_select_item') {
89
- return;
90
- }
91
-
92
- const url = new URL(event.params.url);
93
-
94
- if (!isFullTextSearch(url)) {
95
- return;
96
- }
97
-
98
- for (const item of event.params.items ?? []) {
99
- const productId = item.item_id ?? item.item_variant;
100
- const position = item.index;
101
-
102
- if (productId && position) {
103
- sendEvent({
104
- type: 'search.click',
105
- productId,
106
- position,
107
- url: url.href,
108
- text: url.searchParams.get('q') ?? '<empty>'
109
- });
110
- }
111
- }
112
- };
113
-
114
- setInterval(() => sendEvent({
115
- type: 'session.ping'
116
- }), 60 * 1e3
117
- /* One minute */
118
- );
119
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (handleEvent);
120
-
121
- /***/ })
122
-
123
- };
124
- ;
@@ -1,544 +0,0 @@
1
- exports.id = 5335;
2
- exports.ids = [5335];
3
- exports.modules = {
4
-
5
- /***/ 2659:
6
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
7
-
8
- "use strict";
9
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
10
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
12
- /* harmony export */ });
13
- /* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7564);
14
- /* harmony import */ var _SectionBoundary__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7429);
15
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(997);
16
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__);
17
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([chalk__WEBPACK_IMPORTED_MODULE_0__]);
18
- chalk__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
19
- 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; }
20
-
21
- 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; }
22
-
23
- 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; }
24
-
25
-
26
-
27
-
28
-
29
-
30
- const RenderPageSections = ({
31
- sections = [],
32
- context,
33
- components
34
- }) => /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {
35
- children: sections.map(({
36
- name,
37
- data
38
- }, index) => {
39
- const Component = components[name];
40
-
41
- if (!Component) {
42
- // TODO: add a documentation link to help to do this
43
- console.info(`${chalk__WEBPACK_IMPORTED_MODULE_0__["default"].yellow('warn')} - ${name} not found. Add a new component for this section or remove it from the CMS`);
44
- return null;
45
- }
46
-
47
- return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(_SectionBoundary__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
48
- name: name,
49
- children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(Component, _objectSpread(_objectSpread({}, data), {}, {
50
- context: context
51
- }))
52
- }, `cms-section-${index}`);
53
- })
54
- });
55
-
56
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RenderPageSections);
57
- __webpack_async_result__();
58
- } catch(e) { __webpack_async_result__(e); } });
59
-
60
- /***/ }),
61
-
62
- /***/ 7429:
63
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
64
-
65
- "use strict";
66
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
67
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
68
- /* harmony export */ });
69
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
70
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
71
- 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; }
72
-
73
-
74
-
75
- class SectionBoundary extends react__WEBPACK_IMPORTED_MODULE_0__.Component {
76
- constructor(...args) {
77
- super(...args);
78
-
79
- _defineProperty(this, "state", {
80
- hasError: false,
81
- error: null
82
- });
83
- }
84
-
85
- static getDerivedStateFromError(error) {
86
- return {
87
- hasError: true,
88
- error
89
- };
90
- }
91
-
92
- componentDidCatch(error, errorInfo) {
93
- console.error(`Error while rendering section ${this.props.name} with:\n${error.message} ${errorInfo.componentStack}`); // TODO: Add fetch in here so we can know which sections are failing on our dashboard
94
- }
95
-
96
- render() {
97
- if (this.state.hasError && true) {
98
- return null;
99
- }
100
-
101
- return this.props.children;
102
- }
103
-
104
- }
105
-
106
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SectionBoundary);
107
-
108
- /***/ }),
109
-
110
- /***/ 8170:
111
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
112
-
113
- "use strict";
114
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
115
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
116
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
117
- /* harmony export */ });
118
- /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(8287);
119
- /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7578);
120
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
121
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
122
- /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(395);
123
- /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5045);
124
- /* harmony import */ var src_components_ui_Link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1093);
125
- /* harmony import */ var src_sdk_newsletter_useNewsletter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5822);
126
- /* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8879);
127
- /* harmony import */ var _newsletter_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5192);
128
- /* harmony import */ var _newsletter_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_newsletter_module_scss__WEBPACK_IMPORTED_MODULE_7__);
129
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(997);
130
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__);
131
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_sdk_newsletter_useNewsletter__WEBPACK_IMPORTED_MODULE_2__]);
132
- src_sdk_newsletter_useNewsletter__WEBPACK_IMPORTED_MODULE_2__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
133
- const _excluded = ["title", "description", "card", "lite"];
134
-
135
- 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; }
136
-
137
- 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; }
138
-
139
- 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; }
140
-
141
- 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; }
142
-
143
- 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; }
144
-
145
-
146
-
147
-
148
-
149
-
150
-
151
-
152
-
153
-
154
-
155
- const Newsletter = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Newsletter(_ref, ref) {
156
- let {
157
- title,
158
- description,
159
- card = false,
160
- lite = false
161
- } = _ref,
162
- otherProps = _objectWithoutProperties(_ref, _excluded);
163
-
164
- const {
165
- subscribeUser,
166
- loading,
167
- data
168
- } = (0,src_sdk_newsletter_useNewsletter__WEBPACK_IMPORTED_MODULE_2__/* .useNewsletter */ .u)();
169
- const nameInputRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
170
- const emailInputRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
171
- const {
172
- pushToast
173
- } = (0,_faststore_ui__WEBPACK_IMPORTED_MODULE_5__/* .useUI */ .l)();
174
-
175
- const handleSubmit = event => {
176
- event.preventDefault();
177
- subscribeUser({
178
- data: {
179
- name: nameInputRef.current?.value ?? '',
180
- email: emailInputRef.current?.value ?? ''
181
- }
182
- });
183
-
184
- if (data?.subscribeToNewsletter?.id) {
185
- pushToast({
186
- title: 'Hooray!',
187
- message: 'Thank for your subscription.',
188
- status: 'INFO',
189
- icon: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
190
- name: "CircleWavyCheck",
191
- width: 30,
192
- height: 30
193
- })
194
- });
195
- } else {
196
- pushToast({
197
- title: 'Oops.',
198
- message: 'Something went wrong. Please Try again.',
199
- status: 'ERROR',
200
- icon: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
201
- name: "CircleWavyWarning",
202
- width: 30,
203
- height: 30
204
- })
205
- });
206
- }
207
-
208
- const formElement = event.currentTarget;
209
- formElement.reset();
210
- };
211
-
212
- return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx(_Section__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
213
- "data-fs-newsletter": card ? 'card' : '',
214
- className: `layout__section ${(_newsletter_module_scss__WEBPACK_IMPORTED_MODULE_7___default().fsNewsletter)}`,
215
- children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("form", _objectSpread(_objectSpread({
216
- "data-fs-newsletter-form": true,
217
- ref: ref,
218
- onSubmit: handleSubmit
219
- }, otherProps), {}, {
220
- className: "layout__content",
221
- children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("header", {
222
- "data-fs-newsletter-header": true,
223
- children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("h3", {
224
- children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
225
- name: "Envelop",
226
- width: 32,
227
- height: 32
228
- }), title]
229
- }), description && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("span", {
230
- children: [" ", description]
231
- })]
232
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx("div", {
233
- "data-fs-newsletter-controls": true,
234
- children: lite ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.Fragment, {
235
- children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
236
- inputRef: emailInputRef,
237
- id: "newsletter-email",
238
- label: "Your Email",
239
- type: "email",
240
- required: true,
241
- actionable: true,
242
- onSubmit: () => undefined,
243
- onClear: () => undefined,
244
- buttonActionText: "Subscribe",
245
- displayClearButton: false
246
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("span", {
247
- "data-fs-newsletter-addendum": true,
248
- children: ["By subscribing to our newsletter you agree to to our", ' ', /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx(src_components_ui_Link__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
249
- href: "/",
250
- inverse: true,
251
- variant: "inline",
252
- children: "Privacy Policy."
253
- })]
254
- })]
255
- }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.Fragment, {
256
- children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
257
- inputRef: nameInputRef,
258
- id: "newsletter-name",
259
- label: "Your Name",
260
- required: true
261
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
262
- inputRef: emailInputRef,
263
- id: "newsletter-email",
264
- label: "Your Email",
265
- type: "email",
266
- required: true
267
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("span", {
268
- "data-fs-newsletter-addendum": true,
269
- children: ["By subscribing to our newsletter you agree to to our", ' ', /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx(src_components_ui_Link__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
270
- href: "/",
271
- inverse: true,
272
- variant: "inline",
273
- children: "Privacy Policy."
274
- })]
275
- }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {
276
- variant: "secondary",
277
- inverse: true,
278
- type: "submit",
279
- children: loading ? 'Loading...' : 'Subscribe'
280
- })]
281
- })
282
- })]
283
- }))
284
- });
285
- });
286
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Newsletter);
287
- __webpack_async_result__();
288
- } catch(e) { __webpack_async_result__(e); } });
289
-
290
- /***/ }),
291
-
292
- /***/ 7191:
293
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
294
-
295
- "use strict";
296
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
297
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
298
- /* harmony export */ "Z": () => (/* reexport safe */ _Newsletter__WEBPACK_IMPORTED_MODULE_0__.Z)
299
- /* harmony export */ });
300
- /* harmony import */ var _Newsletter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8170);
301
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Newsletter__WEBPACK_IMPORTED_MODULE_0__]);
302
- _Newsletter__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
303
-
304
- __webpack_async_result__();
305
- } catch(e) { __webpack_async_result__(e); } });
306
-
307
- /***/ }),
308
-
309
- /***/ 6166:
310
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
311
-
312
- "use strict";
313
-
314
- // EXPORTS
315
- __webpack_require__.d(__webpack_exports__, {
316
- "Z": () => (/* reexport */ BannerText_BannerText)
317
- });
318
-
319
- // EXTERNAL MODULE: external "react"
320
- var external_react_ = __webpack_require__(6689);
321
- var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
322
- ;// CONCATENATED MODULE: ../ui/dist/components/molecules/Banner/Banner.js
323
-
324
- const Banner = (0,external_react_.forwardRef)(function Banner({ testId = 'store-banner', children, variant = 'vertical', ...otherProps }, ref) {
325
- return (external_react_default().createElement("article", { ref: ref, "data-fs-banner": variant, "data-testid": testId, ...otherProps }, children));
326
- });
327
- /* harmony default export */ const Banner_Banner = (Banner);
328
- //# sourceMappingURL=Banner.js.map
329
- ;// CONCATENATED MODULE: ../ui/dist/components/molecules/Banner/BannerContent.js
330
-
331
- const BannerContent = (0,external_react_.forwardRef)(function BannerContent({ testId = 'store-banner-content', children, ...otherProps }, ref) {
332
- return (external_react_default().createElement("div", { ref: ref, "data-banner-content": true, "data-testid": testId, ...otherProps }, children));
333
- });
334
- /* harmony default export */ const Banner_BannerContent = (BannerContent);
335
- //# sourceMappingURL=BannerContent.js.map
336
- ;// CONCATENATED MODULE: ../ui/dist/components/molecules/Banner/BannerLink.js
337
-
338
- const BannerLink = (0,external_react_.forwardRef)(function BannerLink({ testId = 'store-banner-link', children, ...otherProps }, ref) {
339
- return (external_react_default().createElement("div", { ref: ref, "data-banner-link": true, "data-testid": testId, ...otherProps }, children));
340
- });
341
- /* harmony default export */ const Banner_BannerLink = (BannerLink);
342
- //# sourceMappingURL=BannerLink.js.map
343
- // EXTERNAL MODULE: ../components/dist/molecules/LinkButton/LinkButton.js
344
- var LinkButton = __webpack_require__(7703);
345
- // EXTERNAL MODULE: ./src/components/ui/BannerText/banner-text.module.scss
346
- var banner_text_module = __webpack_require__(173);
347
- var banner_text_module_default = /*#__PURE__*/__webpack_require__.n(banner_text_module);
348
- // EXTERNAL MODULE: external "react/jsx-runtime"
349
- var jsx_runtime_ = __webpack_require__(997);
350
- ;// CONCATENATED MODULE: ./src/components/ui/BannerText/BannerText.tsx
351
-
352
-
353
-
354
-
355
-
356
- function BannerText({
357
- title,
358
- caption,
359
- actionPath,
360
- actionLabel,
361
- variant = 'primary',
362
- colorVariant = 'main'
363
- }) {
364
- return /*#__PURE__*/jsx_runtime_.jsx(Banner_Banner, {
365
- className: (banner_text_module_default()).fsBannerText,
366
- "data-fs-banner-text": true,
367
- "data-fs-banner-text-variant": variant,
368
- "data-fs-banner-text-color-variant": colorVariant,
369
- children: /*#__PURE__*/(0,jsx_runtime_.jsxs)(Banner_BannerContent, {
370
- "data-fs-banner-text-content": true,
371
- className: "layout__content",
372
- children: [/*#__PURE__*/(0,jsx_runtime_.jsxs)("div", {
373
- "data-fs-banner-text-heading": true,
374
- "data-fs-banner-text-color-variant": colorVariant,
375
- children: [/*#__PURE__*/jsx_runtime_.jsx("h2", {
376
- children: title
377
- }), variant === 'secondary' && caption && /*#__PURE__*/jsx_runtime_.jsx("p", {
378
- children: caption
379
- })]
380
- }), /*#__PURE__*/jsx_runtime_.jsx(Banner_BannerLink, {
381
- "data-fs-banner-text-link": true,
382
- children: /*#__PURE__*/jsx_runtime_.jsx(LinkButton/* default */.Z, {
383
- href: actionPath,
384
- variant: variant,
385
- inverse: colorVariant === 'main',
386
- children: actionLabel
387
- })
388
- })]
389
- })
390
- });
391
- }
392
-
393
- /* harmony default export */ const BannerText_BannerText = (BannerText);
394
- ;// CONCATENATED MODULE: ./src/components/ui/BannerText/index.ts
395
-
396
-
397
- /***/ }),
398
-
399
- /***/ 7410:
400
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
401
-
402
- "use strict";
403
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
404
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
405
- /* harmony export */ });
406
- // eslint-disable-next-line import/no-anonymous-default-export
407
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({});
408
-
409
- /***/ }),
410
-
411
- /***/ 8597:
412
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
413
-
414
- "use strict";
415
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
416
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
417
- /* harmony export */ "t": () => (/* binding */ useLazyQuery)
418
- /* harmony export */ });
419
- /* harmony import */ var swr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5941);
420
- /* harmony import */ var _request__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(180);
421
- /* harmony import */ var _useQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7732);
422
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr__WEBPACK_IMPORTED_MODULE_0__, _useQuery__WEBPACK_IMPORTED_MODULE_2__]);
423
- ([swr__WEBPACK_IMPORTED_MODULE_0__, _useQuery__WEBPACK_IMPORTED_MODULE_2__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
424
-
425
-
426
-
427
- const useLazyQuery = (operationName, variables, options) => {
428
- const response = (0,swr__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_useQuery__WEBPACK_IMPORTED_MODULE_2__/* .getKey */ .km)(operationName, variables), () => null, _useQuery__WEBPACK_IMPORTED_MODULE_2__/* .DEFAULT_OPTIONS */ .WN);
429
-
430
- const execute = async queryVariables => {
431
- const data = await (0,_request__WEBPACK_IMPORTED_MODULE_1__/* .request */ .W)(operationName, queryVariables, options);
432
- response.mutate(data, false);
433
- };
434
-
435
- return [execute, response];
436
- };
437
- __webpack_async_result__();
438
- } catch(e) { __webpack_async_result__(e); } });
439
-
440
- /***/ }),
441
-
442
- /***/ 5822:
443
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
444
-
445
- "use strict";
446
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
447
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
448
- /* harmony export */ "u": () => (/* binding */ useNewsletter)
449
- /* harmony export */ });
450
- /* unused harmony export mutation */
451
- /* harmony import */ var _graphql_useLazyQuery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8597);
452
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_graphql_useLazyQuery__WEBPACK_IMPORTED_MODULE_0__]);
453
- _graphql_useLazyQuery__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
454
-
455
- const mutation = "SubscribeToNewsletter";
456
- const useNewsletter = () => {
457
- const [subscribeUser, {
458
- data,
459
- error,
460
- isValidating: loading
461
- }] = (0,_graphql_useLazyQuery__WEBPACK_IMPORTED_MODULE_0__/* .useLazyQuery */ .t)(mutation, {
462
- data: {
463
- name: '',
464
- email: ''
465
- }
466
- });
467
- return {
468
- subscribeUser,
469
- data,
470
- error,
471
- loading
472
- };
473
- };
474
- __webpack_async_result__();
475
- } catch(e) { __webpack_async_result__(e); } });
476
-
477
- /***/ }),
478
-
479
- /***/ 5764:
480
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
481
-
482
- "use strict";
483
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
484
- /* harmony export */ "f": () => (/* binding */ getPage)
485
- /* harmony export */ });
486
- /* unused harmony export clientCMS */
487
- /* harmony import */ var _vtex_client_cms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6676);
488
- /* harmony import */ var _vtex_client_cms__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_vtex_client_cms__WEBPACK_IMPORTED_MODULE_0__);
489
- /* harmony import */ var _faststore_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7183);
490
- /* harmony import */ var _faststore_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_faststore_config__WEBPACK_IMPORTED_MODULE_1__);
491
-
492
-
493
- const clientCMS = new (_vtex_client_cms__WEBPACK_IMPORTED_MODULE_0___default())({
494
- workspace: (_faststore_config__WEBPACK_IMPORTED_MODULE_1___default().api.workspace),
495
- tenant: (_faststore_config__WEBPACK_IMPORTED_MODULE_1___default().api.storeId)
496
- });
497
-
498
- const isLocator = x => typeof x.contentType === 'string' && (typeof x.releaseId === 'string' || typeof x.documentId === 'string');
499
-
500
- const getPage = async options => {
501
- const result = await (isLocator(options) ? clientCMS.getCMSPage(options).then(page => ({
502
- data: [page]
503
- })) : clientCMS.getCMSPagesByContentType(options.contentType, options.filters));
504
- const pages = result.data;
505
-
506
- if (!pages[0]) {
507
- throw new Error(`Missing content on the CMS for content type ${options.contentType}. Add content before proceeding. Context: ${JSON.stringify(options, null, 2)}`);
508
- }
509
-
510
- if (pages.length !== 1) {
511
- throw new Error(`Multiple content defined on the CMS for content type ${options.contentType}. Remove duplicated content before proceeding. Context: ${JSON.stringify(options, null, 2)}`);
512
- }
513
-
514
- return pages[0];
515
- };
516
-
517
- /***/ }),
518
-
519
- /***/ 5192:
520
- /***/ ((module) => {
521
-
522
- // Exports
523
- module.exports = {
524
- "fs-newsletter": "newsletter_fs-newsletter__W9mZZ",
525
- "fsNewsletter": "newsletter_fs-newsletter__W9mZZ"
526
- };
527
-
528
-
529
- /***/ }),
530
-
531
- /***/ 173:
532
- /***/ ((module) => {
533
-
534
- // Exports
535
- module.exports = {
536
- "fs-banner-text": "banner-text_fs-banner-text__EVEEc",
537
- "fsBannerText": "banner-text_fs-banner-text__EVEEc"
538
- };
539
-
540
-
541
- /***/ })
542
-
543
- };
544
- ;