PageSourceSearch

https://wildforkfoods.com/_next/static/chunks/2169-52abc199fee50c7e.js

js wildforkfoods.com collected 2026-09-24 09:23:01 UTC 356,240 bytes, 7,098 lines download raw bytes

1(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([[2169],{
2
3/***/ 635768:
4/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5
6"use strict";
7/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8/* harmony export */   O: function() { return /* binding */ ERROR_CODES; }
9/* harmony export */ });
10/* !!!!!!!! LEGACY CODE - USE THE error.ts IMPORT FROM CORE-UI !!!!!!!! */ /* !!!!!!!! LEGACY CODE - USE THE error.ts IMPORT FROM CORE-UI !!!!!!!! */ const ERROR_CODES = {
11    WF_COMMON_001: "WF_COMMON_001",
12    WF_COMMON_002: "WF_COMMON_002",
13    WF_CART_001: "WF_CART_001",
14    WF_CART_002: "WF_CART_002",
15    WF_CART_003: "WF_CART_003",
16    WF_CART_006: "WF_CART_006",
17    WF_CART_008: "WF_CART_008",
18    WF_CART_009: "WF_CART_009",
19    WF_CART_010: "WF_CART_010",
20    WF_FRESHDESK_001: "WF_FRESHDESK_001",
21    WF_CUSTOMER_001: "WF_CUSTOMER_001",
22    WF_CUSTOMER_002: "WF_CUSTOMER_002",
23    WF_CUSTOMER_003: "WF_CUSTOMER_003",
24    WF_CUSTOMER_004: "WF_CUSTOMER_004",
25    WF_CUSTOMER_005: "WF_CUSTOMER_005",
26    WF_CUSTOMER_006: "WF_CUSTOMER_006",
27    WF_CUSTOMER_007: "WF_CUSTOMER_007",
28    WF_CUSTOMER_008: "WF_CUSTOMER_008",
29    WF_PAYMENT_001: "WF_PAYMENT_001",
30    WF_PAYMENT_002: "WF_PAYMENT_002",
31    WF_PAYMENT_003: "WF_PAYMENT_003",
32    WF_PAYMENT_004: "WF_PAYMENT_004",
33    WF_PAYMENT_005: "WF_PAYMENT_005",
34    WF_STORE_001: "WF_STORE_001",
35    WF_STORE_002: "WF_STORE_002",
36    WF_STORE_003: "WF_STORE_003",
37    WF_STORE_004: "WF_STORE_004",
38    WF_STORE_005: "WF_STORE_005",
39    WF_ORDER_001: "WF_ORDER_001",
40    WF_CUSTOMER_031: "WF_CUSTOMER_031",
41    WF_CUSTOMER_032: "WF_CUSTOMER_032"
42};
43 /* !!!!!!!! LEGACY CODE - USE THE error.ts IMPORT FROM CORE-UI !!!!!!!! */ 
44
45/***/ }),
46
47/***/ 677674:
48/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
49
50"use strict";
51/* harmony export */ __webpack_require__.d(__webpack_exports__, {
52/* harmony export */   Mh: function() { return /* binding */ checkGiftCardBalance; },
53/* harmony export */   OV: function() { return /* binding */ storeForagePaymentMethod; },
54/* harmony export */   P3: function() { return /* binding */ deleteEbtPaymentFromCart; },
55/* harmony export */   Tx: function() { return /* binding */ getForageSessionToken; },
56/* harmony export */   Y$: function() { return /* binding */ deletePaymentFromCart; },
57/* harmony export */   sm: function() { return /* binding */ createAdyenOrder; },
58/* harmony export */   zH: function() { return /* binding */ createForagePaymentObject; }
59/* harmony export */ });
60/* harmony import */ var _Lib_configs_HeadersConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(420957);
61/* harmony import */ var _Lib_types_payment_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(108204);
62/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(445913);
63/* harmony import */ var _constants_RestEndpoints__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(179901);
64
65
66
67
68const checkGiftCardBalance = (payload)=>{
69    return _api__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .ZP.post(_constants_RestEndpoints__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z.PAYMENT.CHECK_GIFT_CARD_BALANCE, payload);
70};
71// Adyen Orders allow us to make a partial payment
72const createAdyenOrder = (payload)=>{
73    return _api__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .ZP.post(_constants_RestEndpoints__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z.PAYMENT.CREATE_ADYEN_ORDER, payload);
74};
75// Get Forage token to initilize the Forage EBT/SNAP payment component
76const getForageSessionToken = ()=>{
77    return _api__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .ZP.get(_constants_RestEndpoints__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z.PAYMENT.GET_FORAGE_SESSION_TOKEN);
78};
79// Store a Forage payment method
80const storeForagePaymentMethod = (payload)=>{
81    const headers = (0,_Lib_configs_HeadersConfig__WEBPACK_IMPORTED_MODULE_0__/* .buildHeaders */ .us)(_Lib_configs_HeadersConfig__WEBPACK_IMPORTED_MODULE_0__/* .cartIdHeader */ .ZK);
82    return _api__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .ZP.post(_constants_RestEndpoints__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z.PAYMENT.STORE_FORAGE_PAYMENT_METHOD, payload, {
83        headers
84    });
85};
86// Create a payment object and get the reference in the response
87const createForagePaymentObject = ()=>{
88    const headers = (0,_Lib_configs_HeadersConfig__WEBPACK_IMPORTED_MODULE_0__/* .buildHeaders */ .us)(_Lib_configs_HeadersConfig__WEBPACK_IMPORTED_MODULE_0__/* .cartIdHeader */ .ZK);
89    return _api__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .ZP.post(_constants_RestEndpoints__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z.PAYMENT.CREATE_FORAGE_PAYMENT_OBJECT, {}, {
90        headers
91    });
92};
93// Remove a payment (EBT or gift card) from the cart
94const deletePaymentFromCart = (payload)=>{
95    const headers = (0,_Lib_configs_HeadersConfig__WEBPACK_IMPORTED_MODULE_0__/* .buildHeaders */ .us)(_Lib_configs_HeadersConfig__WEBPACK_IMPORTED_MODULE_0__/* .cartIdHeader */ .ZK);
96    return _api__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .ZP.delete(_constants_RestEndpoints__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z.PAYMENT.DELET
96E_PAYMENT_FROM_CART, {
97        headers,
98        data: payload
99    });
100};
101// Detach the EBT payment from the cart — used by CHANGE, by the wrong-PIN
102// auto-unlock, and by the abandoned-checkout cleanups.
103const deleteEbtPaymentFromCart = ()=>deletePaymentFromCart({
104        paymentMethodType: _Lib_types_payment_types__WEBPACK_IMPORTED_MODULE_1__/* .DeletePaymentMethodType */ .z.EBT
105    });
106
107
108/***/ }),
109
110/***/ 722857:
111/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
112
113"use strict";
114/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
115/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(667294);
116/* harmony import */ var _mui_icons_material_InfoOutlined__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(402548);
117/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_utils_classNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(221504);
118/* harmony import */ var _Components_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(836455);
119/* harmony import */ var _Components_ui_modal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(589863);
120/* harmony import */ var _AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(242124);
121/* harmony import */ var _AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5__);
122
123
124
125
126
127
128
129const AddressVerificationModal = (param)=>{
130    let { isOpen, onSubmit, isSubmitting, onClose, verifiedAddress, isEnteredAddrVerificationStatusFailed, setUseVerifiedAddress, userEnteredAddress, isUserEnteredAddressValid = true, contentTranslation = {
131        verifyAddress: "VERIFY ADDRESS",
132        selectSuggestions: " Select one of the following:",
133        recommended: "RECOMMENDED",
134        entered: "YOU ENTERED",
135        couldNotVerifyError: "We could not verify your address. Check for any errors or missing information, such as apartment number.",
136        edit: "Edit",
137        useUnverifiedAddress: "Use unverified address",
138        editAddress: "Edit Address",
139        continue: "Continue"
140    }, isCheckout } = param;
141    var _userEnteredAddress_address2, _userEnteredAddress_address21;
142    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Components_ui_modal__WEBPACK_IMPORTED_MODULE_4__/* .Modal */ .u, {
143        show: isOpen,
144        onClose: onClose,
145        contentClassName: (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["address-verification-modal__content"]),
146        onCloseOuterClick: false,
147        children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
148            className: (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["address-verification-modal__body"]),
149            children: [
150                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span", {
151                    children: [
152                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h2", {
153                            className: (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["address-verification-modal__title"]),
154                            children: contentTranslation.verifyAddress
155                        }),
156                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("p", {
157                            className: (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["address-verification-modal__subtitle"]),
158                            children: [
159                                "Using an unverified address may cause delivery issues.",
160                                !isEnteredAddrVerificationStatusFailed && contentTranslation.selectSuggestions
161                            ]
162                        })
163                    ]
164                }),
165                verifiedAddress && !isEnteredAddrVerificationStatusFailed ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("label", {
166                    htmlFor: "recommended-address",
167                    children: [
168                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input", {
169                            id: "recommended-address",
170                            name: "verified-addresses",
171                            type: "radio",
172                            className: (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["input-radio"]),
173                            onChange: ()=>setUseVerifiedAddress(true),
174                            defaultChecked: true
175                        }),
176                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
177                            className: (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["address-ver
177ification-modal__card"]),
178                            children: [
179                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
180                                    className: (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["address-verification-modal__card-title"]),
181                                    children: contentTranslation.recommended
182                                }),
183                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
184                                    children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
185                                        children: highlightWordDifferences(userEnteredAddress.address1, verifiedAddress.address1.toLowerCase().replace(((_userEnteredAddress_address2 = userEnteredAddress.address2) === null || _userEnteredAddress_address2 === void 0 ? void 0 : _userEnteredAddress_address2.toLowerCase()) || "", ""))
186                                    })
187                                }),
188                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
189                                    children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
190                                        children: highlightWordDifferences(//NOTE: Extracting address2 from the API address1
191                                        findExtraSubstring(verifiedAddress.address1.toLowerCase().replace(((_userEnteredAddress_address21 = userEnteredAddress.address2) === null || _userEnteredAddress_address21 === void 0 ? void 0 : _userEnteredAddress_address21.toLowerCase()) || "", ""), verifiedAddress.address1.toLowerCase()), userEnteredAddress.address2)
192                                    })
193                                }),
194                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
195                                    children: [
196                                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
197                                            children: highlightWordDifferences(userEnteredAddress.city, verifiedAddress.city)
198                                        }),
199                                        ",",
200                                        " ",
201                                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
202                                            children: highlightWordDifferences(userEnteredAddress.state, verifiedAddress.state)
203                                        })
204                                    ]
205                                }),
206                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
207                                    children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
208                                        children: highlightWordDifferences(userEnteredAddress.postalCode, verifiedAddress.postalCode)
209                                    })
210                                })
211                            ]
212                        })
213                    ]
214                }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
215                    className: (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["address-verification-modal__error-card"]),
216                    children: [
217                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_InfoOutlined__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {}),
218                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
219                            className: (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["address-verification-modal__error-card__message"]),
220                            children: contentTranslation.couldNotVerifyError
221                        })
222                    ]
223                }),
224                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("label", {
225                    htmlFor: "entered-address",
226                    children: [
227                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input", {
228                            id: "entered-address",
229                            name: "verified-addresses",
230                            type: "radio",
231                            className: (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["input-radio"]),
232                            onChange: ()=>setUseVerifiedAddress(false),
233                            defaultChecked: isEnteredAddrVerificationStatusFailed
234                        }),
235                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
236                            className: (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["address-ver
236ification-modal__card"]),
237                            children: [
238                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
239                                    className: (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["address-verification-modal__card-title"]),
240                                    children: [
241                                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span", {
242                                            children: [
243                                                " ",
244                                                contentTranslation.entered
245                                            ]
246                                        }),
247                                        !isEnteredAddrVerificationStatusFailed && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
248                                            className: (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["address-verification-modal__card-edit-text-button"]),
249                                            onClick: ()=>onClose(),
250                                            children: contentTranslation.edit
251                                        })
252                                    ]
253                                }),
254                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
255                                    children: userEnteredAddress.address1
256                                }),
257                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
258                                    children: userEnteredAddress.address2
259                                }),
260                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
261                                    children: [
262                                        userEnteredAddress.city,
263                                        ", ",
264                                        userEnteredAddress.state
265                                    ]
266                                }),
267                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
268                                    children: userEnteredAddress.postalCode
269                                })
270                            ]
271                        })
272                    ]
273                }),
274                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
275                    className: (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["address-verification-modal__footer"]),
276                    children: isEnteredAddrVerificationStatusFailed ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
277                        children: [
278                            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Components_ui__WEBPACK_IMPORTED_MODULE_3__/* .Button */ .zx, {
279                                type: "button",
280                                className: (0,_wildfork_commercetools_core_ui_dist_src_lib_utils_classNames__WEBPACK_IMPORTED_MODULE_2__["default"])((_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["address-verification-modal__button"]), "action action--secondary"),
281                                onClick: isCheckout ? ()=>onClose(true) : ()=>onSubmit(),
282                                disabled: !isUserEnteredAddressValid || isSubmitting,
283                                children: contentTranslation.useUnverifiedAddress
284                            }),
285                            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Components_ui__WEBPACK_IMPORTED_MODULE_3__/* .Button */ .zx, {
286                                type: "button",
287                                className: (0,_wildfork_commercetools_core_ui_dist_src_lib_utils_classNames__WEBPACK_IMPORTED_MODULE_2__["default"])("action action--primary", (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["address-ver
287ification-modal__button"])),
288                                onClick: ()=>onClose(),
289                                disabled: !isUserEnteredAddressValid || isSubmitting,
290                                children: contentTranslation.editAddress
291                            })
292                        ]
293                    }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Components_ui__WEBPACK_IMPORTED_MODULE_3__/* .Button */ .zx, {
294                        type: "button",
295                        className: (0,_wildfork_commercetools_core_ui_dist_src_lib_utils_classNames__WEBPACK_IMPORTED_MODULE_2__["default"])("action action--primary", (_AddressVerificationModal_module_scss__WEBPACK_IMPORTED_MODULE_5___default()["address-verification-modal__button"])),
296                        onClick: ()=>onSubmit(),
297                        disabled: !isUserEnteredAddressValid || isSubmitting,
298                        children: contentTranslation.continue
299                    })
300                })
301            ]
302        })
303    });
304};
305/* harmony default export */ __webpack_exports__.Z = (AddressVerificationModal);
306const highlightWordDifferences = function() {
307    let originalString = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", comparisonString = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "";
308    const originalWords = originalString.split(" ");
309    const comparisonWords = comparisonString.split(" ");
310    return comparisonWords.map(function() {
311        let word = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", index = arguments.length > 1 ? arguments[1] : void 0;
312        var _originalWords_index;
313        const originalWord = originalWords === null || originalWords === void 0 ? void 0 : (_originalWords_index = originalWords[index]) === null || _originalWords_index === void 0 ? void 0 : _originalWords_index.toLocaleLowerCase();
314        const comparisonWord = word.toLocaleLowerCase();
315        if (index >= originalWords.length || originalWord !== comparisonWord) {
316            return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("b", {
317                children: [
318                    " ",
319                    word
320                ]
321            }, index);
322        }
323        return " ".concat(word);
324    });
325};
326// const highlightCityDifferences = (
327//   userEnteredCity: string,
328//   verifiedCity: string
329// ) => {
330//   const correctedCity =
331//     userEnteredCity.toLowerCase() !== verifiedCity.toLowerCase()
332//       ? userEnteredCity
333//       : verifiedCity;
334//   return <b>{correctedCity.toUpperCase()}</b>;
335// };
336/**
337 * The function `findExtraSubstring` compares two strings and returns the extra substring present in
338 * @param {string} [baseString] - The `baseString` parameter is a string that serves as the base for
339 * @param {string} [compareString] - The `compareString` parameter is a string that will be compared to
340 * @returns {string}
341 */ const findExtraSubstring = function() {
342    let baseString = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", compareString = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "";
343    if (compareString.startsWith(baseString)) {
344        return compareString.slice(baseString.length);
345    } else {
346        return compareString === compareString.toUpperCase() ? compareString.toUpperCase() : compareString;
347    }
348};
349
350
351/***/ }),
352
353/***/ 981496:
354/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
355
356"use strict";
357/* harmony export */ __webpack_require__.d(__webpack_exports__, {
358/* harmony export */   le: function() { return /* binding */ handleGiftCardErrors; }
359/* harmony export */ });
360/* unused harmony exports errorCodeMap, GENERIC_GIFT_CARD_ERROR */
361const errorCodeMap = {
362    WF_PAYMENT_019: "This gift card number and/or pin is invalid. Please check the numbers and try again.",
363    WF_PAYMENT_020: "Your gift card couldn’t be processed. Please verify the details or use a different payment method."
364};
365const GENERIC_GIFT_CARD_ERROR = "Sorry, an error occurred, and gift cards are temporarily unavailable. Please try again later.";
366const handleGiftCardErrors = (error)=>{
367    var _error_response_data, _error_response;
368    if (((_error_response = error.response) === null || _error_response === void 0 ? void 0 : (_error_response_data = _error_response.data) === null || _error_response_data === void 0 ? void 0 : _error_response_data.errors) && Array.isArray(error.response.data.errors)) {
369        const errorMessages = error.response.data.errors.map((err)=>{
370            return errorCodeMap[err.code] || GENERIC_GIFT_CARD_ERROR;
371        });
372        // Filter out duplicate messages
373        return [
374            ...new Set(errorMessages)
375        ];
376    }
377    return [
378        GENERIC_GIFT_CARD_ERROR
379    ];
380};
381
382
383/***/ }),
384
385/***/ 333573:
386/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
387
388"use strict";
389/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
390/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_constants_locale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(808439);
391/* harmony import */ var lodash_noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(850308);
392/* harmony import */ var lodash_noop__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_noop__WEBPACK_IMPORTED_MODULE_2__);
393/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(811163);
394/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_3__);
395/* harmony import */ var react_final_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(166688);
396/* harmony import */ var _Components_forms_formFields_textField_FormTextField__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(833936);
397/* harmony import */ var _Components_forms_helpers_commonFormSubmission__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(189058);
398/* harmony import */ var _Components_ui__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(836455);
399/* harmony import */ var _Constants_snackbar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(380254);
400/* harmony import */ var _Lib_helpers_forms_handlers__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(5227);
401/* harmony import */ var _Lib_hooks_useAuthHooks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(593917);
402/* harmony import */ var _Lib_hooks_useFormFieldValidation__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(519511);
403/* harmony import */ var _Lib_store_hooks__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(267097);
404/* harmony import */ var _Lib_utils_locale__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(225220);
405/* harmony import */ var _formMessage_FormMessage__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(608904);
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421const ForgotPasswordForm = (param)=>{
422    let { onClickCancel, isCheckout, isMaxAttemptsExceeded = false } = param;
423    const dispatch = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_11__/* .useAppDispatch */ .T)();
424    const currentLocale = _wildfork_commercetools_core_ui_dist_src_lib_constants_locale__WEBPACK_IMPORTED_MODULE_1__.CURRENT_LOCALE;
425    const { forgotPasswordState, setForgotPasswordState } = (0,_Lib_hooks_useAuthHooks__WEBPACK_IMPORTED_MODULE_9__/* .useForgotPassword */ .pO)();
426    const errorCodeTranslation = {
427        WF_CUSTOMER_001: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_12__.t)("customer.form_errors.existing_account_html"),
428        WF_CUSTOMER_002: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_12__.t)("customer.form_errors.blank_email"),
429        WF_CUSTOMER_008: _Constants_snackbar__WEBPACK_IMPORTED_MODULE_8__/* .AUTO_ERROR_CODE_MESSAGE_TRANSLATION */ .uK.WF_CUSTOMER_008(currentLocale === null || currentLocale === void 0 ? void 0 : currentLocale.languageCode)
430    };
431    const validationTranslation = {
432        allFieldsBlank: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_12__.t)("customer.form_errors.all_fields_blank"),
433        emailBlank: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_12__.t)("customer.form_errors.blank_email"),
434        emailNeedsContentAfterAtSymbol: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_12__.t)("customer.form_errors.format_ends_with_at")
435    };
436    const { asPath } = (0,next_router__WEBPACK_IMPORTED_MODULE_3__.useRouter)();
437    const { touched, setTouched, setFormError, formErrorMessages, setFormActionIsActive } = (0,_Lib_hooks_useFormFieldValidation__WEBPACK_IMPORTED_MODULE_10__/* .useFormFieldValidation */ .Xl)({
438        type: _Lib_hooks_useFormFieldValidation__WEBPACK_IMPORTED_MODULE_10__/* .FORM_TYPES */ .dz.FORGOT_PASSWORD,
439        touched: true,
440        formState: forgotPasswordState,
441        languageCode: currentLocale === null || currentLocale === void 0 ? void 0 : currentLocale.languageCode,
442        errorCodeTranslation,
443        validationTranslation,
444        formAction: ()=>{
445            (0,_Components_forms_helpers_commonFormSubmission__WEBPACK_IMPORTED_MODULE_6__/* .submitFormActionForgotPassword */ .yL)({
446                dispatch,
447                payload: forgotPasswordState,
448                setFormError,
449                errorCodeTranslation,
450                languageCode: currentLocale === null || currentLocale === void 0 ? void 0 : currentLocale.languageCode,
451                path: asPath
452            });
453        }
454    });
455    const handleOnClickSubmit = async (e)=>{
456        e.preventDefault();
457        setFormActionIsActive(true);
458    };
459    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_final_form__WEBPACK_IMPORTED_MODULE_4__.Form, {
460        "data-testid": "forgot-password-form",
461        onSubmit: (lodash_noop__WEBPACK_IMPORTED_MODULE_2___default()),
462        render: (param)=>{
463            let {} = param;
464            return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("form", {
465                className: "form form--recover-customer-password",
466                onSubmit: (lodash_noop__WEBPACK_IMPORTED_MODULE_2___default()),
467                children: [
468                    /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_formMessage_FormMessage__WEBPACK_IMPORTED_MODULE_13__/* .FormMessage */ .z, {
469                        message: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_12__.t)("form.error_heading"),
470                        type: "error",
471                        errors: formErrorMessages
472                    }),
473                    isMaxAttemptsExceeded && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
474                        children: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_12__.t)("customer.form_errors.password_reset_on_max_attempts")
475                    }),
476                    /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Components_forms_formFields_textField_FormTextField__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
477                        name: "email",
478                        label: "Email",
479                        "data-testid": "form_field-email",
480                        validate: (0,_Lib_hooks_useAuthHooks__WEBPACK_IMPORTED_MODULE_9__/* .authFormFieldValidatorSwitch */ .FI)("email", {
481                            required: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_12__.t)("customer.form_errors.blank_field"),
482                            email: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_12__.t)("customer.form_errors.invalid_email")
483                        }),
484                        outlined: !isCheckout,
485                        value: forgotPasswordState.email,
486                        onChange: (e)=>{
487                            (0,_Lib_helpers_forms_handlers__WEBPACK_IMPORTED_MODULE_14__/* .formStateChangeHandler */ .G)({
488                                key: "email",
489                                value: e.target.value.trim(),
490                                formState: forgotPasswordState,
491                                setTouched,
492                                formStateSetter: setForgotPasswordState
493                            });
494                        },
495                        required: true
496                    }),
497                    /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
498                        className: "form__actions",
499                        children: [
500                            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Components_ui__WEBPACK_IMPORTED_MODULE_7__/* .Button */ .zx, {
501                                className: "action",
502                                "data-testid": "form_field-button-submit",
503                                onClick: handleOnClickSubmit,
504                                disabled: !touched,
505                                type: "submit",
506                                children: "Submit"
507                            }),
508                            " ",
509                            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Components_ui__WEBPACK_IMPORTED_MODULE_7__/* .Button */ .zx, {
510                                className: "action action--secondary",
511                                onClick: onClickCancel,
512                                children: "Cancel"
513                            })
514                        ]
515                    })
516                ]
517            });
518        }
519    });
520};
521/* harmony default export */ __webpack_exports__.Z = (ForgotPasswordForm);
522
523
524/***/ }),
525
526/***/ 833936:
527/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
528
529"use strict";
530/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
531/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(667294);
532/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_utils_classNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(221504);
533/* harmony import */ var react_final_form__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(166688);
534/* harmony import */ var _Components_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(836455);
535/* harmony import */ var _FormTextField_module_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(160186);
536/* harmony import */ var _FormTextField_module_scss__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_FormTextField_module_scss__WEBPACK_IMPORTED_MODULE_5__);
537
538
539
540
541
542
543const FormTextField = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((param, ref)=>{
544    let { name = "", type = "text", outlined = false, validate, showToolTip = true, toolTipData, onChange, inputProps, withPreview = false, value, isDisabled, formatOnBlur = true, format = (value)=>value, customFormat, multiline = false, ...restProps } = param;
545    const classNames = (0,_wildfork_commercetools_core_ui_dist_src_lib_utils_classNames__WEBPACK_IMPORTED_MODULE_2__["default"])((_FormTextField_module_scss__WEBPACK_IMPORTED_MODULE_5___default().form__field), (_FormTextField_module_scss__WEBPACK_IMPORTED_MODULE_5___default().text__field), restProps.className);
546    const tooltipIcon = type === "password" ? "lock" : undefined;
547    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_final_form__WEBPACK_IMPORTED_MODULE_3__.Field, {
548        name: name,
549        validate: validate,
550        formatOnBlur: formatOnBlur,
551        type: type,
552        format: (value, name)=>{
553            const result = value === null || value === void 0 ? void 0 : value.trim();
554            return format === null || format === void 0 ? void 0 : format(result, name);
555        },
556        children: (param)=>{
557            let { input, meta } = param;
558            const inputValue = customFormat ? customFormat(input.value) : input.value;
559            return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
560                className: classNames,
561                children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Components_ui__WEBPACK_IMPORTED_MODULE_4__/* .TextField */ .nv, {
562                    ...restProps,
563                    ...input,
564                    ...inputProps,
565                    value: value || inputValue || "",
566                    onChange: (event)=>{
567                        var _input_onChange;
568                        (_input_onChange = input.onChange) === null || _input_onChange === void 0 ? void 0 : _input_onChange.call(input, event);
569                        onChange === null || onChange === void 0 ? void 0 : onChange(event);
570                    },
571                    withPreview: withPreview,
572                    tooltipData: toolTipData !== null && toolTipData !== void 0 ? toolTipData : showToolTip && (meta === null || meta === void 0 ? void 0 : meta.touched) && meta.error,
573                    tooltipIcon: showToolTip && tooltipIcon,
574                    className: "".concat(outlined && (_FormTextField_module_scss__WEBPACK_IMPORTED_MODULE_5___default().standard_outlined)),
575                    validate: validate,
576                    touched: meta === null || meta === void 0 ? void 0 : meta.touched,
577                    dirty: meta === null || meta === void 0 ? void 0 : meta.dirty,
578                    supressErrorStylesOnFocus: true,
579                    formTextFieldValidation: true,
580                    isDisabled: isDisabled,
581                    ref: ref,
582                    multiline: multiline
583                })
584            });
585        }
586    });
587});
588FormTextField.displayName = "FormTextField";
589/* harmony default export */ __webpack_exports__.Z = (FormTextField);
590
591
592/***/ }),
593
594/***/ 608904:
595/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
596
597"use strict";
598/* harmony export */ __webpack_require__.d(__webpack_exports__, {
599/* harmony export */   z: function() { return /* binding */ FormMessage; }
600/* harmony export */ });
601/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
602/* harmony import */ var _Components_ui_Link_Link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(317641);
603/* harmony import */ var _shared_LinkErrorMessage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(424802);
604
605
606
607const FormMessage = (props)=>{
608    var _props_errors;
609    const errorMessages = (props === null || props === void 0 ? void 0 : (_props_errors = props.errors) === null || _props_errors === void 0 ? void 0 : _props_errors.length) ? [
610        ...props.errors
611    ] : (props === null || props === void 0 ? void 0 : props.error) ? [
612        props === null || props === void 0 ? void 0 : props.error
613    ] : [];
614    const modifiedErrorMessage = [];
615    errorMessages === null || errorMessages === void 0 ? void 0 : errorMessages.forEac
615h((msg)=>{
616        const subMessages = (msg === null || msg === void 0 ? void 0 : msg.includes(". ")) ? msg.split(". ") : [
617            msg
618        ]; // if there are multiple sentences, split them up
619        subMessages === null || subMessages === void 0 ? void 0 : subMessages.forEach((error)=>error && modifiedErrorMessage.push(error.trim()) // the error condition prevents adding an empty string from the tail end of a split
620        );
621    });
622    return (modifiedErrorMessage === null || modifiedErrorMessage === void 0 ? void 0 : modifiedErrorMessage.length) > 0 ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
623        className: "form__status form__status--".concat(props.type),
624        children: [
625            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
626                className: "form__message",
627                children: props.message
628            }),
629            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("ul", {
630                className: "form__errors",
631                children: modifiedErrorMessage === null || modifiedErrorMessage === void 0 ? void 0 : modifiedErrorMessage.map((error, index)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("li", {
632                        className: "error",
633                        children: (error === null || error === void 0 ? void 0 : error.includes("<a")) ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_LinkErrorMessage__WEBPACK_IMPORTED_MODULE_2__/* .LinkErrorMessage */ .B, {
634                            error: error
635                        }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
636                            className: "error__link",
637                            children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Components_ui_Link_Link__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
638                                href: "#CustomerLogin-form",
639                                children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
640                                    className: "error__message",
641                                    children: error
642                                })
643                            })
644                        })
645                    }, index))
646            })
647        ]
648    }) : null;
649};
650
651
652/***/ }),
653
654/***/ 189058:
655/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
656
657"use strict";
658/* harmony export */ __webpack_require__.d(__webpack_exports__, {
659/* harmony export */   A8: function() { return /* binding */ resendVerificationEmail; },
660/* harmony export */   Sk: function() { return /* binding */ submitFormActionLogin; },
661/* harmony export */   o1: function() { return /* binding */ submitFormActionSignup; },
662/* harmony export */   xB: function() { return /* binding */ submitFormActionResetAccountPassword; },
663/* harmony export */   yL: function() { return /* binding */ submitFormActionForgotPassword; }
664/* harmony export */ });
665/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_types_SnackBar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(597707);
666/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_utils_Logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(101914);
667/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_utils_Logger__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wildfork_commercetools_core_ui_dist_src_lib_utils_Logger__WEBPACK_IMPORTED_MODULE_1__);
668/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(131955);
669/* harmony import */ var _Api_withAsync__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(715904);
670/* harmony import */ var _Constants_snackbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(380254);
671/* harmony import */ var _Lib_store_SnackBarSlice__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(529840);
672/* harmony import */ var _Lib_tracking_trackingEvents__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(538933);
673/* harmony import */ var _Utils_snackbarHandlers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(921134);
674/* harmony import */ var _wff_api_constants_error__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(635768);
675/* harmony import */ var _wff_api_customerApi__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(164535);
676
677
678
679
680
681
682
683
684
685
686/**
687 * Shared handler for "Resend verification email": calls API;
688 * shows error in form on failure. Success is surfaced in the verify-email modal.
689 */ const resendVerificationEmail = async (param)=>{
690    let { setError } = param;
691    setError(undefined);
692    const { error } = await (0,_Api_withAsync__WEBPACK_IMPORTED_MODULE_9__/* .withAsync */ .j)(()=>(0,_wff_api_customerApi__WEBPACK_IMPORTED_MODULE_8__/* .sendEmailVerificationToken */ .AU)());
693    if (error) {
694        setError(error);
695        return {
696            ok: false
697        };
698    }
699    return {
700        ok: true
701    };
702};
703const submitFormActionSignup = async (param)=>{
704    let { dispatch, payload, setFormError, errorCodeTranslation, actionOnFormSuccess } = param;
705    const newPayload = {
706        ...payload
707    };
708    // NOTE: Make sure that we are Passing ONLY the values that are needed
709    delete newPayload.confirmedPassword;
710    const { error } = await (0,_Api_withAsync__WEBPACK_IMPORTED_MODULE_9__/* .withAsync */ .j)(()=>{
711        return (0,_wff_api_customerApi__WEBPACK_IMPORTED_MODULE_8__/* .submitSignupForm */ .bb)(newPayload);
712    });
713    if (error) {
714        setFormError(error);
715        let scenarios = [];
716        if (errorCodeTranslation) {
717            scenarios = (0,_Utils_snackbarHandlers__WEBPACK_IMPORTED_MODULE_6__/* .getScenariosFromErrorCodeTranslation */ .Jq)({
718                errorCodeTranslation
719            });
720        }
721        (0,_Utils_snackbarHandlers__WEBPACK_IMPORTED_MODULE_6__/* .axiosErrorHandler */ .ri)({
722            error,
723            dispatch,
724            scenarios,
725            fallbackSnackbar: {
726                heading: _Constants_snackbar__WEBPACK_IMPORTED_MODULE_3__/* .GENERIC_EVENT_ERR_HEADING */ .U3.REQUEST_FAILED(),
727                message: _Constants_snackbar__WEBPACK_IMPORTED_MODULE_3__/* .GENERIC_ERR_MSG */ .I_.ERROR()
728            },
729            errorCodeIgnoreList: [
730                _wff_api_constants_error__WEBPACK_IMPORTED_MODULE_7__/* .ER
730ROR_CODES */ .O.WF_CUSTOMER_001,
731                _wff_api_constants_error__WEBPACK_IMPORTED_MODULE_7__/* .ERROR_CODES */ .O.WF_CUSTOMER_031,
732                _wff_api_constants_error__WEBPACK_IMPORTED_MODULE_7__/* .ERROR_CODES */ .O.WF_CUSTOMER_032
733            ]
734        });
735        return {
736            error
737        };
738    } else {
739        // Track Event Account Signup
740        (0,_Lib_tracking_trackingEvents__WEBPACK_IMPORTED_MODULE_5__/* .signupEvent */ .HX)(payload.email);
741        actionOnFormSuccess();
742    }
743};
744const submitFormActionLogin = async (param)=>{
745    let { dispatch, payload, setFormError, errorCodeTranslation, actionOnFormSuccess } = param;
746    const newPayload = {
747        ...payload
748    };
749    // NOTE: Make sure that we are Passing ONLY the values that are needed
750    const { error } = await (0,_Api_withAsync__WEBPACK_IMPORTED_MODULE_9__/* .withAsync */ .j)(()=>(0,_wff_api_customerApi__WEBPACK_IMPORTED_MODULE_8__/* .submitLoginForm */ .Xo)(newPayload));
751    if (error) {
752        setFormError(error);
753        let scenarios = [];
754        if (errorCodeTranslation) {
755            scenarios = (0,_Utils_snackbarHandlers__WEBPACK_IMPORTED_MODULE_6__/* .getScenariosFromErrorCodeTranslation */ .Jq)({
756                errorCodeTranslation
757            });
758        }
759        (0,_Utils_snackbarHandlers__WEBPACK_IMPORTED_MODULE_6__/* .axiosErrorHandler */ .ri)({
760            error,
761            dispatch,
762            scenarios,
763            fallbackSnackbar: {
764                heading: _Constants_snackbar__WEBPACK_IMPORTED_MODULE_3__/* .GENERIC_EVENT_ERR_HEADING */ .U3.REQUEST_FAILED(),
765                message: _Constants_snackbar__WEBPACK_IMPORTED_MODULE_3__/* .GENERIC_ERR_MSG */ .I_.ERROR()
766            },
767            errorCodeIgnoreList: [
768                _wff_api_constants_error__WEBPACK_IMPORTED_MODULE_7__/* .ERROR_CODES */ .O.WF_CUSTOMER_004
769            ]
770        });
771    } else {
772        // Track Login Event
773        (0,_Lib_tracking_trackingEvents__WEBPACK_IMPORTED_MODULE_5__/* .loginEvent */ .F2)(payload.email);
774        actionOnFormSuccess();
775    }
776};
777const submitFormActionForgotPassword = async (param)=>{
778    let { dispatch, payload, setFormError, errorCodeTranslation, languageCode, contentTranslation = {
779        success: "An email has been sent to reset your password",
780        error: "Something went wrong. Please try again later."
781    }, handleSubmitComplete, path } = param;
782    const signupPayload = {
783        ...payload
784    };
785    // NOTE: Make sure that we are Passing ONLY the values that are needed
786    const { error } = await (0,_Api_withAsync__WEBPACK_IMPORTED_MODULE_9__/* .withAsync */ .j)(()=>{
787        return (0,_wff_api_customerApi__WEBPACK_IMPORTED_MODULE_8__/* .submitForgotPasswordForm */ .qZ)(signupPayload);
788    });
789    if (error) {
790        setFormError(error);
791        let scenarios = [];
792        if (errorCodeTranslation) {
793            scenarios = (0,_Utils_snackbarHandlers__WEBPACK_IMPORTED_MODULE_6__/* .getScenariosFromErrorCodeTranslation */ .Jq)({
794                errorCodeTranslation
795            });
796        }
797        (0,_Utils_snackbarHandlers__WEBPACK_IMPORTED_MODULE_6__/* .axiosErrorHandler */ .ri)({
798            error,
799            dispatch,
800            scenarios,
801            fallbackSnackbar: {
802                heading: _Constants_snackbar__WEBPACK_IMPORTED_MODULE_3__/* .GENERIC_EVENT_ERR_HEADING */ .U3.REQUEST_FAILED(),
803                message: contentTranslation.error
804            }
805        });
806    } else {
807        dispatch((0,_Lib_store_SnackBarSlice__WEBPACK_IMPORTED_MODULE_4__/* .triggerSnackBar */ .qw)({
808            title: _Constants_snackbar__WEBPACK_IMPORTED_MODULE_3__/* .GENERIC_EVENT_SUCCESS_HEADING */ .BW.SUCCESS(languageCode),
809            message: contentTranslation.success,
810            type: "success",
811            variant: "filled"
812        }));
813        js_cookie__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z.set("redirect_path_after_password_reset", JSON.stringify({
814            redirectPath: path,
815            resetStatus: false
816        }));
817    }
818    handleSubmitComplete === null || handleSubmitComplete === void 0 ? void 0 : handleSubmitComplete();
819};
820const submitFormActionResetAccountPassword = async (param)=>{
821    let { dispatch, payload, setFormError, errorCodeTranslation, actionOnFormSuccess, contentTranslation = {
822        error: "There was an error submitting your request"
823    } } = param;
824    if (!payload.token) {
825        _wildfork_commercetools_core_ui_dist_src_lib_utils_Logger__WEBPACK_IMPORTED_MODULE_1___default().error("There was no Password Token ID Provided to include in the password reset payload");
826    }
827    const newPayload = {
828        ...payload
829    };
830    // NOTE: Make sure that we are Passing ONLY the formState values that are needed
831    delete newPayload.confirmedPassword;
832    const { error } = await (0,_Api_withAsync__WEBPACK_IMPORTED_MODULE_9__/* .withAsync */ .j)(()=>{
833        return (0,_wff_api_customerApi__WEBPACK_IMPORTED_MODULE_8__/* .submitAccountResetForm */ .QX)(newPayload);
834    });
835    if (error) {
836        var _error_errors, _error_errors_, _error_errors1;
837        setFormError(error);
838        if (!(error === null || error === void 0 ? void 0 : (_error_errors = error.errors) === null || _error_errors === void 0 ? void 0 : _error_errors.length) && (error === null || error === void 0 ? void 0 : (_error_errors1 = error.errors) === null || _error_errors1 === void 0 ? void 0 : (_error_errors_ = _error_errors1[0]) === null || _error_errors_ === void 0 ? void 0 : _error_errors_.code)) {
839            var _error_errors_1;
840            dispatch((0,_Lib_store_SnackBarSlice__WEBPACK_IMPORTED_MODULE_4__/* .triggerSnackBar */ .qw)({
841                message: (_error_errors_1 = error === null || error === void 0 ? void 0 : error.errors[0]) !== null && _error_errors_1 !== void 0 ? _error_errors_1 : contentTranslation.error,
842                title: _Constants_snackbar__WEBPACK_IMPORTED_MODULE_3__/* .GENERIC_EVENT_ERR_HEADING */ .U3.REQUEST_FAILED(),
843                type: _wildfork_commercetools_core_ui_dist_src_lib_types_SnackBar__WEBPACK_IMPORTED_MODULE_0__.SnackBarType.ER
843ROR,
844                variant: _wildfork_commercetools_core_ui_dist_src_lib_types_SnackBar__WEBPACK_IMPORTED_MODULE_0__.SnackBarVariant.FILLED
845            }));
846            return;
847        }
848        let scenarios = [];
849        if (errorCodeTranslation) {
850            scenarios = (0,_Utils_snackbarHandlers__WEBPACK_IMPORTED_MODULE_6__/* .getScenariosFromErrorCodeTranslation */ .Jq)({
851                errorCodeTranslation
852            });
853        }
854        (0,_Utils_snackbarHandlers__WEBPACK_IMPORTED_MODULE_6__/* .axiosErrorHandler */ .ri)({
855            error,
856            dispatch,
857            scenarios,
858            fallbackSnackbar: {
859                heading: _Constants_snackbar__WEBPACK_IMPORTED_MODULE_3__/* .GENERIC_EVENT_ERR_HEADING */ .U3.REQUEST_FAILED(),
860                message: contentTranslation.error
861            }
862        });
863    } else {
864        actionOnFormSuccess();
865    }
866};
867
868
869/***/ }),
870
871/***/ 534696:
872/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
873
874"use strict";
875/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
876/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(667294);
877/* harmony import */ var _mui_material_Grid__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(448263);
878/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_formElements_Form__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(468118);
879/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_formElements_FormInputWrapper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(860349);
880/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_formElements_FormInputWrapper__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_formElements_FormInputWrapper__WEBPACK_IMPORTED_MODULE_3__);
881/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_formElements_Input__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(429581);
882/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_formElements_Input__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_formElements_Input__WEBPACK_IMPORTED_MODULE_4__);
883/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_components_ui_message_components__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(737827);
884/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_components_ui_message_components__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wildfork_commercetools_core_ui_dist_src_components_ui_message_components__WEBPACK_IMPORTED_MODULE_5__);
885/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_components_ui_message_Message__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(626135);
886/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_components_ui_message_Message__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wildfork_commercetools_core_ui_dist_src_components_ui_message_Message__WEBPACK_IMPORTED_MODULE_6__);
887/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_hooks_corporate_gift_useRecipientData__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(173273);
888/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_utils_classNames__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(221504);
889/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(131955);
890/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(811163);
891/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_10__);
892/* harmony import */ var _Api_customerApi__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(164535);
893/* harmony import */ var _Api_withAsync__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(715904);
894/* harmony import */ var _Components_providers_context_checkout_CheckoutProvider__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(98385);
895/* harmony import */ var _Components_ui__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(836455);
896/* harmony import */ var _Lib_hooks_useActionBasedOnStorage__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(170077);
897/* harmony import */ var _Lib_hooks_useCustomer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(643525);
898/* harmony import */ var _Lib_hooks_useWrongCredentialsMaxAttempts__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(53306);
899/* harmony import */ var _Lib_store_cartSlice__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(484725);
900/* harmony import */ var _Lib_store_hooks__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(267097);
901/* harmony import */ var _Lib_tracking_trackingEvents__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(538933);
902/* harmony import */ var _Lib_types_tracking__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(637938);
903/* harmony import */ var _Lib_utils_formUtils__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(574166);
904/* harmony import */ var _Lib_utils_locale__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(225220);
905/* harmony import */ var _LoginForm_module_scss__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(809525);
906/* harmony import */ var _LoginForm_module_scss__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(_LoginForm_module_scss__WEBPACK_IMPORTED_MODULE_26__);
907/* harmony import */ var _helpers_commonFormSubmission__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(189058);
908/* harmony import */ var _shared_LinkErrorMessage__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(424802);
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937const forgotPasswordInitialState = {
938    loading: false,
939    sent: false
940};
941const LoginForm = (param)=>{
942    let { onClickForgotPassword, isCheckout = false, isOldCheckoutFlow = false } = param;
943    const dispatch = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_18__/* .useAppDispatch */ .T)();
944    const { push, asPath } = (0,next_router__WEBPACK_IMPORTED_MODULE_10__.useRouter)();
945    const { getCustomerDetails } = (0,_Lib_hooks_useCustomer__WEBPACK_IMPORTED_MODULE_15__/* .useCustomer */ .O)();
946    const cartSlice = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_18__/* .useAppSelector */ .C)(_Lib_store_cartSlice__WEBPACK_IMPORTED_MODULE_17__/* .cartSliceSelector */ .Ew);
947    const [showMaxAttemptsExceeded, setShowMaxAttemptsExceeded] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);
948    const [forgotPasswordEmailSent, setForgotPasswordEmailSent] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({
949        ...forgotPasswordInitialState
950    });
951    const [showSuccessMessageAfterReset, setShowSuccessMessageAfterReset] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);
952    const { recipientData } = (0,_wildfork_commercetools_core_ui_dist_src_hooks_corporate_gift_useRecipientData__WEBPACK_IMPORTED_MODULE_7__.useRecipientData)();
953    const credentialsErrorMessage = (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_22__.t)("customer.form_errors.invalid_login_credentials");
954    const resetPasswordRequiredErrorMessage = (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_22__.t)("customer.form_errors.reset_password_required");
955    const errorCodeTranslation = {
956        WF_CUSTOMER_004: credentialsErrorMessage
957    };
958    const [axiosError, setFormError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)();
959    const loginFormErrorMessages = {
960        resetPasswordRequired: resetPasswordRequiredErrorMessage,
961        invalidCredentials: credentialsErrorMessage,
962        defaultMessage: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_22__.t)("customer.form_errors.something_went_wrong")
963    };
964    const formError = (0,_Lib_utils_formUtils__WEBPACK_IMPORTED_MODULE_21__/* .getLoginFormErrorMessage */ .fZ)(axiosError, loginFormErrorMessages);
965    const handleOnClickSubmit = (values)=>{
966        setForgotPasswordEmailSent({
967            loading: false,
968            sent: false
969        });
970        setFormError(undefined);
971        (0,_helpers_commonFormSubmission__WEBPACK_IMPORTED_MODULE_23__/* .submitFormActionLogin */ .Sk)({
972            dispatch,
973            payload: values,
974            setFormError,
975            errorCodeTranslation,
976            actionOnFormSuccess: async ()=>{
977                js_cookie__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z.remove("redirect_path_after_password_reset");
978                (0,_Lib_hooks_useActionBasedOnStorage__WEBPACK_IMPORTED_MODULE_14__/* .dispatchCartFromCookie */ .ko)({
979                    dispatch
980                });
981                const { response } = await getCustomerDetails();
982                (0,_Lib_tracking_trackingEvents__WEBPACK_IMPORTED_MODULE_19__/* .GTMSetUserId */ .IH)({
983                    customerInfo: response === null || response === void 0 ? void 0 : response.data
984                });
985                (0,_Lib_tracking_trackingEvents__WEBPACK_IMPORTED_MODULE_19__/* .GTMCheckoutAccountType */ .Jj)(_Lib_types_tracking__WEBPACK_IMPORTED_MODULE_20__/* .CheckoutAccountType */ .O.LOGIN);
986                (0,_Lib_tracking_trackingEvents__WEBPACK_IMPORTED_MODULE_19__/* .emarsysProceedToCheckout */ .xt)(cartSlice.lineItems, values === null || values === void 0 ? void 0 : values.email);
987                if (isOldCheckoutFlow) push("/checkout?step=".concat(_Components_providers_context_checkout_CheckoutProvider__WEBPACK_IMPORTED_MODULE_12__/* .CheckoutSteps */ .bN.delivery));
988            }
989        });
990    };
991    const onMaxAttemptsExceeded = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(()=>{
992        setShowMaxAttemptsExceeded(true);
993    }, []);
994    (0,_Lib_hooks_useWrongCredentialsMaxAttempts__WEBPACK_IMPORTED_MODULE_16__/* .useWrongCredentialsMaxAttempts */ .f)({
995        axiosError,
996        onMaxAttemptsExceeded
997    });
998    const triggerForgotPasswordEmail = async (email)=>{
999        setForgotPasswordEmailSent({
1000            loading: true,
1001            sent: false
1002        });
1003        await (0,_Api_withAsync__WEBPACK_IMPORTED_MODULE_25__/* .withAsync */ .j)(()=>{
1004            return (0,_Api_customerApi__WEBPACK_IMPORTED_MODULE_11__/* .submitForgotPasswordForm */ .qZ)({
1005                email
1006            });
1007        });
1008        setShowMaxAttemptsExceeded(false);
1009        setFormError(undefined);
1010        setForgotPasswordEmailSent({
1011            loading: false,
1012            sent: true
1013        });
1014        js_cookie__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z.set("redirect_path_after_password_reset", JSON.stringify({
1015            redirectPath: asPath,
1016            resetStatus: false
1017        }));
1018    };
1019    (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{
1020        var _JSON_parse;
1021        const redirectCookie = js_cookie__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z.get("redirect_path_after_password_reset");
1022        const resetStatus = redirectCookie ? (_JSON_parse = JSON.parse(redirectCookie)) === null || _JSON_parse === void 0 ? void 0 : _JSON_parse.resetStatus : false;
1023        setShowSuccessMessageAfterReset(resetStatus);
1024        if (resetStatus) {
1025            setTimeout(()=>{
1026                setShowSuccessMessageAfterReset(false);
1027                js_cookie__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z.remove("redirect_path_after_password_reset");
1028            }, 60000);
1029        }
1030    }, []);
1031    const formErrorFormatted = !!axiosError ? (formError === null || formError === void 0 ? void 0 : formError.includes("<a")) ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_LinkErrorMessage__WEBPACK_IMPORTED_MODULE_24__/* .LinkErrorMessage */ .B, {
1032        error: formError
1033    }) : formError : null;
1034    // Set initial values based on recipientData when available
1035    const initialValues = {
1036        email: (recipientData === null || recipientData === void 0 ? void 0 : recipientData.email) || ""
1037    };
1038    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_formElements_Form__WEBPACK_IMPORTED_MODULE_2__/* .Form */ .l, {
1039        initialValues: initialValues,
1040        onSubmit: handleOnClickSubmit,
1041        testID: "login_form",
1042        render: (param)=>{
1043            let { handleSubmit, values } = param;
1044            return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
1045                className: "form-container",
1046                children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("form", {
1047                    className: "form form--customer-login",
1048                    "aria-label": "checkout login form",
1049                    children: [
1050                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
1051                            className: (_LoginForm_module_scss__WEBPACK_IMPORTED_MODULE_26___default().form__messages),
1052                            children: [
1053                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_components_ui_message_Message__WEBPACK_IMPORTED_MODULE_6__.Message, {
1054                                    show: forgotPasswordEmailSent.sent,
1055                                    variant: "success",
1056                                    children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_wildfork_commercetools_core_ui_dist_src_components_ui_message_components__WEBPACK_IMPORTED_MODULE_5__.MessageContent, {
1057                                        children: [
1058                                            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_wildfork_commercetools_core_ui_dist_src_components_ui_message_components__WEBPACK_IMPORTED_MODULE_5__.MessageHeading, {
1059                                                children: [
1060                                                    "If an account for ",
1061                                                    values === null || values === void 0 ? void 0 : values.email,
1062                                                    " exists, we will send you an email with a link to reset your password."
1063                                                ]
1064                                            }),
1065                                            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_components_ui_message_components__WEBPACK_IMPORTED_MODULE_5__.MessageBody, {
1066                                                children: "Please follow the instructions in the email. Be sure to check your spam or junk email."
1067                                            })
1068                                        ]
1069                                    })
1070                                }),
1071                                showMaxAttemptsExceeded && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
1072                                    onClick: ()=>triggerForgotPasswordEmail(values === null || values === void 0 ? void 0 : values.email),
1073                                    className: (0,_wildfork_commercetools_core_ui_dist_src_lib_utils_classNames__WEBPACK_IMPORTED_MODULE_8__["default"])((_LoginForm_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["update-password-notification"]), forgotPasswordEmailSent.loading && (_LoginForm_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["update-password-notification--loading"])),
1074                                    children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_components_ui_message_Message__WEBPACK_IMPORTED_MODULE_6__.Message, {
1075                                        show: true,
1076                                        variant: "dark",
1077                                        children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_components_ui_message_components__WEBPACK_IMPORTED_MODULE_5__.MessageContent, {
1078                                            children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_wildfork_commercetools_core_ui_dist_src_components_ui_message_components__WEBPACK_IMPORTED_MODULE_5__.MessageHeading, {
1079                                                children: [
1080                                                    "We’ve recently updated our website and require all users to ",
1081                                                    /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("u", {
1082                                                        children: "update their password"
1083                                                    }),
1084                                                    ". If you have not done so already, please do."
1085                                                ]
1086                                            })
1087                                        })
1088                                    })
1089                                }),
1090                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_wildfork_commercetools_core_ui_dist_src_components_ui_message_Message__WEBPACK_IMPORTED_MODULE_6__.Message, {
1091                                    show: !!axiosError,
1092                                    variant: "error",
1093                                    children: [
1094                                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_components_ui_message_components__WEBPACK_IMPORTED_MODULE_5__.MessageIcon, {}),
1095                                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_components_ui_message_components__WEBPACK_IMPORTED_MODULE_5__.MessageContent, {
1096                                            children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_components_ui_message_components__WEBPACK_IMPORTED_MODULE_5__.MessageHeading, {
1097                                                children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
1098                                                    className: (_LoginForm_module_scss__WEBPACK_IMPORTED_MODULE_26___default().form__error_container),
1099                                                    children: formErrorFormatted
1100                                                })
1101                                            })
1102                                        })
1103                                    ]
1104                                }),
1105                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_components_ui_message_Message__WEBPACK_IMPORTED_MODULE_6__.Message, {
1106                                    show: showSuccessMessageAfterReset && !axiosError,
1107                                    variant: "success-fill",
1108                                    children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_components_ui_message_components__WEBPACK_IMPORTED_MODULE_5__.MessageContent, {
1109                                        children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_wildfork_commercetools_core_ui_dist_src_components_ui_message_components__WEBPACK_IMPORTED_MODULE_5__.MessageHeading, {
1110                                            children: [
1111                                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
1112                                                    className: (_LoginForm_module_scss__WEBPACK_IMPORTED_MODULE_26___default().form__messages__heading1),
1113                                                    children: "Thank you for resetting your password!"
1114                                                }),
1115                                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
1116                                                    className: (_LoginForm_module_scss__WEBPACK_IMPORTED_MODULE_26___default().form__messages__heading2),
1117                                                    children: "You can now login to place your order."
1118                                                })
1119                                            ]
1120                                        })
1121                                    })
1122                                })
1123                            ]
1124                        }),
1125                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material_Grid__WEBPACK_IMPORTED_MODULE_27__/* ["default"] */ .ZP, {
1126                            container: true,
1127                            spacing: 2,
1128                            marginBottom: 2,
1129                            children: [
1130                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_Grid__WEBPACK_IMPORTED_MODULE_27__/* ["default"] */ .ZP, {
1131                                    item: true,
1132                                    xs: 12,
1133                                    children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_formElements_Input__WEBPACK_IMPORTED_MODULE_4__.Input, {
1134                                        label: "Email",
1135                                        name: "email",
1136                                        required: true,
1137                                        placeholder: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_22__.t)("customer.login.place_holders.email"),
1138                                        validations: [
1139                                            _wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_formElements_FormInputWrapper__WEBPACK_IMPORTED_MODULE_3__.FormValidations.Required,
1140                                            _wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_formElements_FormInputWrapper__WEBPACK_IMPORTED_MODULE_3__.FormValidations.Email
1141                                        ],
1142                                        trim: true
1143                                    })
1144                                }),
1145                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_Grid__WEBPACK_IMPORTED_MODULE_27__/* ["default"] */ .ZP, {
1146                                    item: true,
1147                                    xs: 12,
1148                                    children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_formElements_Input__WEBPACK_IMPORTED_MODULE_4__.Input, {
1149                                        label: "Password",
1150                                        name: "password",
1151                                        type: "password",
1152                                        required: true,
1153                                        placeholder: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_22__.t)("customer.login.place_holders.password"),
1154                                        validations: [
1155                                            _wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_formElements_FormInputWrapper__WEBPACK_IMPORTED_MODULE_3__.FormValidations.Required
1156                                        ],
1157                                        withPreview: true
1158                                    })
1159                                })
1160                            ]
1161                        }),
1162                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
1163                            className: (0,_wildfork_commercetools_core_ui_dist_src_lib_utils_classNames__WEBPACK_IMPORTED_MODULE_8__["default"])("form__link form__link--forgot-password", (_LoginForm_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["forgot-password"])),
1164                            children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("a", {
1165                                "data-testid": "forgot_password",
1166                                href: "javascript:void(0);",
1167                                onClick: ()=>onClickForgotPassword(false),
1168                                children: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_22__.t)("customer.login.forgot_password")
1169                            })
1170                        }),
1171                        /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
1172                            className: "form__actions",
1173                            children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Components_ui__WEBPACK_IMPORTED_MODULE_13__/* .Button */ .zx, {
1174                                "data-testid": "form_field-button_submit",
1175                                className: (0,_wildfork_commercetools_core_ui_dist_src_lib_utils_classNames__WEBPACK_IMPORTED_MODULE_8__["default"])("action", (_LoginForm_module_scss__WEBPACK_IMPORTED_MODULE_26___default()["submit-button"])),
1176                                onClick: handleSubmit,
1177                                type: "submit",
1178                                children: isCheckout ? (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_22__.t)("checkout.auth.login.form.submit") : (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_22__.t)("customer.login.sign_in")
1179                            })
1180                        })
1181                    ]
1182                })
1183            });
1184        }
1185    });
1186};
1187/* harmony default export */ __webpack_exports__.Z = (LoginForm);
1188
1189
1190/***/ }),
1191
1192/***/ 375409:
1193/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1194
1195"use strict";
1196/* unused harmony export NewsletterSubtext */
1197/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
1198/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(667294);
1199/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_forms_SignUpForm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(458458);
1200/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_forms_SignUpForm__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_forms_SignUpForm__WEBPACK_IMPORTED_MODULE_2__);
1201/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(305208);
1202/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_utils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wildfork_commercetools_core_ui_dist_src_lib_utils__WEBPACK_IMPORTED_MODULE_3__);
1203/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(811163);
1204/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_4__);
1205/* harmony import */ var next_i18next__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(900710);
1206/* harmony import */ var _Components_forms_helpers_commonFormSubmission__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(189058);
1207/* harmony import */ var _Components_providers_context_checkout_CheckoutProvider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(98385);
1208/* harmony import */ var _Lib_hooks_useCustomer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(643525);
1209/* harmony import */ var _Lib_store_cartSlice__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(484725);
1210/* harmony import */ var _Lib_store_hooks__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(267097);
1211/* harmony import */ var _Lib_tracking_trackingEvents__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(538933);
1212/* harmony import */ var _Lib_types_tracking__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(637938);
1213/* harmony import */ var _Lib_utils_locale__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(225220);
1214/* harmony import */ var _shared_LinkErrorMessage__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(424802);
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230const NewsletterSubtext = (param)=>{
1231    let { languageCode } = param;
1232    if (languageCode === "en-CA") {
1233        return /*#__PURE__*/ _jsx("p", {
1234            children: /*#__PURE__*/ _jsxs(Trans, {
1235                t: t,
1236                i18nKey: "customer.register.newsletter_subtext",
1237                children: [
1238                    "All communications are subject to ",
1239                    /*#__PURE__*/ _jsx("u", {
1240                        children: "Terms of Use"
1241                    }),
1242                    ",",
1243                    " ",
1244                    /*#__PURE__*/ _jsx("u", {
1245                        children: "Return Policy"
1246                    }),
1247                    ", ",
1248                    /*#__PURE__*/ _jsx("u", {
1249                        children: "Privacy Policy"
1250                    })
1251                ]
1252            })
1253        });
1254    } else {
1255        return /*#__PURE__*/ _jsx("p", {
1256            children: t("customer.register.newsletter_subtext")
1257        });
1258    }
1259};
1260const RegisterForm = (noRedirect, isModal)=>{
1261    const { push } = (0,next_router__WEBPACK_IMPORTED_MODULE_4__.useRouter)();
1262    const dispatch = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_10__/* .useAppDispatch */ .T)();
1263    const cartSlice = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_10__/* .useAppSelector */ .C)(_Lib_store_cartSlice__WEBPACK_IMPORTED_MODULE_9__/* .cartSliceSelector */ .Ew);
1264    const { getCustomerDetails } = (0,_Lib_hooks_useCustomer__WEBPACK_IMPORTED_MODULE_8__/* .useCustomer */ .O)();
1265    const [axiosError, setAxiosError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(undefined);
1266    const errorCodeTranslation = {
1267        WF_CUSTOMER_001: isModal ? (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_13__.t)("customer.form_errors.existing_account") // Avoid embedding html on the message and redirecting from modal.
1268         : (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_13__.t)("customer.form_errors.existing_account_html"),
1269        WF_CUSTOMER_002: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_13__.t)("customer.form_errors.blank_email"),
1270        WF_CUSTOMER_003: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_13__.t)("customer.form_errors.blank_password"),
1271        WF_CUSTOMER_005: (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_13__.t)("customer.form_errors.blank_field")
1272    };
1273    const formErrorCode = _wildfork_commercetools_core_ui_dist_src_lib_utils__WEBPACK_IMPORTED_MODULE_3__.AxiosErrorUtils.getErrorCode(axiosError);
1274    const formError = (errorCodeTranslation === null || errorCodeTranslation === void 0 ? void 0 : errorCodeTranslation[formErrorCode]) || (0,_Lib_utils_locale__WEBPACK_IMPORTED_MODULE_13__.t)("customer.form_errors.something_went_wrong");
1275    const actionOnFormSuccess = async ()=>{
1276        const { response } = await getCustomerDetails();
1277        const customerInfo = response === null || response === void 0 ? void 0 : response.data;
1278        (0,_Lib_tracking_trackingEvents__WEBPACK_IMPORTED_MODULE_11__/* .GTMSetUserId */ .IH)({
1279            customerInfo: response === null || response === void 0 ? void 0 : response.data
1280        });
1281        if (!noRedirect) {
1282            (0,_Lib_tracking_trackingEvents__WEBPACK_IMPORTED_MODULE_11__/* .GTMCheckoutAccountType */ .Jj)(_Lib_types_tracking__WEBPACK_IMPORTED_MODULE_12__/* .CheckoutAccountType */ .O.SIGNUP);
1283            (0,_Lib_tracking_trackingEvents__WEBPACK_IMPORTED_MODULE_11__/* .emarsysProceedToCheckout */ .xt)(cartSlice.lineItems, customerInfo === null || customerInfo === void 0 ? void 0 : customerInfo.email);
1284            push("/checkout?step=".concat(_Components_providers_context_checkout_CheckoutProvider__WEBPACK_IMPORTED_MODULE_7__/* .CheckoutSteps */ .bN.delivery));
1285        }
1286    };
1287    const onSubmit = async (values)=>{
1288        setAxiosError(undefined);
1289        const payload = {
1290            ...values
1291        };
1292        if (payload === null || payload === void 0 ? void 0 : payload.confirm) delete payload.confirm;
1293        (0,_Components_forms_helpers_commonFormSubmission__WEBPACK_IMPORTED_MODULE_6__/* .submitFormActionSignup */ .o1)({
1294            dispatch,
1295            payload,
1296            setFormError: setAxiosError,
1297            errorCodeTranslation,
1298            actionOnFormSuccess
1299        });
1300    };
1301    const formErrorFormatted = !!axiosError ? (formError === null || formError === void 0 ? void 0 : formError.includes("<a")) ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_LinkErrorMessage__WEBPACK_IMPORTED_MODULE_14__/* .LinkErrorMessage */ .B, {
1302        error: formError
1303    }) : formError : null;
1304    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
1305        className: "form-container",
1306        children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_components_templates_FormContainer_forms_SignUpForm__WEBPACK_IMPORTED_MODULE_2__.SignUpForm, {
1307            onSubmit: onSubmit,
1308            formError: formErrorFormatted
1309        })
1310    });
1311};
1312/* harmony default export */ __webpack_exports__.Z = (RegisterForm);
1313
1314
1315/***/ }),
1316
1317/***/ 424802:
1318/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1319
1320"use strict";
1321/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1322/* harmony export */   B: function() { return /* binding */ LinkErrorMessage; }
1323/* harmony export */ });
1324/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
1325/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(741664);
1326/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);
1327
1328
1329const LinkErrorMessage = (param)=>{
1330    let { error } = param;
1331    const getHref = (error)=>{
1332        const href = error === null || error === void 0 ? void 0 : error.match(/href="([^"]*)/);
1333        return (href === null || href === void 0 ? void 0 : href[1]) || "";
1334    };
1335    const getTextBeforeLink = (error)=>{
1336        const textBeforeLink = error === null || error === void 0 ? void 0 : error.match(/(.*)<a/);
1337        return (textBeforeLink === null || textBeforeLink === void 0 ? void 0 : textBeforeLink[1]) || "";
1338    };
1339    const getTextAfterLink = (error)=>{
1340        const textAfterLink = error === null || error === void 0 ? void 0 : error.match(/a>(.*)/);
1341        return (textAfterLink === null || textAfterLink === void 0 ? void 0 : textAfterLink[1]) || "";
1342    };
1343    const getLinkText = (error)=>{
1344        const linkText = error === null || error === void 0 ? void 0 : error.match(/>([^<]*)</);
1345        return (linkText === null || linkText === void 0 ? void 0 : linkText[1]) || "";
1346    };
1347    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
1348        className: "error__message reset-link",
1349        children: [
1350            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
1351                children: getTextBeforeLink(error)
1352            }),
1353            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {
1354                href: getHref(error),
1355                children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
1356                    children: getLinkText(error)
1357                })
1358            }),
1359            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
1360                children: getTextAfterLink(error)
1361            })
1362        ]
1363    });
1364};
1365
1366
1367/***/ }),
1368
1369/***/ 500031:
1370/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1371
1372"use strict";
1373
1374// EXPORTS
1375__webpack_require__.d(__webpack_exports__, {
1376  d: function() { return /* reexport */ useFastlaneInitializationOPC; },
1377  a: function() { return /* reexport */ useOpcPayment; }
1378});
1379
1380// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/components/one-page-checkout/index.js
1381var one_page_checkout = __webpack_require__(879161);
1382// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/context/index.js
1383var context = __webpack_require__(93050);
1384// EXTERNAL MODULE: ./node_modules/next/router.js
1385var next_router = __webpack_require__(811163);
1386// EXTERNAL MODULE: ./src/components/one-page-checkout/constants/index.ts
1387var constants = __webpack_require__(701119);
1388// EXTERNAL MODULE: ./src/components/one-page-checkout/hooks/payment/paymentContants.ts
1389var paymentContants = __webpack_require__(754513);
1390// EXTERNAL MODULE: ./src/components/one-page-checkout/utils/createOnePageCheckoutHandlers.ts + 1 modules
1391var createOnePageCheckoutHandlers = __webpack_require__(707635);
1392// EXTERNAL MODULE: ./src/lib/store/customerInfoSlice.ts
1393var customerInfoSlice = __webpack_require__(680921);
1394// EXTERNAL MODULE: ./src/lib/store/hooks.ts
1395var hooks = __webpack_require__(267097);
1396// EXTERNAL MODULE: ./src/lib/store/onePageCheckoutPaymentSlice.ts
1397var onePageCheckoutPaymentSlice = __webpack_require__(412512);
1398// EXTERNAL MODULE: ./src/lib/store/zipcodeSlice.tsx
1399var zipcodeSlice = __webpack_require__(480326);
1400// EXTERNAL MODULE: ./src/components/one-page-checkout/hooks/useDeliveryWindowSession.ts
1401var useDeliveryWindowSession = __webpack_require__(833075);
1402;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/cardPayment/useSubmitCardOrder.ts
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414const useSubmitCardOrder = ()=>{
1415    const { giftCard, paymentFormData } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
1416    const { getDeliveryWindowSession, setDeliveryWindowSession }
1416 = (0,useDeliveryWindowSession/* useDeliveryWindowSession */.i)();
1417    const { getValues } = (0,one_page_checkout/* useGetOpcFormValues */.BC)();
1418    const { cartCheckInventory, submitBillingAddress, addShippingAddress, submitOrder, submitOrderGC, submitGiftOrderInformation, onOrderSubmitFailed } = (0,createOnePageCheckoutHandlers/* createOpcHandlers */.A2)({
1419        getDeliveryWindowSession,
1420        setDeliveryWindowSession
1421    });
1422    const { onlyMembershipItemInTheCart, cart } = (0,context.useCartContext)();
1423    const storeDetails = (0,hooks/* useAppSelector */.C)(zipcodeSlice/* storeDetailsSelector */.W$);
1424    const { firstName, lastName } = (0,hooks/* useAppSelector */.C)(customerInfoSlice/* CustomerInfoSelector */.fP);
1425    const { push } = (0,next_router.useRouter)();
1426    const getBillingAddressPayload = ()=>{
1427        const useSameAsShipping = getValues("useSameAsShipping");
1428        const shippingAddress = getValues("shippingAddress");
1429        if (useSameAsShipping) {
1430            const { firstName, lastName, phone, address1, address2, city, state, postalCode, country } = shippingAddress;
1431            return {
1432                firstName,
1433                lastName,
1434                phone,
1435                address1,
1436                address2: address2 !== null && address2 !== void 0 ? address2 : "",
1437                city,
1438                state,
1439                postalCode,
1440                country
1441            };
1442        }
1443        const billingAddress = getValues("billingAddress");
1444        var _billingAddress_address2;
1445        return {
1446            ...billingAddress,
1447            address2: (_billingAddress_address2 = billingAddress.address2) !== null && _billingAddress_address2 !== void 0 ? _billingAddress_address2 : ""
1448        };
1449    };
1450    const getGiftOrderInformationPayload = ()=>{
1451        const isGiftOrder = getValues("isGiftOrder");
1452        const giftMessage = getValues("giftMessage");
1453        return {
1454            isGiftOrder,
1455            giftMessage
1456        };
1457    };
1458    const updateShippingAddressWithStoreInfo = async ()=>{
1459        try {
1460            var _storeDetails_stores_, _storeDetails_stores;
1461            const storeAddress = storeDetails === null || storeDetails === void 0 ? void 0 : (_storeDetails_stores = storeDetails.stores) === null || _storeDetails_stores === void 0 ? void 0 : (_storeDetails_stores_ = _storeDetails_stores[0]) === null || _storeDetails_stores_ === void 0 ? void 0 : _storeDetails_stores_.address;
1462            if (!storeAddress) {
1463                throw new Error("Store address is not available");
1464            }
1465            var _storeAddress_address1, _storeAddress_address2, _storeAddress_city, _storeAddress_state, _storeAddress_postalCode, _storeAddress_phone, _storeAddress_country;
1466            // adds shipping address to satisfy BE Validation
1467            const addressInfo = {
1468                firstName: firstName,
1469                lastName: lastName,
1470                address1: (_storeAddress_address1 = storeAddress.address1) !== null && _storeAddress_address1 !== void 0 ? _storeAddress_address1 : "",
1471                address2: (_storeAddress_address2 = storeAddress.address2) !== null && _storeAddress_address2 !== void 0 ? _storeAddress_address2 : "",
1472                city: (_storeAddress_city = storeAddress.city) !== null && _storeAddress_city !== void 0 ? _storeAddress_city : "",
1473                state: (_storeAddress_state = storeAddress.state) !== null && _storeAddress_state !== void 0 ? _storeAddress_state : "",
1474                postalCode: (_storeAddress_postalCode = storeAddress.postalCode) !== null && _storeAddress_postalCode !== void 0 ? _storeAddress_postalCode : "",
1475                phone: (_storeAddress_phone = storeAddress.phone) !== null && _storeAddress_phone !== void 0 ? _storeAddress_phone : "",
1476                country: (_storeAddress_country = storeAddress.country) !== null && _storeAddress_country !== void 0 ? _storeAddress_country : ""
1477            };
1478            await addShippingAddress({
1479                data: addressInfo,
1480                defaultAddress: false
1481            });
1482        } catch (error) {
1483            throw error;
1484        }
1485    };
1486    const mandatoryChecksBeforeSubmitOrder = async function() {
1487        let callBillingAddress = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
1488        if (onlyMembershipItemInTheCart) {
1489            await updateShippingAddressWithStoreInfo();
1490        } else {
1491            const isDelivery = getValues("fulfillmentType") === "delivery";
1492            if (isDelivery) {
1493                const giftOrderInformationPayload = getGiftOrderInformationPayload();
1494                await submitGiftOrderInformation({
1495                    ...giftOrderInformationPayload
1496                });
1497            }
1498            await cartCheckInventory();
1499        }
1500        if (callBillingAddress) {
1501            const billingAddressPayload = getBillingAddressPayload();
1502            await submitBillingAddress({
1503                billingAddressPayload: {
1504                    ...billingAddressPayload,
1505                    sameAsShipping: getValues("useSameAsShipping") ? true : false
1506                }
1507            });
1508        }
1509    };
1510    /**
1511   * Handles gift card payment on Place Order click.
1512   *
1513   * SUFFICIENT: GC covers the full amount — submits order with GC data only
1514   * and navigates to confirmation. Returns true (fully handled).
1515   *
1516   * INSUFFICIENT: GC is a partial payment — calls submitOrderGC first to
1517   * register the GC portion, then returns false so the caller continues
1518   * with the remaining card payment.
1519   *
1520   * IDLE: no GC applied — returns false immediately.
1521   */ const handleGiftCardPayment = async ()=>{
1522        var _giftCard_state;
1523        const giftCardState = (_giftCard_state = giftCard === null || giftCard === void 0 ? void 0 : giftCard.state) !== null && _giftCard_state !== void 0 ? _giftCard_state : constants/* GIFT_CARD_STATE */.C.IDLE;
1524        const giftCardEncryptedData = giftCard === null || giftCard === void 0 ? void 0 : giftCard.encryptedData;
1525        // SUFFICIENT — GC covers the full order amount
1526        if (giftCardState === constants/* GIFT_CARD_STATE */.C.SUFFICIENT && giftCardEncryptedData) {
1527            const orderResponse = await submitOrder({
1528                paymentAuth: "",
1529                paymentData: JSON.stringify(giftCardEncryptedData),
1530                tipReceived: cart.driverTip
1531            });
1532            if (orderResponse === null || orderResponse === void 0 ? void 0 : orderResponse.orderNumber) {
1533                push(paymentContants/* Confirmation_Page_Route */.cD);
1534            }
1535            return true;
1536        }
1537        // INSUFFICIENT — register GC partial payment, then fall through to card
1538        if (giftCardState === constants/* GIFT_CARD_STATE */.C.INSUFFICIENT && giftCardEncryptedData && submitOrderGC) {
1539            await submitOrderGC({
1540                paymentData: JSON.stringify(giftCardEncryptedData),
1541                tipReceived: 0,
1542                paymentAuth: ""
1543            });
1544        }
1545        return false;
1546    };
1547    const submitCardOrder = async ()=>{
1548        try {
1549            await mandatoryChecksBeforeSubmitOrder(true);
1550            const isGiftCardFullyHandled = await handleGiftCardPayment();
1551            if (isGiftCardFullyHandled) return;
1552            // For INSUFFICIENT, include adyenOrderResponse so the backend can link
1553            // the GC partial payment to this card transaction.
1554            const adyenOrderResponse = giftCard === null || giftCard === void 0 ? void 0 : giftCard.adyenOrderResponse;
1555            const paymentDataWithGC = {
1556                ...paymentFormData,
1557                ...(adyenOrderResponse === null || adyenOrderResponse === void 0 ? void 0 : adyenOrderResponse.orderData) && {
1558                    order: adyenOrderResponse
1559                }
1560            };
1561            // Regular card payment (or remainder after partial GC payment)
1562            const orderResponse = await submitOrder({
1563                paymentAuth: "",
1564                paymentData: JSON.stringify(paymentDataWithGC),
1565                tipReceived: cart.driverTip
1566            });
1567            if (orderResponse === null || orderResponse === void 0 ? void 0 : orderResponse.orderNumber) {
1568                push(paymentContants/* Confirmation_Page_Route */.cD);
1569            }
1570        } catch (error) {
1571            console.log("Place order failed", {
1572                error
1573            });
1574            onOrderSubmitFailed === null || onOrderSubmitFailed === void 0 ? void 0 : onOrderSubmitFailed();
1575        }
1576    };
1577    return {
1578        submitCardOrder,
1579        mandatoryChecksBeforeSubmitOrder
1580    };
1581};
1582
1583// EXTERNAL MODULE: ./node_modules/react/index.js
1584var react = __webpack_require__(667294);
1585// EXTERNAL MODULE: ./node_modules/@adyen/adyen-web/dist/es/adyen.css
1586var adyen = __webpack_require__(201640);
1587// EXTERNAL MODULE: ./node_modules/@adyen/adyen-web/dist/es/core/AdyenCheckout.js + 48 modules
1588var AdyenCheckout = __webpack_require__(969214);
1589// EXTERNAL MODULE: ./node_modules/@adyen/adyen-web/dist/es/components/PayPalFastlane/Fastlane.js + 2 modules
1590var Fastlane = __webpack_require__(924184);
1591// EXTERNAL MODULE: ./node_modules/@adyen/adyen-web/dist/es/components/Card/Card.js + 111 modules
1592var Card = __webpack_require__(790154);
1593// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/constants/locale.js
1594var locale = __webpack_require__(808439);
1595// EXTERNAL MODULE: ./src/lib/hooks/useCustomer.ts
1596var useCustomer = __webpack_require__(643525);
1597// EXTERNAL MODULE: ./src/lib/store/cartSlice.ts + 1 modules
1598var cartSlice = __webpack_require__(484725);
1599// EXTERNAL MODULE: ./src/api/checkoutApi.ts
1600var checkoutApi = __webpack_require__(451881);
1601// EXTERNAL MODULE: ./src/lib/utils/locale.ts + 2 modules
1602var utils_locale = __webpack_require__(225220);
1603;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/paymentUtils.ts
1604const formatStoredCardLastFour = (card)=>{
1605    return card.lastFour || "****";
1606};
1607const getStoredPaymentMethodId = (card)=>{
1608    var _card_id;
1609    return (_card_id = card.id) !== null && _card_id !== void 0 ? _card_id : "stored-".concat(card.lastFour);
1610};
1611
1612;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/cardPayment/useSavedCardRemove.tsx
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622const useSavedCardRemove = (param)=>{
1623    let { isRemoving, setCardIdToRemove, cardIdToRemove, setIsRemoving, selectedOption, storedPaymentMethods, setSelectedOption, clearSelection } = param;
1624    const amount = (0,hooks/* useAppSelector */.C)(cartSlice/* selectOPCPaymentAmount */.ZJ);
1625    const dispatch = (0,hooks/* useAppDispatch */.T)();
1626    const handleRemoveClick = (0,react.useCallback)((event, cardId)=>{
1627        event.preventDefault();
1628        event.stopPropagation();
1629        if (!cardId || isRemoving) {
1630            return;
1631        }
1632        setCardIdToRemove(cardId);
1633    }, [
1634        isRemoving,
1635        setCardIdToRemove
1636    ]);
1637    const handleConfirmRemove = (0,react.useCallback)(async ()=>{
1638        const cardId = cardIdToRemove;
1639        if (!cardId) {
1640            return;
1641        }
1642        setCardIdToRemove(null);
1643        setIsRemoving(true);
1644        try {
1645            const success = await (0,checkoutApi/* postRemovePaymentMethodsAPI */.FR)({
1646                recurringDetailReference: cardId
1647            }).then(()=>
1647true).catch(()=>false);
1648            if (success) {
1649                dispatch((0,onePageCheckoutPaymentSlice/* removeStoredPaymentMethod */.C5)(cardId));
1650                if (selectedOption === cardId) {
1651                    const remainingCards = storedPaymentMethods.filter((card)=>card.id !== cardId);
1652                    setSelectedOption(remainingCards.length > 0 ? getStoredPaymentMethodId(remainingCards[0]) : paymentContants/* NEW_CARD_OPTION_VALUE */.Lm);
1653                    clearSelection();
1654                }
1655                dispatch((0,onePageCheckoutPaymentSlice/* getPaymentMethods */.Q8)(locale.CURRENCY_CODE, locale.CURRENT_COUNTRY_SHORT_CODE, amount, utils_locale/* LANGUAGE */.ad));
1656            }
1657        } finally{
1658            setIsRemoving(false);
1659        }
1660    }, [
1661        amount,
1662        cardIdToRemove,
1663        clearSelection,
1664        dispatch,
1665        selectedOption,
1666        setCardIdToRemove,
1667        setIsRemoving,
1668        setSelectedOption,
1669        storedPaymentMethods
1670    ]);
1671    const handleCancelRemove = (0,react.useCallback)(()=>{
1672        setCardIdToRemove(null);
1673    }, [
1674        setCardIdToRemove
1675    ]);
1676    return {
1677        handleRemoveClick,
1678        handleConfirmRemove,
1679        handleCancelRemove
1680    };
1681};
1682
1683// EXTERNAL MODULE: ./node_modules/@adyen/adyen-web/dist/es/components/PayPalFastlane/initializeFastlane.js + 3 modules
1684var initializeFastlane = __webpack_require__(912943);
1685// EXTERNAL MODULE: ./src/lib/configs/environment.ts
1686var environment = __webpack_require__(208891);
1687// EXTERNAL MODULE: ./src/lib/hooks/index.ts + 13 modules
1688var lib_hooks = __webpack_require__(130414);
1689// EXTERNAL MODULE: ./src/components/one-page-checkout/hooks/payment/paymentTypes.ts
1690var paymentTypes = __webpack_require__(279533);
1691;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/fastlanePayment/useFastlaneInitializationOPC.ts
1692
1693
1694
1695
1696
1697
1698
1699
1700const PROD_ENVS = [
1701    "prod",
1702    "production"
1703];
1704const useFastlaneInitializationOPC = ()=>{
1705    const dispatch = (0,hooks/* useAppDispatch */.T)();
1706    const { fastlaneObj } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
1707    const [status, setStatus] = (0,react.useState)({
1708        isLoading: false,
1709        isInitialized: false
1710    });
1711    const { isLoggedIn } = (0,lib_hooks/* useCustomer */.ON)();
1712    const initFastlane = (0,react.useCallback)(async ()=>{
1713        setStatus((prev)=>({
1714                ...prev,
1715                isLoading: true
1716            }));
1717        try {
1718            var _process_env_NEXT_PUBLIC_NODE_ENV;
1719            const nodeEnv = (_process_env_NEXT_PUBLIC_NODE_ENV = "prod") !== null && _process_env_NEXT_PUBLIC_NODE_ENV !== void 0 ? _process_env_NEXT_PUBLIC_NODE_ENV : "";
1720            const isLive = PROD_ENVS.includes(nodeEnv);
1721            const fastlane = await (0,initializeFastlane/* default */.Z)({
1722                clientKey: environment.nextAppEnv.adyen.clientKey,
1723                environment: isLive ? "live" : "test",
1724                forceConsentDetails: !isLive
1725            });
1726            const sdk = fastlane !== null && fastlane !== void 0 ? fastlane : null;
1727            dispatch((0,onePageCheckoutPaymentSlice/* setFastlaneObj */.ru)(sdk));
1728            setStatus({
1729                isLoading: false,
1730                isInitialized: true
1731            });
1732            return sdk;
1733        } catch (error) {
1734            console.error("[useFastlaneInitialization] initFastlane error:", error);
1735            setStatus((prev)=>({
1736                    ...prev,
1737                    isLoading: false
1738                }));
1739            return null;
1740        }
1741    }, [
1742        dispatch
1743    ]);
1744    (0,react.useEffect)(()=>{
1745        if (!paymentContants/* isPaypalFastlaneCheckoutEnabled */._2) return;
1746        initFastlane().catch(console.error);
1747    }, [
1748        initFastlane
1749    ]);
1750    const validateFastlaneEmailOPC = (0,react.useCallback)(async (email)=>{
1751        if (!fastlaneObj || !email) {
1752            console.warn("[useFastlaneInitialization] Fastlane object or email missing");
1753            return;
1754        }
1755        try {
1756            const authResult = await fastlaneObj.authenticate(email);
1757            if (authResult.authenticationState === paymentTypes/* FastlaneAuthStatusOPC */.P.SUCCEEDED || authResult.authenticationState === paymentTypes/* FastlaneAuthStatusOPC */.P.NOT_FOUND) {
1758                const { paymentType, configuration } = await fastlaneObj.getComponentConfiguration(authResult);
1759                dispatch((0,onePageCheckoutPaymentSlice/* setFastlaneConfig */.Au)({
1760                    fastlaneAuthData: authResult,
1761                    guestUserEmail: email,
1762                    fastlaneCardsConfig: {
1763                        paymentType,
1764                        configuration
1765                    },
1766                    isLoggedIn
1767                }));
1768            } else {
1769                // CANCELED or FAILED
1770                dispatch((0,onePageCheckoutPaymentSlice/* setFastlaneConfig */.Au)({
1771                    fastlaneAuthData: authResult,
1772                    guestUserEmail: email,
1773                    fastlaneCardsConfig: {
1774                        paymentType: "fastlane",
1775                        configuration: {}
1776                    },
1777                    isLoggedIn
1778                }));
1779            }
1780        } catch (error) {
1781            // reset address if there is any error
1782            console.error("[useFastlaneInitialization] validateFastlaneEmailOPC error:", error);
1783        }
1784    }, [
1785        dispatch,
1786        fastlaneObj,
1787        isLoggedIn
1788    ]);
1789    return {
1790        fastlaneObj,
1791        status,
1792        initFastlane,
1793        validateFastlaneEmailOPC
1794    };
1795};
1796
1797;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/fastlanePayment/useFastlanePayment.ts
1798/* provided dependency */ var Buffer = __webpack_require__(348764)["lW"];
1799
1800
1801
1802
1803
1804const encodeFastlaneData = (payload)=>{
1805    const serializedPayload = JSON.stringify(payload);
1806    if ( true && typeof window.btoa === "function") {
1807        return window.btoa(serializedPayload);
1808    }
1809    return Buffer.from(serializedPayload, "utf-8").toString("base64");
1810};
1811const useFastlanePayment = ()=>{
1812    var _fastlaneConfigData_fastlaneAuthData;
1813    const { currency, languageCode } = locale.CURRENT_LOCALE;
1814    var _languageCode_substring;
1815    const country = (_languageCode_substring = languageCode === null || languageCode === void 0 ? void 0 : languageCode.substring(3, 5)) !== null && _languageCode_substring !== void 0 ? _languageCode_substring : "US";
1816    const fastlaneConfigData = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutFastlaneConfig */.EA);
1817    const authState = fastlaneConfigData === null || fastlaneConfigData === void 0 ? void 0 : (_fastlaneConfigData_fastlaneAuthData = fastlaneConfigData.fastlaneAuthData) === null || _fastlaneConfigData_fastlaneAuthData === void 0 ? void 0 : _fastlaneConfigData_fastlaneAuthData.authenticationState;
1818    const isFastlaneSucceeded = authState === paymentTypes/* FastlaneAuthStatusOPC */.P.SUCCEEDED;
1819    const isFastlaneNotFound = authState === paymentTypes/* FastlaneAuthStatusOPC */.P.NOT_FOUND;
1820    const getFastlaneAdyenConfig = (0,react.useCallback)((amount)=>{
1821        if (!fastlaneConfigData) return null;
1822        const baseConfig = {
1823            amount: {
1824                value: amount,
1825                currency
1826            },
1827            countryCode: country
1828        };
1829        if (authState === paymentTypes/* FastlaneAuthStatusOPC */.P.SUCCEEDED) {
1830            var _fastlaneConfigData_fastlaneCardsConfig, _fastlaneConfigData_fastlaneCardsConfig1;
1831            return {
1832                ...baseConfig,
1833                ...(_fastlaneConfigData_fastlaneCardsConfig = fastlaneConfigData.fastlaneCardsConfig) === null || _fastlaneConfigData_fastlaneCardsConfig === void 0 ? void 0 : _fastlaneConfigData_fastlaneCardsConfig.configuration,
1834                type: ((_fastlaneConfigData_fastlaneCardsConfig1 = fastlaneConfigData.fastlaneCardsConfig) === null || _fastlaneConfigData_fastlaneCardsConfig1 === void 0 ? void 0 : _fastlaneConfigData_fastlaneCardsConfig1.paymentType) || "fastlane"
1835            };
1836        }
1837        if (authState === paymentTypes/* FastlaneAuthStatusOPC */.P.NOT_FOUND) {
1838            var _fastlaneConfigData_fastlaneCardsConfig2;
1839            return {
1840                ...(_fastlaneConfigData_fastlaneCardsConfig2 = fastlaneConfigData.fastlaneCardsConfig) === null || _fastlaneConfigData_fastlaneCardsConfig2 === void 0 ? void 0 : _fastlaneConfigData_fastlaneCardsConfig2.configuration
1841            };
1842        }
1843        return baseConfig;
1844    }, [
1845        fastlaneConfigData,
1846        authState,
1847        currency,
1848        country
1849    ]);
1850    const getFastlanePaymentFormData = (0,react.useCallback)(()=>{
1851        if (authState !== paymentTypes/* FastlaneAuthStatusOPC */.P.SUCCEEDED || !(fastlaneConfigData === null || fastlaneConfigData === void 0 ? void 0 : fastlaneConfigData.fastlaneCardsConfig)) {
1852            return null;
1853        }
1854        const configuration = fastlaneConfigData.fastlaneCardsConfig.configuration;
1855        const fastlaneSessionId = configuration === null || configuration === void 0 ? void 0 : configuration.fastlaneSessionId;
1856        const tokenId = configuration === null || configuration === void 0 ? void 0 : configuration.tokenId;
1857        if (!fastlaneSessionId || !tokenId) {
1858            return null;
1859        }
1860        return {
1861            paymentMethod: {
1862                type: fastlaneConfigData.fastlaneCardsConfig.paymentType || "fastlane",
1863                fastlaneData: encodeFastlaneData({
1864                    fastlaneSessionId,
1865                    tokenId
1866                })
1867            }
1868        };
1869    }, [
1870        authState,
1871        fastlaneConfigData
1872    ]);
1873    return {
1874        isFastlaneSucceeded,
1875        isFastlaneNotFound,
1876        fastlaneConfigData,
1877        getFastlaneAdyenConfig,
1878        getFastlanePaymentFormData
1879    };
1880};
1881
1882;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/fastlanePayment/index.ts
1883
1884
1885
1886// EXTERNAL MODULE: ./src/components/one-page-checkout/constants/payment.ts
1887var payment = __webpack_require__(11166);
1888;// CONCATENATED MODULE: ./src/components/one-page-checkout/utils/paymentUtils.ts
1889
1890const checkIfIsPaymentProcessing = (paymentState)=>paymentState === payment/* PaymentState */.K.PENDING || paymentState === payment/* PaymentState */.K.PAYMENT_SUBMITTED;
1891
1892;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/useIsPaymentDisabled.ts
1893
1894
1895
1896
1897
1898const useIsPaymentDisabled = ()=>{
1899    var _cart_lineItems;
1900    const { cart, membershipItemInTheCart, onlyMembershipItemInTheCart, isUpdatingQty } = (0,context.useCartContext)();
1901    const { selectedAddressId, selectedWindowId, membershipTermsAccepted, savedPickupDetail
1901s, fulfillmentType } = (0,one_page_checkout/* useGetOpcFormValues */.BC)();
1902    const { paymentState, isCheckoutReady } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
1903    const isDeliveryAddressDetailsValid = fulfillmentType === "delivery" && Boolean(selectedAddressId);
1904    const isPickupAddressDetailsValid = fulfillmentType === "pickup" && !!(savedPickupDetails === null || savedPickupDetails === void 0 ? void 0 : savedPickupDetails.firstName);
1905    const isAddressDetailsValid = isDeliveryAddressDetailsValid || isPickupAddressDetailsValid;
1906    const hasDeliveryWindow = Boolean(selectedWindowId);
1907    const hasCartAmount = (cart === null || cart === void 0 ? void 0 : (_cart_lineItems = cart.lineItems) === null || _cart_lineItems === void 0 ? void 0 : _cart_lineItems.length) > 0 && (cart === null || cart === void 0 ? void 0 : cart.totalAmount) > 0;
1908    const isPaymentProcessing = checkIfIsPaymentProcessing(paymentState);
1909    const isMembershipTermsRequired = membershipItemInTheCart && !membershipTermsAccepted;
1910    const commonDisableConditions = !hasCartAmount || isPaymentProcessing || !isCheckoutReady || isUpdatingQty || isMembershipTermsRequired;
1911    const isPaymentDisabled = onlyMembershipItemInTheCart ? commonDisableConditions : commonDisableConditions || !isAddressDetailsValid || !hasDeliveryWindow;
1912    return {
1913        isPaymentDisabled
1914    };
1915};
1916
1917;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/cardPayment/useIsPlaceOrderBtnDisabled.ts
1918
1919
1920
1921
1922
1923const useIsPlaceOrderBtnDisabled = ()=>{
1924    const { isPaymentDisabled } = useIsPaymentDisabled();
1925    const { isBillingAddressError } = (0,one_page_checkout/* useGetOpcFormValues */.BC)();
1926    const { isValidPaymentMethod, giftCard } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
1927    const isGiftCardSufficient = (giftCard === null || giftCard === void 0 ? void 0 : giftCard.state) === constants/* GIFT_CARD_STATE */.C.SUFFICIENT && !!(giftCard === null || giftCard === void 0 ? void 0 : giftCard.encryptedData);
1928    const isPlaceOrderButtonDisabled = isPaymentDisabled || isBillingAddressError || !isValidPaymentMethod && !isGiftCardSufficient;
1929    return {
1930        isPlaceOrderButtonDisabled
1931    };
1932};
1933
1934;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/cardPayment/useCardPayment.ts
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951const currency = locale.CURRENCY_CODE;
1952const useCardPayment = ()=>{
1953    var _paymentMethodsResponse_paymentMethods;
1954    const dispatch = (0,hooks/* useAppDispatch */.T)();
1955    const router = (0,next_router.useRouter)();
1956    const cardContainerRef = (0,react.useRef)(null);
1957    const cardInstanceRef = (0,react.useRef)(null);
1958    const checkoutRef = (0,react.useRef)(null);
1959    const fastlaneConfigData = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutFastlaneConfig */.EA);
1960    const hasInitializedStoredRef = (0,react.useRef)(false);
1961    const lastMountedKeyRef = (0,react.useRef)(null);
1962    const prevHasStoredCardsRef = (0,react.useRef)(false);
1963    const [error, setError] = (0,react.useState)(null);
1964    const [selectedOption, setSelectedOption] = (0,react.useState)(paymentContants/* NEW_CARD_OPTION_VALUE */.Lm);
1965    const [isRemoving, setIsRemoving] = (0,react.useState)(false);
1966    const [cardIdToRemove, setCardIdToRemove] = (0,react.useState)(null);
1967    const { globalConfig, cardConfig, storedCardConfig, paymentState } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
1968    const { paymentMethodsResponse } = globalConfig;
1969    const { isLoggedIn } = (0,useCustomer/* useCustomer */.O)();
1970    const amount = (0,hooks/* useAppSelector */.C)(cartSlice/* selectOPCPaymentAmount */.ZJ);
1971    const { isGuestFormSubmitted } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
1972    const shouldShowCheckoutForm = isLoggedIn || isGuestFormSubmitted;
1973    const { isFastlaneSucceeded, isFastlaneNotFound, getFastlaneAdye
1973nConfig, getFastlanePaymentFormData } = useFastlanePayment();
1974    const storedPaymentMethods = (0,react.useMemo)(()=>{
1975        var _paymentMethodsResponse_storedPaymentMethods;
1976        return (_paymentMethodsResponse_storedPaymentMethods = paymentMethodsResponse === null || paymentMethodsResponse === void 0 ? void 0 : paymentMethodsResponse.storedPaymentMethods) !== null && _paymentMethodsResponse_storedPaymentMethods !== void 0 ? _paymentMethodsResponse_storedPaymentMethods : [];
1977    }, [
1978        paymentMethodsResponse === null || paymentMethodsResponse === void 0 ? void 0 : paymentMethodsResponse.storedPaymentMethods
1979    ]);
1980    const hasStoredCards = storedPaymentMethods.length > 0;
1981    const fastlaneComponentConfig = (0,react.useMemo)(()=>getFastlaneAdyenConfig(amount), [
1982        getFastlaneAdyenConfig,
1983        amount
1984    ]);
1985    const hasFastlaneOption = !hasStoredCards && isFastlaneSucceeded && !!fastlaneComponentConfig;
1986    const handlePaymentFormChange = (0,react.useCallback)((state)=>{
1987        var _state_data, _data_paymentMethod;
1988        const paymentMethod = ((_state_data = state.data) === null || _state_data === void 0 ? void 0 : _state_data.paymentMethod) || state.paymentMethod;
1989        if (!paymentMethod) return;
1990        var _state_data1;
1991        let data = (_state_data1 = state.data) !== null && _state_data1 !== void 0 ? _state_data1 : {
1992            paymentMethod
1993        };
1994        const isCardPayment = (data === null || data === void 0 ? void 0 : (_data_paymentMethod = data.paymentMethod) === null || _data_paymentMethod === void 0 ? void 0 : _data_paymentMethod.type) === "scheme";
1995        const hasEmail = !!(fastlaneConfigData === null || fastlaneConfigData === void 0 ? void 0 : fastlaneConfigData.guestUserEmail);
1996        if (isFastlaneNotFound && isCardPayment && state.isValid && hasEmail) {
1997            // Need to use any because there is a bug in the Adyen wen sdk library, the library does not recognise `shopperEmail` attribute
1998            data.shopperEmail = fastlaneConfigData.guestUserEmail;
1999        }
2000        dispatch((0,onePageCheckoutPaymentSlice/* setPaymentFormData */.Lk)(data));
2001        dispatch((0,onePageCheckoutPaymentSlice/* setIsValidPaymentMethod */.E7)(state.isValid));
2002        if (state.isValid) {
2003            setError(null);
2004        }
2005    }, [
2006        dispatch,
2007        fastlaneConfigData.guestUserEmail,
2008        isFastlaneNotFound
2009    ]);
2010    const clearSelection = (0,react.useCallback)(()=>{
2011        dispatch((0,onePageCheckoutPaymentSlice/* setPaymentFormData */.Lk)(null));
2012        dispatch((0,onePageCheckoutPaymentSlice/* setIsValidPaymentMethod */.E7)(false));
2013    }, [
2014        dispatch
2015    ]);
2016    const applyFastlaneSelection = (0,react.useCallback)(()=>{
2017        const fastlanePaymentFormData = getFastlanePaymentFormData();
2018        if (!fastlanePaymentFormData) {
2019            clearSelection();
2020            return;
2021        }
2022        dispatch((0,onePageCheckoutPaymentSlice/* setPaymentFormData */.Lk)(fastlanePaymentFormData));
2023        dispatch((0,onePageCheckoutPaymentSlice/* setIsValidPaymentMethod */.E7)(true));
2024        setError(null);
2025    }, [
2026        clearSelection,
2027        dispatch,
2028        getFastlanePaymentFormData
2029    ]);
2030    const handleSelectOption = (0,react.useCallback)((id)=>{
2031        setSelectedOption(id);
2032        clearSelection();
2033        setCardIdToRemove(null);
2034    }, [
2035        clearSelection
2036    ]);
2037    const unmountCard = (0,react.useCallback)(()=>{
2038        try {
2039            var _cardInstanceRef_current;
2040            (_cardInstanceRef_current = cardInstanceRef.current) === null || _cardInstanceRef_current === void 0 ? void 0 : _cardInstanceRef_current.unmount();
2041        } catch (err) {
2042            console.warn("Adyen Card unmount failed:", err);
2043        }
2044        cardInstanceRef.current = null;
2045        checkoutRef.current = null;
2046    }, []);
2047    const mountCard = (0,react.useCallback)(async function(storedCard) {
2048        let useFastlane = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
2049        if (!cardContainerRef.current || !globalConfig.clientKey || !shouldShowCheckoutForm) {
2050            return;
2051        }
2052        unmountCard();
2053        try {
2054            if (!checkoutRef.current) {
2055                checkoutRef.current = await (0,AdyenCheckout/* AdyenCheckout */.w)({
2056                    ...globalConfig,
2057                    amount: {
2058                        value: amount,
2059                        currency
2060                    },
2061                    onError: (err)=>{
2062                        setError(err.message);
2063                        dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(constants/* PaymentState */.K.ERROR));
2064                    }
2065                });
2066            }
2067            if (useFastlane) {
2068                if (!fastlaneComponentConfig) {
2069                    clearSelection();
2070                    return;
2071                }
2072                const fastlaneComponent = new Fastlane/* default */.Z(checkoutRef.current, {
2073                    ...fastlaneComponentConfig,
2074                    showPayButton: false,
2075                    onChange: handlePaymentFormChange
2076                });
2077                fastlaneComponent.mount(cardContainerRef.current);
2078                cardInstanceRef.current = fastlaneComponent;
2079                applyFastlaneSelection();
2080                return;
2081            }
2082            const notFoundConfig = isFastlaneNotFound && !storedCard ? getFastlaneAdyenConfig(amount) : {};
2083            const config = {
2084                onChange: handlePaymentFormChange,
2085                ...storedCard ? {
2086                    ...storedCard,
2087                    ...storedCardConfig
2088                } : {
2089                    ...cardConfig,
2090                    ...notFoundConfig,
2091                    enableStoreDetails: isLoggedIn
2092                }
2093            };
2094            const cardComponent = new Card/* CardElement */.N(checkoutRef.current, config);
2095            cardComponent.mount(cardContainerRef.current);
2096            cardInstanceRef.current = cardComponent;
2097        } catch (err) {
2098            console.error("Failed to mount Adyen Card:", err);
2099            setError(err instanceof Error ? err.message : "Failed to load payment form.");
2100            dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(constants/* PaymentState */.K.ERROR));
2101        }
2102    }, [
2103        amount,
2104        applyFastlaneSelection,
2105        cardConfig,
2106        clearSelection,
2107        dispatch,
2108        fastlaneComponentConfig,
2109        getFastlaneAdyenConfig,
2110        globalConfig,
2111        handlePaymentFormChange,
2112        isFastlaneNotFound,
2113        isLoggedIn,
2114        shouldShowCheckoutForm,
2115        storedCardConfig,
2116        unmountCard
2117    ]);
2118    (0,react.useEffect)(function useMountSelectedPaymentMethodEffect() {
2119        var _paymentMethodsResponse_paymentMethods;
2120        if (!(paymentMethodsResponse === null || paymentMethodsResponse === void 0 ? void 0 : (_paymentMethodsResponse_paymentMethods = paymentMethodsResponse.paymentMethods) === null || _paymentMethodsResponse_paymentMethods === void 0 ? void 0 : _paymentMethodsResponse_paymentMethods.length) || !cardContainerRef.current) {
2121            return;
2122        }
2123        if (!hasInitializedStoredRef.current) {
2124            const defaultOption = storedPaymentMethods.length > 0 && isLoggedIn ? getStoredPaymentMethodId(storedPaymentMethods[0]) : hasFastlaneOption ? paymentContants/* FASTLANE_OPTION_VALUE */.Ms : paymentContants/* NEW_CARD_OPTION_VALUE */.Lm;
2125            hasInitializedStoredRef.current = true;
2126            if (selectedOption !== defaultOption) {
2127                setSelectedOption(defaultOption);
2128                return;
2129            }
2130        }
2131        if (!hasFastlaneOption && selectedOption === paymentContants/* FASTLANE_OPTION_VALUE */.Ms) {
2132            setSelectedOption(paymentContants/* NEW_CARD_OPTION_VALUE */.Lm);
2133            return;
2134        }
2135        if (prevHasStoredCardsRef.current !== hasStoredCards) {
2136            lastMountedKeyRef.current = null;
2137            prevHasStoredCardsRef.current = hasStoredCards;
2138        }
2139        var _storedPaymentMethods_find;
2140        const storedCard = selectedOption === paymentContants/* NEW_CARD_OPTION_VALUE */.Lm || selectedOption === paymentContants/* FASTLANE_OPTION_VALUE */.Ms ? null : (_storedPaymentMethods_find = storedPaymentMethods.find((card)=>getStoredPaymentMethodId(card) === selectedOption)) !== null && _storedPaymentMethods_find !== void 0 ? _storedPaymentMethods_find : null;
2141        const useFastlane = selectedOption === paymentContants/* FASTLANE_OPTION_VALUE */.Ms && !storedCard && hasFastlaneOption;
2142        var _storedCard_id;
2143        const mountedKey = useFastlane ? "fastlane-".concat(amount) : selectedOption === paymentContants/* NEW_CARD_OPTION_VALUE */.Lm ? "new-".concat(amount) : "".concat((_storedCard_id = storedCard === null || storedCard === void 0 ? void 0 : storedCard.id) !== null && _storedCard_id !== void 0 ? _storedCard_id : selectedOption, "-").concat(amount);
2144        if (lastMountedKeyRef.current === mountedKey) {
2145            return;
2146        }
2147        lastMountedKeyRef.current = mountedKey;
2148        mountCard(storedCard, useFastlane);
2149    }, [
2150        amount,
2151        hasFastlaneOption,
2152        hasStoredCards,
2153        isLoggedIn,
2154        mountCard,
2155        paymentMethodsResponse,
2156        selectedOption,
2157        storedPaymentMethods
2158    ]);
2159    (0,react.useEffect)(function useCleanupOnUnmountEffect() {
2160        return ()=>{
2161            unmountCard();
2162            checkoutRef.current = null;
2163            if (!router.asPath.includes("one-page-checkout")) {
2164                dispatch((0,onePageCheckoutPaymentSlice/* clearPaymentSession */.bn)());
2165            }
2166        };
2167    }, [
2168        dispatch,
2169        router.asPath,
2170        unmountCard
2171    ]);
2172    (0,react.useEffect)(function useClearFastlanePostSuccessEffect() {
2173        if (paymentState === constants/* PaymentState */.K.SUCCESS) {
2174            dispatch((0,onePageCheckoutPaymentSlice/* clearFastlaneConfig */.RU)());
2175        }
2176    }, [
2177        dispatch,
2178        paymentState
2179    ]);
2180    const isLoading = !(paymentMethodsResponse === null || paymentMethodsResponse === void 0 ? void 0 : (_paymentMethodsResponse_paymentMethods = paymentMethodsResponse.paymentMethods) === null || _paymentMethodsResponse_paymentMethods === void 0 ? void 0 : _paymentMethodsResponse_paymentMethods.length);
2181    const { handleRemoveClick, handleConfirmRemove, handleCancelRemove } = useSavedCardRemove({
2182        isRemoving,
2183        setCardIdToRemove,
2184        cardIdToRemove,
2185        setIsRemoving,
2186        selectedOption,
2187        storedPaymentMethods,
2188        setSelectedOption,
2189        clearSelection
2190    });
2191    const { isPlaceOrderButtonDisabled } = useIsPlaceOrderBtnDisabled();
2192    const { submitCardOrder } = useSubmitCardOrder();
2193    return {
2194        cardContainerRef,
2195        storedPaymentMethods,
2196        selectedOption,
2197        error,
2198        isRemoving,
2199        cardIdToRemove,
2200        hasStoredCards,
2201        hasFastlaneOption,
2202        isLoading,
2203        handleSelectOption,
2204        setCardIdToRemove,
2205        setIsRemoving,
2206        setSelectedOption,
2207        clearSelection,
2208        handleRemoveClick,
2209        handleConfirmRemove,
2210        handleCancelRemove,
2211        isPlaceOrderButtonDisabled,
2212        submitCardOrder
2213    };
2214};
2215
2216;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/cardPayment/index.ts
2217
2218
2219
2220// EXTERNAL MODULE: ./node_modules/@adyen/adyen-web/dist/es/components/ApplePay/ApplePay.js + 9 modules
2221var ApplePay = __webpack_require__(364071);
2222// EXTERNAL MODULE: ./src/components/checkout/payment/paymentMethodConstants.ts
2223var paymentMethodConstants = __webpack_require__(543467);
2224// EXTERNAL MODULE: ./src/lib/store/paymentSlice.ts
2225var paymentSlice = __webpack_require__(680811);
2226// EXTERNAL MODULE: ./src/lib/events.ts
2227var events = __webpack_require__(866067);
2228// EXTERNAL MODULE: ./src/lib/store/orderSubmit.slice.ts
2229var orderSubmit_slice = __webpack_require__(564449);
2230// EXTERNAL MODULE: ./src/lib/types/adyen-giftcard.types.ts
2231var adyen_giftcard_types = __webpack_require__(939549);
2232// EXTERNAL MODULE: ./src/lib/utils/reduxCommon.ts
2233var reduxCommon = __webpack_require__(675121);
2234;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/digitalWalletPayments/utils/giftCardPreAuth.ts
2235
2236
2237
2238const handleGiftCardPreAuth = async function() {
2239    let paymentAuth = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "";
2240    const { giftCard } = (0,reduxCommon/* getReduxStore */.vI)().onePageCheckoutPayment;
2241    if ((giftCard === null || giftCard === void 0 ? void 0 : giftCard.state) === adyen_giftcard_types/* GiftCardState */.s.INSUFFICIENT && (giftCard === null || giftCard === void 0 ? void 0 : giftCard.encryptedData)) {
2242        await (0,checkoutApi/* submitOrderGC */.FL)({
2243            paymentData: JSON.stringify(giftCard.encryptedData),
2244            tipReceived: 0,
2245            paymentAuth
2246        });
2247        return {
2248            adyenOrderResponse: giftCard.adyenOrderResponse
2249        };
2250    }
2251    return {};
2252};
2253
2254;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/digitalWalletPayments/utils/applePayUtils.ts
2255
2256
2257
2258
2259
2260
2261
2262
2263const { currency: applePayUtils_currency } = locale.CURRENT_LOCALE;
2264const handleServerResponse = (res, actions, dispatch, push)=>{
2265    if (res.action) {
2266        const parsed = JSON.parse(res.action);
2267        if (parsed.action) {
2268            actions.resolve({
2269                action: parsed.action
2270            });
2271            return;
2272        }
2273    }
2274    if (paymentContants/* Order_Accepted_Order_States */.Xv.includes(res.orderstate)) {
2275        actions.resolve({
2276            resultCode: res.orderstate
2277        });
2278        dispatch((0,orderSubmit_slice/* setOrderSubmitResponse */.VN)(res));
2279        push(paymentContants/* Confirmation_Page_Route */.cD);
2280    } else {
2281        actions.reject();
2282    }
2283};
2284const createApplePayHandlers = (dispatch, cart, push, mandatoryChecksBeforeSubmitOrder)=>{
2285    const onAdditionalDetails = async (state, _component, actions)=>{
2286        try {
2287            var _cart_driverTip, _cart_paymentAuth;
2288            const payload = {
2289                paymentData: JSON.stringify(state.data),
2290                tipReceived: (_cart_driverTip = cart === null || cart === void 0 ? void 0 : cart.driverTip) !== null && _cart_driverTip !== void 0 ? _cart_driverTip : 0,
2291                paymentAuth: (_cart_paymentAuth = cart === null || cart === void 0 ? void 0 : cart.paymentAuth) !== null && _cart_paymentAuth !== void 0 ? _cart_paymentAuth : ""
2292            };
2293            const response = await (0,checkoutApi/* submitAdditionalDetails */.b6)(payload);
2294            handleServerResponse(response.data, actions, dispatch, push);
2295        } catch (e) {
2296            actions.reject();
2297            dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(constants/* PaymentState */.K.ERROR));
2298        }
2299    };
2300    const onError = (err)=>{
2301        if (err.name === paymentContants/* Paypal_Error_Name_Cancel */.JG) return;
2302        dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(constants/* PaymentState */.K.ERROR));
2303    };
2304    const onSubmit = async (state, _component, actions)=>{
2305        try {
2306            await mandatoryChecksBeforeSubmitOrder(false);
2307            var _cart_paymentAuth;
2308            const { adyenOrderResponse } = await handleGiftCardPreAuth((_cart_paymentAuth = cart === null || cart === void 0 ? void 0 : cart.paymentAuth) !== null && _cart_paymentAuth !== void 0 ? _cart_paymentAuth : "");
2309            const paymentData = {
2310                ...state.data,
2311                ...(adyenOrderResponse === null || adyenOrderResponse === void 0 ? void 0 : adyenOrderResponse.orderData) && {
2312                    order: adyenOrderResponse
2313                }
2314            };
2315            var _cart_driverTip, _cart_paymentAuth1;
2316            const payload = {
2317                paymentData: JSON.stringify(paymentData),
2318                tipReceived: (_cart_driverTip = cart === null || cart === void 0 ? void 0 : cart.driverTip) !== null && _cart_driverTip !== void 0 ? _cart_driverTip : 0,
2319                paymentAuth: (_cart_paymentAuth1 = cart === null || cart === void 0 ? void 0 : cart.paymentAuth) !== null && _cart_paymentAuth1 !== void 0 ? _cart_paymentAuth1 : ""
2320            };
2321            const response = await (0,checkoutApi/* submitOrder */.pm)(payload);
2322            handleServerResponse(response.data, actions, dispatch, push);
2323        } catch (e) {
2324            actions.reject();
2325            dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(constants/* PaymentState */.K.ERROR));
2326            events/* default */.Z.emit(events/* OrderEventType */.v.ORDER_SUBMIT_FAILED);
2327        }
2328    };
2329    // Fires before onSubmit — must resolve/reject to continue the payment flow
2330    const onAuthorized = (_data, actions)=>{
2331        actions.resolve();
2332    };
2333    return {
2334        onAdditionalDetails,
2335        onError,
2336        onSubmit,
2337        onAuthorized
2338    };
2339};
2340const getApplePayConfig = (globalConfig, amount, dispatch, cart, push, applePayMethod, mandatoryChecksBeforeSubmitOrder)=>{
2341    const { onAdditionalDetails, onError, onSubmit, onAuthorized } = createApplePayHandlers(dispatch, cart, push, mandatoryChecksBeforeSubmitOrder);
2342    return {
2343        checkoutConfig: {
2344            ...globalConfig,
2345            amount: {
2346                value: amount,
2347                currency: applePayUtils_currency
2348            },
2349            onAdditionalDetails
2350        },
2351        applePayConfig: {
2352            showPayButton: false,
2353            totalPriceLabel: "Wild Fork Foods",
2354            onAuthorized,
2355            onSubmit,
2356            onError,
2357            ...applePayMethod
2358        }
2359    };
2360};
2361
2362;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/digitalWalletPayments/useApplePay.ts
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373const useApplePay = ()=>{
2374    const dispatch = (0,hooks/* useAppDispatch */.T)();
2375    const hiddenContainerRef = (0,react.useRef)(null);
2376    const applePayInstanceRef = (0,react.useRef)(null);
2377    const checkoutRef = (0,react.useRef)(null);
2378    const lastMountedAmountRef = (0,react.useRef)(null);
2379    const cart = (0,hooks/* useAppSelector */.C)(cartSlice/* cartSliceSelector */.Ew);
2380    const { globalConfig } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
2381    const { paymentMethodsResponse } = globalConfig;
2382    const amount = (0,hooks/* useAppSelector */.C)(cartSlice/* selectOPCPaymentAmount */.ZJ);
2383    const { push } = (0,next_router.useRouter)();
2384    const { mandatoryChecksBeforeSubmitOrder } = useSubmitCardOrder();
2385    const mountApplePay = (0,react.useCallback)(async ()=>{
2386        dispatch((0,onePageCheckoutPaymentSlice/* setIsApplePayReady */.RB)(false));
2387        try {
2388            var _applePayInstanceRef_current;
2389            (_applePayInstanceRef_current = applePayInstanceRef.current) === null || _applePayInstanceRef_current === void 0 ? void 0 : _applePayInstanceRef_current.unmount();
2390        } catch (e) {}
2391        applePayInstanceRef.current = null;
2392        checkoutRef.current = null;
2393        const applePayMethod = paymentMethodsResponse.paymentMethods.find((m)=>m.type === paymentMethodConstants/* PAYMENT_METHODS */.LM.APPLE_PAY);
2394        const { checkoutConfig, applePayConfig } = getApplePayConfig(globalConfig, amount, dispatch, cart, push, applePayMethod, mandatoryChecksBeforeSubmitOrder);
2395        checkoutRef.current = await (0,AdyenCheckout/* AdyenCheckout */.w)(checkoutConfig);
2396        const instance = new ApplePay/* default */.Z(checkoutRef.current, applePayConfig);
2397        try {
2398            await instance.isAvailable();
2399            dispatch((0,onePageCheckoutPaymentSlice/* setIsApplePayAvailable */.Dd)(true));
2400        } catch (e) {
2401            // Device/browser does not support Apple Pay — button stays disabled
2402            dispatch((0,onePageCheckoutPaymentSlice/* setIsApplePayAvailable */.Dd)(false));
2403            return;
2404        }
2405        // Mount into a self-managed hidden container so the SDK can complete
2406        // initialization and handle payment callbacks, without coupling the
2407        // mount target to any specific layout component.
2408        if (!hiddenContainerRef.current) {
2409            const container = document.createElement("div");
2410            container.style.display = "none";
2411            document.body.appendChild(container);
2412            hiddenContainerRef.current = container;
2413        }
2414        instance.mount(hiddenContainerRef.current);
2415        applePayInstanceRef.current = instance;
2416        lastMountedAmountRef.current = amount;
2417        dispatch((0,onePageCheckoutPaymentSlice/* setIsApplePayReady */.RB)(true));
2418    }, [
2419        amount,
2420        cart,
2421        dispatch,
2422        globalConfig,
2423        mandatoryChecksBeforeSubmitOrder,
2424        paymentMethodsResponse.paymentMethods,
2425        push
2426    ]);
2427    const submitApplePay = (0,react.useCallback)(()=>{
2428        try {
2429            var _applePayInstanceRef_current;
2430            (_applePayInstanceRef_current = applePayInstanceRef.current) === null || _applePayInstanceRef_current === void 0 ? void 0 : _applePayInstanceRef_current.submit();
2431        } catch (e) {}
2432    }, []);
2433    // Eagerly mount when payment methods and clientKey are available
2434    (0,react.useEffect)(()=>{
2435        if (!paymentMethodsResponse.paymentMethods.length) return;
2436        if (!globalConfig.clientKey) return;
2437        if (lastMountedAmountRef.current === amount) return;
2438        mountApplePay().catch(()=>{
2439            dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(paymentSlice/* PaymentState */.Ky.ERROR));
2440        });
2441    }, [
2442        amount,
2443        dispatch,
2444        globalConfig.clientKey,
2445        mountApplePay,
2446        paymentMethodsResponse.paymentMethods.length
2447    ]);
2448    // Re-mount on amount change
2449    (0,react.useEffect)(()=>{
2450        if (!lastMountedAmountRef.current) return;
2451        if (lastMountedAmountRef.current === amount) return;
2452        mountApplePay().catch(()=>{
2453            dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(paymentSlice/* PaymentState */.Ky.ERROR));
2454        });
2455    }, [
2456        amount,
2457        dispatch,
2458        mountApplePay
2459    ]);
2460    // Cleanup on unmount
2461    (0,react.useEffect)(()=>{
2462        return ()=>{
2463            try {
2464                var _applePayInstanceRef_current;
2465                (_applePayInstanceRef_current = applePayInstanceRef.current) === null || _applePayInstanceRef_current === void 0 ? void 0 : _applePayInstanceRef_current.unmount();
2466            } catch (e) {}
2467            applePayInstanceRef.current = null;
2468            checkoutRef.current = null;
2469            if (hiddenContainerRef.current) {
2470                document.body.removeChild(hiddenContainerRef.current);
2471                hiddenContainerRef.current = null;
2472            }
2473        };
2474    }, []);
2475    return {
2476        submitApplePay
2477    };
2478};
2479
2480// EXTERNAL MODULE: ./node_modules/@adyen/adyen-web/dist/es/components/GooglePay/GooglePay.js + 6 modules
2481var GooglePay = __webpack_require__(739536);
2482// EXTERNAL MODULE: ./src/lib/store/uiStateSlice.ts
2483var uiStateSlice = __webpack_require__(647771);
2484;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/digitalWalletPayments/utils/googlePayUtils.ts
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494// import { convertToDollar } from '@Lib/utils/currency';
2495const { currency: googlePayUtils_currency } = locale.CURRENT_LOCALE;
2496const googlePayUtils_handleServerResponse = (res, actions, dispatch, push)=>{
2497    if (paymentContants/* Order_Accepted_Order_States */.Xv.includes(res.orderstate)) {
2498        actions.resolve({
2499            resultCode: res.orderstate
2500        });
2501        dispatch((0,orderSubmit_slice/* setOrderSubmitResponse */.VN)(res));
2502        push(paymentContants/* Confirmation_Page_Route */.cD);
2503    } else {
2504        actions.reject();
2505    }
2506};
2507const createGooglePayHandlers = (dispatch, cart, push, mandatoryChecksBeforeSubmitOrder)=>{
2508    const onError = (err)=>{
2509        if (err.name === paymentContants/* Paypal_Error_Name_Cancel */.JG) return;
2510        dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(constants/* PaymentState */.K.ERROR));
2511    };
2512    const onSubmit = async (state, _component, actions)=>{
2513        try {
2514            await mandatoryChecksBeforeSubmitOrder(false);
2515            var _cart_paymentAuth;
2516            const { adyenOrderResponse } = await handleGiftCardPreAuth((_cart_paymentAuth = cart === null || cart === void 0 ? void 0 : cart.paymentAuth) !== null && _cart_paymentAuth !== void 0 ? _cart_paymentAuth : "");
2517            const paymentData = {
2518                ...state.data,
2519                ...(adyenOrderResponse === null || adyenOrderResponse === void 0 ? void 0 : adyenOrderResponse.orderData) && {
2520                    order: adyenOrderResponse
2521                }
2522            };
2523            var _cart_driverTip, _cart_paymentAuth1;
2524            const payload = {
2525                paymentData: JSON.stringify(paymentData),
2526                tipReceived: (_cart_driverTip = cart === null || cart === void 0 ? void 0 : cart.driverTip) !== null && _cart_driverTip !== void 0 ? _cart_driverTip : 0,
2527                paymentAuth: (_cart_paymentAuth1 = cart === null || cart === void 0 ? void 0 : cart.paymentAuth) !== null && _cart_paymentAuth1 !== void 0 ? _cart_paymentAuth1 : ""
2528            };
2529            const response = await (0,checkoutApi/* submitOrder */.pm)(payload);
2530            googlePayUtils_handleServerResponse(response.data, actions, dispatch, push);
2531        } catch (e) {
2532            actions.reject();
2533            dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(constants/* PaymentState */.K.ERROR));
2534            events/* default */.Z.emit(events/* OrderEventType */.v.ORDER_SUBMIT_FAILED);
2535        }
2536    };
2537    // Fires before onSubmit — must resolve/reject to continue the payment flow
2538    const onAuthorized = (_data, actions)=>{
2539        actions.resolve();
2540    };
2541    return {
2542        onError,
2543        onSubmit,
2544        onAuthorized
2545    };
2546};
2547const getGooglePayConfig = (globalConfig, amount, dispatch, cart, push, googlePayMethod, mandatoryChecksBeforeSubmitOrder)=>{
2548    const { onError, onSubmit, onAuthorized } = createGooglePayHandlers(dispatch, cart, push, mandatoryChecksBeforeSubmitOrder);
2549    return {
2550        checkoutConfig: {
2551            ...globalConfig,
2552            amount: {
2553                value: amount,
2554                currency: googlePayUtils_currency
2555            }
2556        },
2557        googlePayConfig: {
2558            type: paymentMethodConstants/* PAYMENT_METHODS */.LM.GOOGLE_PAY,
2559            showPayButton: false,
2560            buttonType: "pay",
2561            onAuthorized,
2562            onSubmit,
2563            onError,
2564            ...googlePayMethod
2565        }
2566    };
2567};
2568
2569;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/digitalWalletPayments/useGooglePay.ts
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581const useGooglePay = ()=>{
2582    const dispatch = (0,hooks/* useAppDispatch */.T)();
2583    const hiddenContainerRef = (0,react.useRef)(null);
2584    const googlePayInstanceRef = (0,react.useRef)(null);
2585    const checkoutRef = (0,react.useRef)(null);
2586    const lastMountedAmountRef = (0,react.useRef)(null);
2587    const cart = (0,hooks/* useAppSelector */.C)(cartSlice/* cartSliceSelector */.Ew);
2588    const { globalConfig } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
2589    const { paymentMethodsResponse } = globalConfig;
2590    const amount = (0,hooks/* useAppSelector */.C)(cartSlice/* selectOPCPaymentAmount */.ZJ);
2591    const { push } = (0,next_router.useRouter)();
2592    const isMobileWebview = (0,hooks/* useAppSelector */.C)(uiStateSlice/* isMobileViewFromQueryParamOrCookieSelector */.$k);
2593    const { mandatoryChecksBeforeSubmitOrder } = useSubmitCardOrder();
2594    const mountGooglePay = (0,react.useCallback)(async ()=>{
2595        // Google Pay is not shown in native app webview
2596        if (isMobileWebview) return;
2597        dispatch((0,onePageCheckoutPaymentSlice/* setIsGooglePayReady */.Eg)(false));
2598        try {
2599            var _googlePayInstanceRef_current;
2600            (_googlePayInstanceRef_current = googlePayInstanceRef.current) === null || _googlePayInstanceRef_current === void 0 ? void 0 : _googlePayInstanceRef_current.unmount();
2601        } catch (e) {}
2602        googlePayInstanceRef.current = null;
2603        checkoutRef.current = null;
2604        const googlePayMethod = paymentMethodsResponse.paymentMethods.find((m)=>m.type === paymentMethodConstants/* PAYMENT_METHODS */.LM.GOOGLE_PAY);
2605        const { checkoutConfig, googlePayConfig } = getGooglePayConfig(globalConfig, amount, dispatch, cart, push, googlePayMethod, mandatoryChecksBeforeSubmitOrder);
2606        checkoutRef.current = await (0,AdyenCheckout/* AdyenCheckout */.w)(checkoutConfig);
2607        const instance = new GooglePay/* default */.Z(checkoutRef.current, googlePayConfig);
2608        try {
2609            await instance.isAvailable();
2610        } catch (e) {
2611            // Device/browser does not support Google Pay — button stays disabled
2612            return;
2613        }
2614        // Mount into a self-managed hidden container so the SDK can complete
2615        // initialization and handle payment callbacks, without coupling the
2616        // mount target to any specific layout component.
2617        if (!hiddenContainerRef.current) {
2618            const container = document.createElement("div");
2619            container.style.display = "none";
2620            document.body.appendChild(container);
2621            hiddenContainerRef.current = container;
2622        }
2623        instance.mount(hiddenContainerRef.current);
2624        googlePayInstanceRef.current = instance;
2625        lastMountedAmountRef.current = amount;
2626        dispatch((0,onePageCheckoutPaymentSlice/* setIsGooglePayReady */.Eg)(true));
2627    }, [
2628        amount,
2629        cart,
2630        dispatch,
2631        globalConfig,
2632        isMobileWebview,
2633        mandatoryChecksBeforeSubmitOrder,
2634        paymentMethodsResponse.paymentMethods,
2635        push
2636    ]);
2637    const submitGooglePay = (0,react.useCallback)(()=>{
2638        try {
2639            var _googlePayInstanceRef_current;
2640            (_googlePayInstanceRef_current = googlePayInstanceRef.current) === null || _googlePayInstanceRef_current === void 0 ? void 0 : _googlePayInstanceRef_current.submit();
2641        } catch (e) {}
2642    }, []);
2643    (0,react.useEffect)(()=>{
2644        if (!paymentMethodsResponse.paymentMethods.length) return;
2645        if (!globalConfig.clientKey) return;
2646        if (lastMountedAmountRef.current === amount) return;
2647        mountGooglePay().catch(()=>{
2648            dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(paymentSlice/* PaymentState */.Ky.ERROR));
2649        });
2650    }, [
2651        amount,
2652        dispatch,
2653        globalConfig.clientKey,
2654        mountGooglePay,
2655        paymentMethodsResponse.paymentMethods.length
2656    ]);
2657    (0,react.useEffect)(()=>{
2658        if (!lastMountedAmountRef.current) return;
2659        if (lastMountedAmountRef.current === amount) return;
2660        mountGooglePay().catch(()=>{
2661            dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(paymentSlice/* PaymentState */.Ky.ERROR));
2662        });
2663    }, [
2664        amount,
2665        dispatch,
2666        mountGooglePay
2667    ]);
2668    (0,react.useEffect)(()=>{
2669        return ()=>{
2670            try {
2671                var _googlePayInstanceRef_current;
2672                (_googlePayInstanceRef_current = googlePayInstanceRef.current) === null || _googlePayInstanceRef_current === void 0 ? void 0 : _googlePayInstanceRef_current.unmount();
2673            } catch (e) {}
2674            googlePayInstanceRef.current = null;
2675            checkoutRef.current = null;
2676            if (hiddenContainerRef.current) {
2677                document.body.removeChild(hiddenContainerRef.current);
2678                hiddenContainerRef.current = null;
2679            }
2680        };
2681    }, []);
2682    return {
2683        submitGooglePay
2684    };
2685};
2686
2687;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/digitalWalletPayments/useIsApplePayBtnDisable.ts
2688
2689
2690
2691const useIsApplePayBtnDisabled = ()=>{
2692    const { isPaymentDisabled } = useIsPaymentDisabled();
2693    const { isApplePayReady } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
2694    const isApplePayBtnDisabled = isPaymentDisabled || !isApplePayReady;
2695    return {
2696        isApplePayBtnDisabled
2697    };
2698};
2699
2700;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/digitalWalletPayments/useIsGooglePayBtnDisabled.ts
2701
2702
2703
2704const useIsGooglePayBtnDisabled = ()=>{
2705    const { isPaymentDisabled } = useIsPaymentDisabled();
2706    const { isGooglePayReady } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
2707    const isGooglePayBtnDisabled = isPaymentDisabled || !isGooglePayReady;
2708    return {
2709        isGooglePayBtnDisabled
2710    };
2711};
2712
2713;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/digitalWalletPayments/useIsPaypalBtnDisabled.ts
2714
2715
2716
2717const useIsPaypalBtnDisabled = ()=>{
2718    const { isPaymentDisabled } = useIsPaymentDisabled();
2719    const { isPaypalReady } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
2720    const isPaypalBtnDisabled = isPaymentDisabled || !isPaypalReady;
2721    return {
2722        isPaypalBtnDisabled
2723    };
2724};
2725
2726// EXTERNAL MODULE: ./node_modules/@adyen/adyen-web/dist/es/components/PayPal/Pay
2726pal.js + 10 modules
2727var Paypal = __webpack_require__(291011);
2728// EXTERNAL MODULE: ./node_modules/@mui/system/esm/useMediaQuery/useMediaQuery.js
2729var useMediaQuery = __webpack_require__(261730);
2730;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/digitalWalletPayments/utils/paypalUtils.ts
2731
2732
2733
2734
2735
2736
2737
2738
2739const { currency: paypalUtils_currency } = locale.CURRENT_LOCALE;
2740const paypalUtils_handleServerResponse = (res, actions, dispatch, push, explicitRemountPaypal)=>{
2741    if (res.action) {
2742        const parsed = JSON.parse(res.action);
2743        if (parsed.action) {
2744            actions.resolve({
2745                action: parsed.action
2746            });
2747            return;
2748        }
2749    }
2750    if (paymentContants/* Order_Accepted_Order_States */.Xv.includes(res.orderstate)) {
2751        actions.resolve({
2752            resultCode: res.orderstate
2753        });
2754        dispatch((0,orderSubmit_slice/* setOrderSubmitResponse */.VN)(res));
2755        push(paymentContants/* Confirmation_Page_Route */.cD);
2756    } else {
2757        explicitRemountPaypal();
2758        actions.reject();
2759    }
2760};
2761const createPayPalHandlers = (dispatch, cart, push, explicitRemountPaypal, mandatoryChecksBeforeSubmitOrder)=>{
2762    const onAdditionalDetails = async (state, _component, actions)=>{
2763        try {
2764            var _cart_driverTip, _cart_paymentAuth;
2765            const payload = {
2766                paymentData: JSON.stringify(state.data),
2767                tipReceived: (_cart_driverTip = cart === null || cart === void 0 ? void 0 : cart.driverTip) !== null && _cart_driverTip !== void 0 ? _cart_driverTip : 0,
2768                paymentAuth: (_cart_paymentAuth = cart === null || cart === void 0 ? void 0 : cart.paymentAuth) !== null && _cart_paymentAuth !== void 0 ? _cart_paymentAuth : ""
2769            };
2770            const response = await (0,checkoutApi/* submitAdditionalDetails */.b6)(payload);
2771            paypalUtils_handleServerResponse(response.data, actions, dispatch, push, explicitRemountPaypal);
2772        } catch (e) {
2773            actions.reject();
2774            explicitRemountPaypal();
2775            dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(constants/* PaymentState */.K.ERROR));
2776        }
2777    };
2778    const onError = (err)=>{
2779        explicitRemountPaypal();
2780        if (err.name === paymentContants/* Paypal_Error_Name_Cancel */.JG) return;
2781        dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(constants/* PaymentState */.K.ERROR));
2782    };
2783    const onSubmit = async (state, _component, actions)=>{
2784        try {
2785            await mandatoryChecksBeforeSubmitOrder(false);
2786            var _cart_paymentAuth;
2787            const { adyenOrderResponse } = await handleGiftCardPreAuth((_cart_paymentAuth = cart === null || cart === void 0 ? void 0 : cart.paymentAuth) !== null && _cart_paymentAuth !== void 0 ? _cart_paymentAuth : "");
2788            const paymentData = {
2789                ...state.data,
2790                ...(adyenOrderResponse === null || adyenOrderResponse === void 0 ? void 0 : adyenOrderResponse.orderData) && {
2791                    order: adyenOrderResponse
2792                }
2793            };
2794            var _cart_driverTip, _cart_paymentAuth1;
2795            const payload = {
2796                paymentData: JSON.stringify(paymentData),
2797                tipReceived: (_cart_driverTip = cart === null || cart === void 0 ? void 0 : cart.driverTip) !== null && _cart_driverTip !== void 0 ? _cart_driverTip : 0,
2798                paymentAuth: (_cart_paymentAuth1 = cart === null || cart === void 0 ? void 0 : cart.paymentAuth) !== null && _cart_paymentAuth1 !== void 0 ? _cart_paymentAuth1 : ""
2799            };
2800            const response = await (0,checkoutApi/* submitOrder */.pm)(payload);
2801            paypalUtils_handleServerResponse(response.data, actions, dispatch, push, explicitRemountPaypal);
2802        } catch (e) {
2803            actions.reject();
2804            explicitRemountPaypal();
2805            dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(constants/* PaymentState */.K.ERROR));
2806            events/* default */.Z.emit(events/* OrderEventType */.v.ORDER_SUBMIT_FAILED);
2807        }
2808    };
2809    const onInit = ()=>
2809dispatch((0,onePageCheckoutPaymentSlice/* setIsPaypalReady */.D$)(true));
2810    return {
2811        onAdditionalDetails,
2812        onError,
2813        onSubmit,
2814        onInit
2815    };
2816};
2817const getPayPalConfig = (globalConfig, amount, dispatch, cart, push, paypalMethod, explicitRemountPaypal, mandatoryChecksBeforeSubmitOrder)=>{
2818    const { onAdditionalDetails, onError, onSubmit, onInit } = createPayPalHandlers(dispatch, cart, push, explicitRemountPaypal, mandatoryChecksBeforeSubmitOrder);
2819    return {
2820        checkoutConfig: {
2821            ...globalConfig,
2822            amount: {
2823                value: amount,
2824                currency: paypalUtils_currency
2825            },
2826            onAdditionalDetails
2827        },
2828        paypalConfig: {
2829            style: paymentContants/* Paypal_Config_Style */.pI,
2830            showPayButton: true,
2831            blockPayPalPayLaterButton: true,
2832            blockPayPalVenmoButton: true,
2833            onSubmit,
2834            onError,
2835            onInit,
2836            ...paypalMethod
2837        }
2838    };
2839};
2840
2841;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/digitalWalletPayments/usePaypal.ts
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853const usePaypal = ()=>{
2854    const dispatch = (0,hooks/* useAppDispatch */.T)();
2855    const activeContainerRef = (0,react.useRef)(null);
2856    const paypalInstanceRef = (0,react.useRef)(null);
2857    const lastMountedAmountRef = (0,react.useRef)(null);
2858    const paypalDesktopRef = (0,react.useRef)(null);
2859    const paypalMobileFirstRowRef = (0,react.useRef)(null);
2860    const paypalMobileSecondRowRef = (0,react.useRef)(null);
2861    const cart = (0,hooks/* useAppSelector */.C)(cartSlice/* cartSliceSelector */.Ew);
2862    const { globalConfig, isApplePayAvailable } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
2863    const { paymentMethodsResponse } = globalConfig;
2864    const amount = (0,hooks/* useAppSelector */.C)(cartSlice/* selectOPCPaymentAmount */.ZJ);
2865    const { push } = (0,next_router.useRouter)();
2866    const isMobile = (0,useMediaQuery/* default */.Z)("(max-width: 64rem)");
2867    const { mandatoryChecksBeforeSubmitOrder } = useSubmitCardOrder();
2868    const getActivePaypalRef = (0,react.useCallback)(()=>{
2869        if (!isMobile) {
2870            return paypalDesktopRef;
2871        }
2872        if (isApplePayAvailable) {
2873            return paypalMobileSecondRowRef;
2874        }
2875        return paypalMobileFirstRowRef;
2876    }, [
2877        isApplePayAvailable,
2878        isMobile
2879    ]);
2880    const mountPayPal = (0,react.useCallback)(async ()=>{
2881        dispatch((0,onePageCheckoutPaymentSlice/* setIsPaypalReady */.D$)(false));
2882        try {
2883            var _paypalInstanceRef_current;
2884            (_paypalInstanceRef_current = paypalInstanceRef.current) === null || _paypalInstanceRef_current === void 0 ? void 0 : _paypalInstanceRef_current.unmount();
2885        } catch (e) {}
2886        paypalInstanceRef.current = null;
2887        const paypalMethod = paymentMethodsResponse.paymentMethods.find((paymentMethod)=>paymentMethod.type === paymentMethodConstants/* PAYMENT_METHODS */.LM.PAYPAL);
2888        const explicitRemountPaypal = ()=>{
2889            lastMountedAmountRef.current = null;
2890            mountPayPal();
2891        };
2892        const { checkoutConfig, paypalConfig } = getPayPalConfig(globalConfig, amount, dispatch, cart, push, paypalMethod, explicitRemountPaypal, mandatoryChecksBeforeSubmitOrder);
2893        const adyenCheckout = await (0,AdyenCheckout/* AdyenCheckout */.w)(checkoutConfig);
2894        const instance = new Paypal/* default */.Z(adyenCheckout, paypalConfig);
2895        if (!activeContainerRef.current) {
2896            const activeRef = getActivePaypalRef();
2897            activeContainerRef.current = activeRef.current;
2898        }
2899        if (activeContainerRef.current) {
2900            instance.mount(activeContainerRef.current);
2901        }
2902        paypalInstanceRef.current = instance;
2903        lastMountedAmountRef.current = amount;
2904    }, [
2905        dispatch,
2906        paymentMethodsResponse.paymentMethods,
2907        globalConfig,
2908        amount,
2909        cart,
2910        push,
2911        mandatoryChecksBeforeSubmitOrder,
2912        getActivePaypalRef
2913    ]);
2914    const mountPaypalTo = (0,react.useCallback)((container)=>{
2915        if (!container || !paypalInstanceRef.current) {
2916            return;
2917        }
2918        activeContainerRef.current = container;
2919        try {
2920            paypalInstanceRef.current.unmount();
2921        } catch (e) {}
2922        paypalInstanceRef.current.mount(container);
2923    }, []);
2924    (0,react.useEffect)(function syncActivePaypalContainer() {
2925        const activeRef = getActivePaypalRef();
2926        mountPaypalTo(activeRef.current);
2927    }, [
2928        getActivePaypalRef,
2929        mountPaypalTo
2930    ]);
2931    (0,react.useEffect)(function initializePaypal() {
2932        if (!paymentMethodsResponse.paymentMethods.length) return;
2933        if (!globalConfig.clientKey) return;
2934        if (lastMountedAmountRef.current === amount) return;
2935        mountPayPal().catch(()=>{
2936            dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(paymentSlice/* PaymentState */.Ky.ERROR));
2937        });
2938    }, [
2939        amount,
2940        dispatch,
2941        globalConfig.clientKey,
2942        mountPayPal,
2943        paymentMethodsResponse.paymentMethods.length
2944    ]);
2945    (0,react.useEffect)(function remountPaypalOnAmountChange() {
2946        if (!lastMountedAmountRef.current) return;
2947        if (lastMountedAmountRef.current === amount) return;
2948        mountPayPal().catch(()=>{
2949            dispatch((0,onePageCheckoutPaymentSlice/* setPaymentState */.Je)(paymentSlice/* PaymentState */.Ky.ERROR));
2950        });
2951    }, [
2952        amount,
2953        dispatch,
2954        mountPayPal
2955    ]);
2956    (0,react.useEffect)(function cleanupPaypalOnUnmount() {
2957        return ()=>{
2958            try {
2959                var _paypalInstanceRef_current;
2960                (_paypalInstanceRef_current = paypalInstanceRef.current) === null || _paypalInstanceRef_current === void 0 ? void 0 : _paypalInstanceRef_current.unmount();
2961            } catch (e) {}
2962            paypalInstanceRef.current = null;
2963        };
2964    }, []);
2965    return {
2966        paypalDesktopRef,
2967        paypalMobileFirstRowRef,
2968        paypalMobileSecondRowRef
2969    };
2970};
2971
2972;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/digitalWalletPayments/useDigitalWalletPayments.ts
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982const useDigitalWalletPayments = ()=>{
2983    const { submitApplePay } = useApplePay();
2984    const { submitGooglePay } = useGooglePay();
2985    const { paypalDesktopRef, paypalMobileFirstRowRef, paypalMobileSecondRowRef } = usePaypal();
2986    const { isLoggedIn } = (0,lib_hooks/* useCustomer */.ON)();
2987    const { isApplePayAvailable, isGuestFormSubmitted } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
2988    const shouldShowPaymentSection = isLoggedIn || isGuestFormSubmitted;
2989    const { isGooglePayBtnDisabled } = useIsGooglePayBtnDisabled();
2990    const { isPaypalBtnDisabled } = useIsPaypalBtnDisabled();
2991    const { isApplePayBtnDisabled } = useIsApplePayBtnDisabled();
2992    return {
2993        submitApplePay,
2994        submitGooglePay,
2995        paypalDesktopRef,
2996        paypalMobileFirstRowRef,
2997        paypalMobileSecondRowRef,
2998        isApplePayAvailable,
2999        shouldShowPaymentSection,
3000        isGooglePayBtnDisabled,
3001        isPaypalBtnDisabled,
3002        isApplePayBtnDisabled
3003    };
3004};
3005
3006;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/digitalWalletPayments/index.ts
3007
3008
3009;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/discountCode/useDiscountCode.tsx
3010
3011
3012
3013
3014const useDiscountCode = ()=>{
3015    const [couponFieldValue, setCouponFieldValue] = (0,react.useState)("");
3016    const [isLoading, setIsLoading] = (0,react.useState)(false);
3017    const dispatch = (0,hooks/* useAppDispatch */.T)();
3018    const appliedDiscount = (0,hooks/* useAppSelector */.C)((state)=>state.cart.discount);
3019    const errorCodeTranslation = {
3020        WF_CART_008: (0,utils_locale.t)("checkout.payment.tax_calculation_error_message"),
3021        WF_CART_009: (0,utils_locale.t)("checkout.payment.payment_discount_error_message"),
3022        WF_CART_010: (0,utils_locale.t)("checkout.payment.generic_cart_error"),
3023        WF_CART_029: (0,utils_locale.t)("checkout.payment.payment_discount_no_longer_valid_error_message"),
3024        WF_CART_031: (0,utils_locale.t)("checkout.payment.payment_discount_not_valid_on_this_order_error_message")
3025    };
3026    const handleApply = async ()=>{
3027        setIsLoading(true);
3028        await dispatch((0,cartSlice/* applyDiscountCode */.iY)({
3029            discountCode: couponFieldValue,
3030            errorCodeTranslation
3031        }));
3032        setIsLoading(false);
3033    };
3034    const handleRemove = async ()=>{
3035        setIsLoading(true);
3036        setCouponFieldValue("");
3037        await dispatch((0,cartSlice/* removeDiscountCode */.vK)({
3038            discountCode: appliedDiscount === null || appliedDiscount === void 0 ? void 0 : appliedDiscount.code,
3039            errorCodeTranslation
3040        }));
3041        setIsLoading(false);
3042    };
3043    const handleCouponFieldChange = (value)=>{
3044        dispatch((0,cartSlice/* resetDiscountCode */.Lg)());
3045        setCouponFieldValue(value);
3046    };
3047    return {
3048        isLoading,
3049        handleApply,
3050        handleRemove,
3051        handleCouponFieldChange,
3052        couponFieldValue,
3053        appliedDiscount
3054    };
3055};
3056
3057;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/discountCode/index.ts
3058
3059
3060// EXTERNAL MODULE: ./node_modules/@adyen/adyen-web/dist/es/components/Giftcard/Giftcard.js + 6 modules
3061var Giftcard = __webpack_require__(304835);
3062// EXTERNAL MODULE: ./src/api/paymentApi.ts
3063var paymentApi = __webpack_require__(677674);
3064// EXTERNAL MODULE: ./src/components/checkout/payment/adyen/GiftCardForm/giftcard.utils.ts
3065var giftcard_utils = __webpack_require__(981496);
3066// EXTERNAL MODULE: ./src/lib/constants/snackbar.ts
3067var snackbar = __webpack_require__(380254);
3068// EXTERNAL MODULE: ./src/lib/types/payment.types.ts
3069var payment_types = __webpack_require__(108204);
3070// EXTERNAL MODULE: ./src/lib/utils/snackbarHandlers.ts
3071var snackbarHandlers = __webpack_require__(921134);
3072;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/giftCard/useGiftCard.ts
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087const GIFT_CARD_NAME = "Gift Card";
3088const GIFT_CARD_BRAND = "givex";
3089const useGiftCard = ()=>{
3090    const [errorMessages, setErrorMessages] = (0,react.useState)([]);
3091    const [loading, setLoading] = (0,react.useState)(false);
3092    const [isGiftCardVisible, setIsGiftCardVisible] = (0,react.useState)(false);
3093    const giftCardDivRef = (0,react.useRef)(null);
3094    const giftCardComponentRef = (0,react.useRef)(null);
3095    const checkoutRef = (0,react.useRef)(null);
3096    const isInitialized = (0,react.useRef)(false);
3097    const balanceRef = (0,react.useRef)(0);
3098    const dispatch = (0,hooks/* useAppDispatch */.T)();
3099    const cart = (0,hooks/* useAppSelector */.C)((state)=>state.cart);
3100    const authAmountWithTip = (0,hooks/* useAppSelector */.C)(cartSlice/* selectAuthAmountWithTipAdjustment */.eo);
3101    const { globalConfig } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
3102    const { paymentMethodsResponse } = globalConfig;
3103    const { appliedAmount, remainingAmount, remainingPaymentDue, checkedAuthAmount, state: giftCardState, isGiftCardApplied } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOPCGiftCardDetails */.gH);
3104    const resetFormState = (0,react.useCallback)(()=>{
3105        var _giftCardComponentRef_current;
3106        dispatch((0,onePageCheckoutPaymentSlice/* resetOPCGiftCardDetails */.Dg)());
3107        setErrorMessages([]);
3108        setLoading(false);
3109        (_giftCardComponentRef_current = giftCardComponentRef.current) === null || _giftCardComponentRef_current === void 0 ? void 0 : _giftCardComponentRef_current.update({});
3110    }, [
3111        dispatch
3112    ]);
3113    const handleRemoveGiftCard = (0,react.useCallback)(async ()=>{
3114        if (loading) return;
3115        try {
3116            setLoading(true);
3117            await (0,paymentApi/* deletePaymentFromCart */.Y$)({
3118                paymentMethodType: payment_types/* DeletePaymentMethodType */.z.GIFT_CARD
3119            });
3120            resetFormState();
3121        } catch (error) {
3122            (0,snackbarHandlers/* axiosErrorHandler */.ri)({
3123                error,
3124                dispatch,
3125                fallbackSnackbar: {
3126                    heading: snackbar/* GENERIC_EVENT_ERR_HEADING */.U3.REQUEST_FAILED(),
3127                    message: snackbar/* GENERIC_ERR_MSG */.I_.ERROR()
3128                }
3129            });
3130            setLoading(false);
3131        }
3132    }, [
3133        dispatch,
3134        loading,
3135        resetFormState
3136    ]);
3137    const handleBalanceCheck = (0,react.useCallback)(async (resolve, _reject, data)=>{
3138        try {
3139            var _giftCardComponentRef_current_props_amount, _giftCardComponentRef_current_props, _giftCardComponentRef_current;
3140            setErrorMessages([]);
3141            setLoading(true);
3142            dispatch((0,onePageCheckoutPaymentSlice/* resetOPCGiftCardDetails */.Dg)());
3143            var _giftCardComponentRef_current_props_amount_value;
3144            const currentAmount = (_giftCardComponentRef_current_props_amount_value = (_giftCardComponentRef_current = giftCardComponentRef.current) === null || _giftCardComponentRef_current === void 0 ? void 0 : (_giftCardComponentRef_current_props = _giftCardComponentRef_current.props) === null || _giftCardComponentRef_current_props === void 0 ? void 0 : (_giftCardComponentRef_current_props_amount = _giftCardComponentRef_current_props.amount) === null || _giftCardComponentRef_current_props_amount === void 0 ? void 0 : _giftCardComponentRef_current_props_amount.value) !== null && _giftCardComponentRef_current_props_amount_value !== void 0 ? _giftCardComponentRef_current_props_amount_value : 0;
3145            const payload = {
3146                paymentMethod: data.paymentMethod,
3147                amount: {
3148                    currency: locale.CURRENT_LOCALE.currency,
3149                    value: currentAmount
3150                }
3151            };
3152            const { data: balanceResponse } = await (0,paymentApi/* checkGiftCardBalance */.Mh)(payload);
3153            dispatch((0,onePageCheckoutPaymentSlice/* setOPCGiftCardDetails */.PZ)({
3154                balance: balanceResponse.balance.value,
3155                checkedAuthAmount: currentAmount
3156            }));
3157            balanceRef.current = balanceResponse.balance.value;
3158            resolve(balanceResponse);
3159            if (balanceResponse.resultCode === adyen_giftcard_types/* BalanceResultCode */.V.NOT_ENOUGH_BALANCE) {
3160                setLoading(false);
3161            }
3162        } catch (error) {
3163            setErrorMessages((0,giftcard_utils/* handleGiftCardErrors */.le)(error));
3164            setLoading(false);
3165        }
3166    }, [
3167        dispatch
3168    ]);
3169    const handleOrderRequest = (0,react.useCallback)(async (_resolve, _reject, data)=>{
3170        try {
3171            var _giftCardComponentRef_current_props_amount, _giftCardComponentRef_current_props, _giftCardComponentRef_current;
3172            var _giftCardComponentRef_current_props_amount_value;
3173            const orderResponse = await (0,paymentApi/* createAdyenOrder */.sm)({
3174                cartId: cart.id,
3175                amount: (_giftCardComponentRef_current_props_amount_value = (_giftCardComponentRef_current = giftCardComponentRef.current) === null || _giftCardComponentRef_current === void 0 ? void 0 : (_giftCardComponentRef_current_props = _giftCardComponentRef_current.props) === null || _giftCardComponentRef_current_props === void 0 ? void 0 : (_giftCardComponentRef_current_props_amount = _giftCardComponentRef_current_props.amount) === null || _giftCardComponentRef_current_props_amount === void 0 ? void 0 : _giftCardComponentRef_current_props_amount.value) !== null && _giftCardComponentRef_current_props_amount_value !== void 0 ? _giftCardComponentRef_current_props_amount_value : 0,
3176                amountPaidByGC: balanceRef.current
3177            });
3178            var _orderResponse_data;
3179            const { pspReference, orderData } = (_orderResponse_data = orderResponse.data) !== null && _orderResponse_data !== void 0 ? _orderResponse_data : {};
3180            dispatch((0,onePageCheckoutPaymentSlice/* setOPCGiftCardDetail
3180s */.PZ)({
3181                state: adyen_giftcard_types/* GiftCardState */.s.INSUFFICIENT,
3182                encryptedData: data,
3183                ...orderData && {
3184                    adyenOrderResponse: {
3185                        pspReference,
3186                        orderData
3187                    }
3188                }
3189            }));
3190        } catch (error) {
3191            resetFormState();
3192            setErrorMessages((0,giftcard_utils/* handleGiftCardErrors */.le)(error));
3193        } finally{
3194            setLoading(false);
3195        }
3196    }, [
3197        dispatch,
3198        cart.id,
3199        resetFormState
3200    ]);
3201    const handleRequiringConfirmation = (0,react.useCallback)(async ()=>{
3202        var _giftCardComponentRef_current;
3203        dispatch((0,onePageCheckoutPaymentSlice/* setOPCGiftCardDetails */.PZ)({
3204            state: adyen_giftcard_types/* GiftCardState */.s.SUFFICIENT,
3205            encryptedData: (_giftCardComponentRef_current = giftCardComponentRef.current) === null || _giftCardComponentRef_current === void 0 ? void 0 : _giftCardComponentRef_current.data
3206        }));
3207        setLoading(false);
3208    }, [
3209        dispatch
3210    ]);
3211    const unmountGiftCard = (0,react.useCallback)(()=>{
3212        try {
3213            var _giftCardComponentRef_current;
3214            (_giftCardComponentRef_current = giftCardComponentRef.current) === null || _giftCardComponentRef_current === void 0 ? void 0 : _giftCardComponentRef_current.unmount();
3215        } catch (e) {
3216        // Adyen may throw if component is already unmounted
3217        }
3218        giftCardComponentRef.current = null;
3219        checkoutRef.current = null;
3220    }, []);
3221    const mountGiftCard = (0,react.useCallback)(async ()=>{
3222        unmountGiftCard();
3223        checkoutRef.current = await (0,AdyenCheckout/* AdyenCheckout */.w)({
3224            ...globalConfig,
3225            amount: {
3226                value: authAmountWithTip,
3227                currency: locale.CURRENT_LOCALE.currency
3228            }
3229        });
3230        const giftcard = new Giftcard/* GiftcardElement */.b(checkoutRef.current, {
3231            name: GIFT_CARD_NAME,
3232            brand: GIFT_CARD_BRAND,
3233            showPayButton: false,
3234            onBalanceCheck: handleBalanceCheck,
3235            onOrderRequest: handleOrderRequest,
3236            onRequiringConfirmation: handleRequiringConfirmation
3237        });
3238        giftCardComponentRef.current = giftcard;
3239        giftCardDivRef.current && giftcard.mount(giftCardDivRef.current);
3240    }, [
3241        globalConfig,
3242        authAmountWithTip,
3243        unmountGiftCard,
3244        handleBalanceCheck,
3245        handleOrderRequest,
3246        handleRequiringConfirmation
3247    ]);
3248    const { isLoggedIn } = (0,lib_hooks/* useCustomer */.ON)();
3249    const { isGuestFormSubmitted } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
3250    const shouldShowPaymentSection = isLoggedIn || isGuestFormSubmitted;
3251    // Initialize Adyen once payment methods and auth amount are available
3252    (0,react.useEffect)(()=>{
3253        var _paymentMethodsResponse_paymentMethods;
3254        if (!isInitialized.current && (paymentMethodsResponse === null || paymentMethodsResponse === void 0 ? void 0 : (_paymentMethodsResponse_paymentMethods = paymentMethodsResponse.paymentMethods) === null || _paymentMethodsResponse_paymentMethods === void 0 ? void 0 : _paymentMethodsResponse_paymentMethods.length) > 0 && authAmountWithTip && shouldShowPaymentSection && isGiftCardVisible) {
3255            isInitialized.current = true;
3256            void mountGiftCard();
3257        }
3258    }, [
3259        mountGiftCard,
3260        authAmountWithTip,
3261        paymentMethodsResponse,
3262        shouldShowPaymentSection,
3263        isGiftCardVisible
3264    ]);
3265    // Re-mount when auth amount changes after a balance was already checked
3266    (0,react.useEffect)(()=>{
3267        if (isInitialized.current && checkedAuthAmount > 0 && authAmountWithTip !== checkedAuthAmount && giftCardState !== adyen_giftcard_types/* GiftCardState */.s.IDLE && shouldShowPaymentSection) {
3268            resetFormState();
3269            mountGiftCard();
3270        }
3271    }, [
3272        authAmountWithTip,
3273        checkedAuthAmount,
3274        resetFormState,
3275        giftCardState,
3276        mountGiftCard,
3277        shouldShowPaymentSection,
3278        isGiftCardVisible
3279    ]);
3280    // Re-check balance on order submit failure
3281    (0,react.useEffect)(()=>{
3282        if (!isGiftCardApplied) return;
3283        const handleOrderSubmitFailed = ()=>{
3284            var _giftCardComponentRef_current;
3285            (_giftCardComponentRef_current = giftCardComponentRef.current) === null || _giftCardComponentRef_current === void 0 ? void 0 : _giftCardComponentRef_current.onBalanceCheck();
3286        };
3287        events/* default */.Z.on(events/* OrderEventType */.v.ORDER_SUBMIT_FAILED, handleOrderSubmitFailed);
3288        return ()=>{
3289            events/* default */.Z.off(events/* OrderEventType */.v.ORDER_SUBMIT_FAILED, handleOrderSubmitFailed);
3290        };
3291    }, [
3292        isGiftCardApplied
3293    ]);
3294    // Cleanup on unmount
3295    (0,react.useEffect)(()=>unmountGiftCard, [
3296        unmountGiftCard
3297    ]);
3298    return {
3299        giftCardDivRef,
3300        giftCardComponentRef,
3301        errorMessages,
3302        loading,
3303        appliedAmount,
3304        remainingAmount,
3305        remainingPaymentDue,
3306        giftCardState,
3307        isGiftCardApplied,
3308        authAmountWithTip,
3309        resetFormState,
3310        handleRemoveGiftCard,
3311        setIsGiftCardVisible
3312    };
3313};
3314
3315;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/giftCard/index.ts
3316
3317
3318;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/usePaymentIntegration.tsx
3319
3320
3321
3322
3323
3324
3325const usePaymentIntegration = ()=>{
3326    const cart = (0,hooks/* useAppSelector */.C)(cartSlice/* cartSliceSelector */.Ew);
3327    const dispatch = (0,hooks/* useAppDispatch */.T)();
3328    const isFetchingPaymentMethodsRef = (0,react.useRef)(false);
3329    const amount = (0,hooks/* useAppSelector */.C)(cartSlice/* selectOPCPaymentAmount */.ZJ);
3330    const { globalConfig } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
3331    const { paymentMethodsResponse } = globalConfig;
3332    (0,react.useEffect)(function useFetchPaymentMethodsEffect() {
3333        if (amount <= 0 || isFetchingPaymentMethodsRef.current) {
3334            return;
3335        }
3336        isFetchingPaymentMethodsRef.current = true;
3337        dispatch((0,onePageCheckoutPaymentSlice/* getPaymentMethods */.Q8)(locale.CURRENCY_CODE, locale.CURRENT_COUNTRY_SHORT_CODE, amount, utils_locale/* LANGUAGE */.ad)).finally(()=>{
3338            isFetchingPaymentMethodsRef.current = false;
3339        });
3340    }, [
3341        dispatch,
3342        amount,
3343        cart.cartId
3344    ]);
3345    (0,react.useEffect)(function useSyncGlobalConfigEffect() {
3346        var _paymentMethodsResponse_paymentMethods;
3347        var _paymentMethodsResponse_paymentMethods_length;
3348        if (((_paymentMethodsResponse_paymentMethods_length = paymentMethodsResponse === null || paymentMethodsResponse === void 0 ? void 0 : (_paymentMethodsResponse_paymentMethods = paymentMethodsResponse.paymentMethods) === null || _paymentMethodsResponse_paymentMethods === void 0 ? void 0 : _paymentMethodsResponse_paymentMethods.length) !== null && _paymentMethodsResponse_paymentMethods_length !== void 0 ? _paymentMethodsResponse_paymentMethods_length : 0) > 0) {
3349            dispatch((0,onePageCheckoutPaymentSlice/* setGlobalConfig */.Qb)({
3350                amount: {
3351                    value: amount,
3352                    currency: locale.CURRENCY_CODE
3353                }
3354            }));
3355        }
3356    }, [
3357        dispatch,
3358        amount,
3359        paymentMethodsResponse
3360    ]);
3361};
3362
3363;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/useOpcPayment.ts
3364
3365
3366
3367
3368
3369const useOpcPayment = ()=>{
3370    usePaymentIntegration();
3371    const cardPayment = useCardPayment();
3372    const digitalWalletPayments = useDigitalWalletPayments();
3373    const giftCardPayment = useGiftCard();
3374    const paymentDiscountCode = useDiscountCode();
3375    return {
3376        cardPayment,
3377        digitalWalletPayments,
3378        paymentDiscountCode,
3379        giftCardPayment
3380    };
3381};
3382
3383;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/payment/index.ts
3384
3385
3386
3387
3388/***/ }),
3389
3390/***/ 833075:
3391/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3392
3393"use strict";
3394/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3395/* harmony export */   i: function() { return /* binding */ useDeliveryWindowSession; }
3396/* harmony export */ });
3397/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(667294);
3398/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_constants_storage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(692521);
3399/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_utils_browserStorage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(673228);
3400
3401
3402
3403const useDeliveryWindowSession = ()=>{
3404    const getDeliveryWindowSession = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(()=>{
3405        const existing = (0,_wildfork_commercetools_core_ui_dist_src_lib_utils_browserStorage__WEBPACK_IMPORTED_MODULE_2__.getItem)(_wildfork_commercetools_core_ui_dist_src_lib_constants_storage__WEBPACK_IMPORTED_MODULE_1__.STORAGE_KEYS.DELIVERY_WINDOW, _wildfork_commercetools_core_ui_dist_src_lib_constants_storage__WEBPACK_IMPORTED_MODULE_1__.STORAGE_TYPES.SESSION);
3406        if (!(existing === null || existing === void 0 ? void 0 : existing.length)) return {};
3407        try {
3408            const parsed = JSON.parse(existing);
3409            return parsed && typeof parsed === "object" ? parsed : {};
3410        } catch (e) {
3411            return {};
3412        }
3413    }, []);
3414    const setDeliveryWindowSession = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((value)=>{
3415        (0,_wildfork_commercetools_core_ui_dist_src_lib_utils_browserStorage__WEBPACK_IMPORTED_MODULE_2__.setItem)(_wildfork_commercetools_core_ui_dist_src_lib_constants_storage__WEBPACK_IMPORTED_MODULE_1__.STORAGE_KEYS.DELIVERY_WINDOW, JSON.stringify(value), _wildfork_commercetools_core_ui_dist_src_lib_constants_storage__WEBPACK_IMPORTED_MODULE_1__.STORAGE_TYPES.SESSION);
3416    }, []);
3417    return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>({
3418            getDeliveryWindowSession,
3419            setDeliveryWindowSession
3420        }), [
3421        getDeliveryWindowSession,
3422        setDeliveryWindowSession
3423    ]);
3424};
3425
3426
3427/***/ }),
3428
3429/***/ 257778:
3430/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3431
3432"use strict";
3433/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3434/* harmony export */   RS: function() { return /* binding */ applyStoreFulfillment; },
3435/* harmony export */   rK: function() { return /* binding */ useStoreFulfillmentWithInventoryCheck; }
3436/* harmony export */ });
3437/* unused harmony export runOosAndRestrictedStateCheck */
3438/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(667294);
3439/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_constants_storage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(692521);
3440/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_utils_productUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(574909);
3441/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_utils_typeUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(681063);
3442/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(225617);
3443/* harmony import */ var _Api_cart_getCartItemApi__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(543854);
3444/* harmony import */ var _Api_customerApi__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(164535);
3445/* harmony import */ var _Components_checkout_delivery_dbDeliveryDataTransformer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(672311);
3446/* harmony import */ var _Lib_store_cartSlice__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(484725);
3447/* harmony import */ var _Lib_store_customerInfoSlice__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(680921);
3448/* harmony import */ var _Lib_store_hooks__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(267097);
3449/* harmony import */ var _Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(480326);
3450/* harmony import */ var _Lib_utils_browserStorage__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(873043);
3451/* harmony import */ var _Lib_utils_fulfillmentUtils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(889034);
3452/* harmony import */ var _Lib_utils_typeUtils__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(726373);
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468function getSelectedPostalCode(apiResult) {
3469    const addresses = apiResult.address;
3470    const selected = addresses === null || addresses === void 0 ? void 0 : addresses.find((a)=>a.selected === true);
3471    return selected === null || selected === void 0 ? void 0 : selected.postalCode;
3472}
3473function resolveIsMemberEligible(store) {
3474    var _store_shippingTypes;
3475    var _store_shippingTypes_filter;
3476    const shippingTypes = (_store_shippingTypes_filter = store === null || store === void 0 ? void 0 : (_store_shippingTypes = store.shippingTypes) === null || _store_shippingTypes === void 0 ? void 0 : _store_shippingTypes.filter(_Lib_utils_typeUtils__WEBPACK_IMPORTED_MODULE_14__/* .notEmpty */ .Dw)) !== null && _store_shippingTypes_filter !== void 0 ? _store_shippingTypes_filter : [];
3477    const isAir = (0,_Lib_utils_fulfillmentUtils__WEBPACK_IMPORTED_MODULE_13__/* .checkFulfillmentType */ .MQ)(_Components_checkout_delivery_dbDeliveryDataTransformer__WEBPACK_IMPORTED_MODULE_7__/* .FULFILLMENT_TYPES */ .AJ.AIR, shippingTypes);
3478    var _store_membershipEligible;
3479    const membershipEligible = (_store_membershipEligible = store === null || store === void 0 ? void 0 : store.membershipEligible) !== null && _store_membershipEligible !== void 0 ? _store_membershipEligible : false;
3480    return membershipEligible && !isAir;
3481}
3482function notifyWebViewOfZipcodeChange(zipcode, isWebViewVisitor) {
3483    if (isWebViewVisitor && window.flutter_inappwebview) {
3484        var _window_flutter_inappwebview_callHandler, _window_flutter_inappwebview;
3485        const dataToSend = {
3486            updateZip: {
3487                zip: zipcode
3488            }
3489        };
3490        (_window_flutter_inappwebview = window.flutter_inappwebview) === null || _window_flutter_inappwebview === void 0 ? void 0 : (_window_flutter_inappwebview_callHandler = _window_flutter_inappwebview.callHandler) === null || _window_flutter_inappwebview_callHandler === void 0 ? void 0 : _window_flutter_inappwebview_callHandler.call(_window_flutter_inappwebview, "updateZip", dataToSend);
3491    }
3492}
3493async function fetchRegionCode(zipcode) {
3494    try {
3495        var _res_data;
3496        const res = await (0,_Api_customerApi__WEBPACK_IMPORTED_MODULE_6__/* .getCustomerRegion */ .Xd)(zipcode);
3497        var _res_data_regionCode;
3498        return (_res_data_regionCode = res === null || res === void 0 ? void 0 : (_res_data = res.data) === null || _res_data === void 0 ? void 0 : _res_data.regionCode) !== null && _res_data_regionCode !== void 0 ? _res_data_regionCode : "";
3499    } catch (e) {
3500        return "";
3501    }
3502}
3503/** @returns true if restricted items were found (caller should abort sync). */ async function fetchRestrictedItemsForState(zipcode, setRestrictedStateItems) {
3504    var _cartResponse_data;
3505    const cartResponse = await (0,_Api_cart_getCartItemApi__WEBPACK_IMPORTED_MODULE_5__/* .getCart */ .d)({
3506        checkInventory: false,
3507        checkStateRestrictions: true,
3508        state: (0,_wildfork_commercetools_core_ui_dist_src_lib_utils_productUtils__WEBPACK_IMPORTED_MODULE_2__.getStateFromZip)(zipcode)
3509    });
3510    const restricted = cartResponse === null || cartResponse === void 0 ? void 0 : (_cartResponse_data = cartResponse.data) === null || _cartResponse_data === void 0 ? void 0 : _cartResponse_data.restrictedStateLineItems;
3511    if (!(restricted === null || restricted === void 0 ? void 0 : restricted.length)) return false;
3512    setRestrictedStateItems([
3513        ...restricted
3514    ]);
3515    return true;
3516}
3517function persistStoreAndTimezone(dispatch, storeId, storeTimeZone) {
3518    dispatch((0,_Lib_store_cartSlice__WEBPACK_IMPORTED_MODULE_8__/* .setStoreIdHandler */ .sW)(storeId));
3519    dispatch((0,_Lib_store_cartSlice__WEBPACK_IMPORTED_MODULE_8__/* .setStoreTimeZone */ .JS)(storeTimeZone));
3520    (0,_Lib_utils_browserStorage__WEBPACK_IMPORTED_MODULE_12__/* .setItem */ .LS)("localTimeZone", storeTimeZone, "local");
3521    (0,_Lib_utils_browserStorage__WEBPACK_IMPORTED_MODULE_12__/* .setItem */ .LS)(_wildfork_commercetools_core_ui_dist_src_lib_constants_storage__WEBPACK_IMPORTED_MODULE_1__.STORAGE_KEYS.CART_FULFILLMENT_STORE_ID, storeId, _wildfork_commercetools_core_ui_dist_src_lib_constants_storage__WEBPACK_IMPORTED_MODULE_1__.STORAGE_TYPES.SESSION);
3522}
3523async function runOosAndRestrictedStateCheck(params) {
3524    const { zipcode, previousZipcode, membershipInCart, storeDetails, findOutOfStockItems, setRestrictedStateItems } = params;
3525    const checkForOosAndStateRestriction = !!zipcode && (zipcode !== previousZipcode || membershipInCart);
3526    if (!checkForOosAndStateRestriction) {
3527        return false;
3528    }
3529    const isMemberEligible = resolveIsMemberEligible(storeDetails);
3530    const outOfStockItems = await findOutOfStockItems({
3531        storeIdProp: storeDetails === null || storeDetails === void 0 ? void 0 : storeDetails.id,
3532        isMemberEligible
3533    });
3534    const hasRestrictedStateLineItems = await fetchRestrictedItemsForState(zipcode, setRestrictedStateItems);
3535    return !!(outOfStockItems === null || outOfStockItems === void 0 ? void 0 : outOfStockItems.length) || hasRestrictedStateLineItems;
3536}
3537async function applyStoreFulfillment(params) {
3538    var _state_zipcode, _state_cart;
3539    const { dispatch, state, zipcode, storeDetails, getInventoryList } = params;
3540    var _state_zipcode_zipcode;
3541    const prevZip = (_state_zipcode_zipcode = (_state_zipcode = state.zipcode) === null || _state_zipcode === void 0 ? void 0 : _state_zipcode.zipcode) !== null && _state_zipcode_zipcode !== void 0 ? _state_zipcode_zipcode : "";
3542    const prevStoreId = (_state_cart = state.cart) === null || _state_cart === void 0 ? void 0 : _state_cart.storeId;
3543    var _storeDetails_id;
3544    const storeId = (_storeDetails_id = storeDetails === null || storeDetails === void 0 ? void 0 : storeDetails.id) !== null && _storeDetails_id !== void 0 ? _storeDetails_id : "";
3545    var _storeDetails_timeZone;
3546    const storeTimeZone = (_storeDetails_timeZone = storeDetails === null || storeDetails === void 0 ? void 0 : storeDetails.timeZone) !== null && _storeDetails_timeZone !== void 0 ? _storeDetails_timeZone : "";
3547    if (storeId) {
3548        persistStoreAndTimezone(dispatch, storeId, storeTimeZone);
3549    }
3550    if (storeId && prevStoreId !== storeId) {
3551        var _storeDetails_shippingTypes;
3552        var _storeDetails_shippingTypes_filter;
3553        dispatch((0,_Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_11__/* .setShippingTypes */ .$z)((_storeDetails_shippingTypes_filter = storeDetails === null || storeDetails === void 0 ? void 0 : (_storeDetails_shippingTypes = storeDetails.shippingTypes) === null || _storeDetails_shippingTypes === void 0 ? void 0 : _storeDetails_shippingTypes.filter(_Lib_utils_typeUtils__WEBPACK_IMPORTED_MODULE_14__/* .notEmpty */ .Dw)) !== null && _storeDetails_shippingTypes_filter !== void 0 ? _storeDetails_shippingTypes_filter : []));
3554        getInventoryList(storeId);
3555    }
3556    const zipChanged = !!zipcode && zipcode !== prevZip;
3557    if (zipChanged) {
3558        dispatch((0,_Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_11__/* .setZipCode */ .ZC)(zipcode));
3559        (0,_Lib_utils_browserStorage__WEBPACK_IMPORTED_MODULE_12__/* .setItem */ .LS)(_wildfork_commercetools_core_ui_dist_src_lib_constants_storage__WEBPACK_IMPORTED_MODULE_1__.STORAGE_KEYS.CUSTOMER_ZIP, zipcode, _wildfork_commercetools_core_ui_dist_src_lib_constants_storage__WEBPACK_IMPORTED_MODULE_1__.STORAGE_TYPES.LOCAL);
3560        var _storeDetails_membershipEligible;
3561        dispatch((0,_Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_11__/* .setMembershipEligible */ .Z)((_storeDetails_membershipEligible = storeDetails === null || storeDetails === void 0 ? void 0 : storeDetails.membershipEligible) !== null && _storeDetails_membershipEligible !== void 0 ? _storeDetails_membershipEligible : false));
3562        const regionCode = await fetchRegionCode(zipcode);
3563        if ((0,_wildfork_commercetools_core_ui_dist_src_lib_utils_typeUtils__WEBPACK_IMPORTED_MODULE_3__.isRegionIdValue)(regionCode)) {
3564            dispatch((0,_Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_11__/* .setRegionId */ .i)(regionCode));
3565        }
3566        notifyWebViewOfZipcodeChange(zipcode, !!state.environment.isWebViewVisitor);
3567    }
3568    await dispatch((0,_Lib_store_cartSlice__WEBPACK_IMPORTED_MODULE_8__/* .getCartItems */ .fq)({
3569        checkInventory: true,
3570        errorCodeTranslation: {},
3571        isLoggedInUser: !!(0,_Lib_store_customerInfoSlice__WEBPACK_IMPORTED_MODULE_9__/* .customerEmailSelector */ .qL)(state)
3572    })).unwrap();
3573}
3574function useStoreFulfillmentWithInventoryCheck(param) {
3575    let { findOutOfStockItems, setRestrictedStateItems, getInventoryList } = param;
3576    const dispatch = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_10__/* .useAppDispatch */ .T)();
3577    const store = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__/* .useStore */ .oR)();
3578    const storeFulfillmentWithInventoryCheck = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async (apiResult)=>{
3579        var _state_zipcode, _apiResult_stores;
3580        if (!apiResult) return;
3581        const zipcode = getSelectedPostalCode(apiResult);
3582        if (!zipcode) return;
3583        const state = store.getState();
3584        var _state_zipcode_zipcode;
3585        const prevZip = (_state_zipcode_zipcode = (_state_zipcode = state.zipcode) === null || _state_zipcode === void 0 ? void 0 : _state_zipcode.zipcode) !== null && _state_zipcode_zipcode !== void 0 ? _state_zipcode_zipcode : "";
3586        const storeDetails = (_apiResult_stores = apiResult.stores) === null || _apiResult_stores === void 0 ? void 0 : _apiResult_stores[0];
3587        const membershipInCart = !!(0,_Lib_store_cartSlice__WEBPACK_IMPORTED_MODULE_8__/* .membershipLineItemInTheCartSelector */ .fg)(state);
3588        const shouldAbortAfterOosCheck = await runOosAndRestrictedStateCheck({
3589            zipcode,
3590            previousZipcode: prevZip,
3591            membershipInCart,
3592            storeDetails,
3593            findOutOfStockItems,
3594            setRestrictedStateItems
3595        });
3596        if (shouldAbortAfterOosCheck) return;
3597        await applyStoreFulfillment({
3598            dispatch,
3599            state,
3600            zipcode,
3601            storeDetails,
3602            getInventoryList
3603        });
3604    }, [
3605        dispatch,
3606        store,
3607        findOutOfStockItems,
3608        setRestrictedStateItems,
3609        getInventoryList
3610    ]);
3611    const inventoryCheckForPickup = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async (apiResult)=>{
3612        var _apiResult_stores;
3613        if (!apiResult) return;
3614        const selectedStore = (_apiResult_stores = apiResult.stores) === null || _apiResult_stores === void 0 ? void 0 : _apiResult_stores.find((store)=>store.selected);
3615        if (!selectedStore) {
3616            return;
3617        }
3618        const selectedStoreId = selectedStore.id;
3619        const itemsOutOfStock = await findOutOfStockItems({
3620            storeIdProp: selectedStoreId,
3621            isMemberEligible: apiResult.membershipEligible
3622        });
3623        if (itemsOutOfStock.length > 0) {
3624            return;
3625        }
3626        await dispatch((0,_Lib_store_cartSlice__WEBPACK_IMPORTED_MODULE_8__/* .getCartItems */ .fq)({
3627            checkInventory: true,
3628            errorCodeTranslation: {}
3629        })).unwrap();
3630    }, [
3631        dispatch,
3632        findOutOfStockItems
3633    ]);
3634    return {
3635        storeFulfillmentWithInventoryCheck,
3636        inventoryCheckForPickup
3637    };
3638}
3639
3640
3641/***/ }),
3642
3643/***/ 707635:
3644/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3645
3646"use strict";
3647
3648// EXPORTS
3649__webpack_require__.d(__webpack_exports__, {
3650  aD: function() { return /* binding */ createOnePageCheckoutHandlers; },
3651  A2: function() { return /* binding */ createOpcHandlers; }
3652});
3653
3654// UNUSED EXPORTS: createOpcHandlersWithInventoryCheck
3655
3656// EXTERNAL MODULE: ./src/api/cart/index.ts
3657var cart = __webpack_require__(797325);
3658// EXTERNAL MODULE: ./src/api/checkoutApi.ts
3659var checkoutApi = __webpack_require__(451881);
3660// EXTERNAL MODULE: ./src/lib/configs/HeadersConfig.ts
3661var HeadersConfig = __webpack_require__(420957);
3662// EXTERNAL MODULE: ./src/api/api.ts
3663var api = __webpack_require__(445913);
3664// EXTERNAL MODULE: ./src/api/constants/RestEndpoints.ts
3665var RestEndpoints = __webpack_require__(179901);
3666;// CONCATENATED MODULE: ./src/api/onePageCheckoutApi.ts
3667/**
3668 * One Page Checkout API Client
3669 * @description API functions for one-page checkout operations
3670 */ 
3671
3672
3673/**
3674 * Loads checkout step data to fetch delivery address and delivery windows
3675 *
3676 * @param request - Checkout request containing step, and address info
3677 * @returns Promise resolving to checkout response with delivery address and windows
3678 * @throws {AxiosError} On network, validation, or server errors
3679 *
3680 * @description
3681 * This API endpoint handles multiple scenarios based on the step parameter:
3682 *
3683 * **Step 1: Initial Checkout Load**
3684 * - Fetches initial delivery address and available delivery windows
3685 * - Used when user first enters checkout or refreshes the checkout page
3686 * - Returns delivery address (if available) and all available delivery windows for the zipcode
3687 *
3688 * **Step 2: Shipping Address Selection/Update**
3689 * - Updates selected shipping address and refreshes delivery windows
3690 * - Used when user selects a different address or adds a new address
3691 * - Returns updated delivery address and refreshed delivery windows for the new zipcode
3692 *
3693 * **Step 3: Change Delivery Window**
3694 * - Updates selected delivery window
3695 * - Used when user changes their delivery time slot selection
3696 * - Returns updated selected window and confirms the change
3697 *
3698 * **Step 4: Gift Order**
3699 * - Updates gift order information
3700 * - Used when user selects a gift order and provides a gift message
3701 * - Returns updated gift order information and gift message
3702 *
3703 * @example
3704 * ```typescript
3705 * // Step 1: Initial Checkout Load
3706 * const result = await loadOnePageCheckout({
3707 *   step: 1,
3708 * });
3709 * // Returns: deliveryAddress, deliveryWindows array
3710 *
3711 * // Step 2: Shipping Address Selection/Update
3712 * const result = await loadOnePageCheckout({
3713 *   step: 2,
3714 *   address,
3715 *   defaultAddress,
3716 *   saveAddress,
3717 * });
3718 * // Returns: updated deliveryAddress, refreshed deliveryWindows array
3719 *
3720 * // Step 3: Change Delivery Window
3721 * const result = await loadOnePageCheckout({
3722 *   step: 3,
3723 *   deliveryWindowId: 6
3724 * });
3725 * // Returns: updated selectedWindow
3726 *
3727 * // Step 4: Gift Order
3728 * const result = await loadOnePageCheckout({
3729 *   step: 4,
3730 *   isGiftOrder: true,
3731 *   giftMessage: 'Happy Birthday!',
3732 * });
3733 * // Returns: updated gift order information and gift message
3734 * ```
3735 */ const loadOnePageCheckout = (request)=>{
3736    const headers = (0,HeadersConfig/* buildHeaders */.us)(HeadersConfig/* cartIdHeader */.ZK, HeadersConfig/* zipCodeHeader */.U8);
3737    // Backend expects `step` as a query param: /cart/single/checkout?step=1|2|3
3738    const { step, ...body } = request;
3739    return api/* default */.ZP.post(RestEndpoints/* default */.Z.CHECKOUT.ONE_PAGE_CHECKOUT, body, {
3740        headers,
3741        params: {
3742            step
3743        }
3744    });
3745};
3746const loadOnePageCheckoutPickup = (request)=>{
3747    const headers = (0,HeadersConfig/* buildHeaders */.us)(HeadersConfig/* cartIdHeader */.ZK, HeadersConfig/* zipCodeHeader */.U8);
3748    // Backend expects `step` as a query param: /cart/single/checkout?step=1|2|3
3749    const { step, ...body } = request;
3750    const modifiedBody = {
3751        ...body
3752    };
3753    return api/* default */.ZP.post(RestEndpoints/* default */.Z.CHECKOUT.ONE_PAGE_CHECKOUT_PICKUP, modifiedBody, {
3754        headers,
3755        params: {
3756            step
3757        }
3758    });
3759};
3760
3761// EXTERNAL MODULE: ./src/lib/events.ts
3762var events = __webpack_require__(866067);
3763// EXTERNAL MODULE: ./src/lib/store/cartSlice.ts + 1 modules
3764var cartSlice = __webpack_require__(484725);
3765// EXTERNAL MODULE: ./src/lib/store/orderSubmit.slice.ts
3766var orderSubmit_slice = __webpack_require__(564449);
3767// EXTERNAL MODULE: ./src/lib/utils/reduxCommon.ts
3768var reduxCommon = __webpack_require__(675121);
3769// EXTERNAL MODULE: ./src/components/checkout/delivery/dbDeliveryDataTransformer.ts
3770var dbDeliveryDataTransformer = __webpack_require__(672311);
3771;// CONCATENATED MODULE: ./src/components/one-page-checkout/utils/createOnePageCheckoutHandlers.ts
3772
3773
3774
3775
3776
3777
3778
3779
3780const normalizeVerifiedAddress = (address)=>{
3781    if (!address) return undefined;
3782    return {
3783        id: address.id,
3784        firstName: address.firstName || "",
3785        lastName: address.lastName || "",
3786        phone: address.phone || "",
3787        address1: address.address1 || "",
3788        address2: address.address2 || "",
3789        city: address.city || "",
3790        state: address.state,
3791        postalCode: address.postalCode || "",
3792        country: address.country || "US",
3793        email: address.email || "",
3794        defaultAddress: Boolean(address.defaultAddress),
3795        deliveryInstruction: address.deliveryInstructions || "",
3796        isMilitaryAddress: Boolean(address.isMilitaryAddress),
3797        militaryAddrInstruction: address.militaryAddressInstruction || "",
3798        status: address.status
3799    };
3800};
3801const createOpcHandlersWithInventoryCheck = (param)=>{
3802    let { storeFulfillmentWithInventoryCheck, inventoryCheckForPickup } = param;
3803    return {
3804        initializeOnePageCheckout: async ()=>{
3805            const response = await loadOnePageCheckout({
3806                step: 1
3807            });
3808            const data = response.data;
3809            await storeFulfillmentWithInventoryCheck(data);
3810            return data;
3811        },
3812        saveShippingAddress: async (param)=>{
3813            let { address, defaultAddress, saveAddress } = param;
3814            const response = await loadOnePageCheckout({
3815                step: 2,
3816                address,
3817                defaultAddress,
3818                saveAddress
3819            });
3820            const data = response.data;
3821            await storeFulfillmentWithInventoryCheck(data);
3822            return data;
3823        },
3824        saveOnePageCheckoutPickupDetails: async (param)=>{
3825            let { latitude, longitude, distance, pickupDetails } = param;
3826            const response = await loadOnePageCheckoutPickup({
3827                step: 1,
3828                latitude,
3829                longitude,
3830                distance,
3831                pickupDetails
3832            });
3833            const data = response.data;
3834            await inventoryCheckForPickup(data);
3835            return data;
3836        }
3837    };
3838};
3839const createOpcHandlers = (param)=>{
3840    let { getDeliveryWindowSession, setDeliveryWindowSession } = param;
3841    return {
3842        verifyShippingAddress: async (param)=>{
3843            let { address } = param;
3844            try {
3845                var _response_data;
3846                const response = await (0,cart/* verifyShippingAddress */.R8)(address);
3847                return {
3848                    address: normalizeVerifiedAddress(response === null || response === void 0 ? void 0 : (_response_data = response.data) === null || _response_data === void 0 ? void 0 : _response_data.address)
3849                };
3850            } catch (error) {
3851                console.error("verifyShippingAddress error:", error);
3852                return {
3853                    address: undefined
3854                };
3855            }
3856        },
3857        transformDeliveryWindows: (rawWindows, languageCode)=>{
3858            return (0,dbDeliveryDataTransformer/* transformDbResponseForDeliveryPresentation */.Cw)(rawWindows, languageCode || "en-US");
3859        },
3860        initializeOnePageCheckoutPickup: async (param)=>{
3861            let { latitude, longitude, distance } = param;
3862            const response = await loadOnePageCheckoutPickup({
3863                step: 1,
3864                latitude,
3865                longitude,
3866                distance
3867            });
3868            return response.data;
3869        },
3870        updateDeliveryWindow: async (param)=>{
3871            let { deliveryWindowId } = param;
3872            const response = await loadOnePageCheckout({
3873                step: 3,
3874                deliveryWindowId: deliveryWindowId.toString()
3875            });
3876            return response.data;
3877        },
3878        submitBillingAddress: async (param)=>{
3879            let { billingAddressPayload } = param;
3880            try {
3881                const addBillingAddressResponse = await (0,cart/* addBillingAddress */.Y_)(billingAddressPayload);
3882                return addBillingAddressResponse;
3883            } catch (error) {
3884                throw error;
3885            }
3886        },
3887        cartCheckInventory: async ()=>{
3888            try {
3889                const dispatch = (0,reduxCommon/* getReduxDispatch */.yj)();
3890                await dispatch((0,cartSlice/* getCartItems */.fq)({
3891                    checkInventory: true
3892                }));
3893            } catch (error) {
3894                throw error;
3895            }
3896        },
3897        submitOrder: async (submitOrderPayload)=>{
3898            try {
3899                const response = await (0,checkoutApi/* submitOrder */.pm)(submitOrderPayload);
3900                if (response.data) {
3901                    const dispatch = (0,reduxCommon/* getReduxDispatch */.yj)();
3902                    dispatch((0,orderSubmit_slice/* setOrderSubmitResponse */.VN)(response.data));
3903                    // Preserve gift flag for confirmation analytics (parity with legacy checkout)
3904                    const giftMeta = getDeliveryWindowSession();
3905                    setDeliveryWindowSession({
3906                        ...response.data.deliveryWindow,
3907                        isAGift: giftMeta.isAGift,
3908                        giftMessage: giftMeta.giftMessage
3909                    });
3910                }
3911                return response === null || response === void 0 ? void 0 : response.data;
3912            } catch (error) {
3913                throw error;
3914            }
3915        },
3916        submitOrderGC: async (submitOrderGCPayload)=>{
3917            try {
3918                const response = await (0,checkoutApi/* submitOrderGC */.FL)(submitOrderGCPayload);
3919                return response === null || response === void 0 ? void 0 : response.data;
3920            } catch (error) {
3921                throw error;
3922            }
3923        },
3924        submitGiftOrderInformation: async (param)=>{
3925            let { isGiftOrder, giftMessage } = param;
3926            const response = await loadOnePageCheckout({
3927                step: 4,
3928                isGiftOrder,
3929                giftMessage: isGiftOrder ? giftMessage : ""
3930            });
3931            if (isGiftOrder) {
3932                setDeliveryWindowSession({
3933                    isAGift: true,
3934                    giftMessage
3935                });
3936            }
3937            return response.data;
3938        },
3939        addShippingAddress: async (param)=>{
3940            let { data, defaultAddress } = param;
3941            try {
3942                const dispatch = (0,reduxCommon/* getReduxDispatch */.yj)();
3943                const result = await dispatch((0,cartSlice/* addShippingAddress */.VE)({
3944                    data,
3945                    defaultAddress
3946                })).unwrap();
3947                return result;
3948            } catch (error) {
3949                throw error;
3950            }
3951        },
3952        onOrderSubmitFailed: ()=>
3952events/* default */.Z.emit(events/* OrderEventType */.v.ORDER_SUBMIT_FAILED)
3953    };
3954};
3955const createOnePageCheckoutHandlers = (param)=>{
3956    let { storeFulfillmentWithInventoryCheck, inventoryCheckForPickup, getDeliveryWindowSession, setDeliveryWindowSession } = param;
3957    return {
3958        ...createOpcHandlersWithInventoryCheck({
3959            storeFulfillmentWithInventoryCheck,
3960            inventoryCheckForPickup
3961        }),
3962        ...createOpcHandlers({
3963            getDeliveryWindowSession,
3964            setDeliveryWindowSession
3965        })
3966    };
3967};
3968
3969
3970/***/ }),
3971
3972/***/ 733972:
3973/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3974
3975"use strict";
3976/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3977/* harmony export */   t: function() { return /* binding */ CustomerContextProvider; }
3978/* harmony export */ });
3979/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
3980/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(93050);
3981/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_context__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wildfork_commercetools_core_ui_dist_src_lib_context__WEBPACK_IMPORTED_MODULE_1__);
3982/* harmony import */ var _Lib_hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(130414);
3983/* harmony import */ var _Lib_store_favoritesDataSlice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(702494);
3984/* harmony import */ var _Lib_store_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(267097);
3985
3986
3987
3988
3989
3990const CustomerContextProvider = (param)=>{
3991    let { children } = param;
3992    const { customerInfo, isMember, isLoggedIn, membershipType } = (0,_Lib_hooks__WEBPACK_IMPORTED_MODULE_2__/* .useCustomer */ .ON)();
3993    const hasFavorites = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppSelector */ .C)(_Lib_store_favoritesDataSlice__WEBPACK_IMPORTED_MODULE_3__/* .selectHasFavorites */ .mu);
3994    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_lib_context__WEBPACK_IMPORTED_MODULE_1__.CustomerContext.Provider, {
3995        value: {
3996            customerId: (customerInfo === null || customerInfo === void 0 ? void 0 : customerInfo.customerId) || "",
3997            email: customerInfo === null || customerInfo === void 0 ? void 0 : customerInfo.email,
3998            firstName: customerInfo === null || customerInfo === void 0 ? void 0 : customerInfo.firstName,
3999            lastName: (customerInfo === null || customerInfo === void 0 ? void 0 : customerInfo.lastName) || "",
4000            addressList: (customerInfo === null || customerInfo === void 0 ? void 0 : customerInfo.address) || [],
4001            isMember,
4002            isLoggedIn,
4003            membershipType,
4004            hasFavorites
4005        },
4006        children: children
4007    });
4008};
4009
4010
4011/***/ }),
4012
4013/***/ 792421:
4014/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4015
4016"use strict";
4017/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4018/* harmony export */   r: function() { return /* binding */ LocationContextProvider; }
4019/* harmony export */ });
4020/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
4021/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(667294);
4022/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(93050);
4023/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_context__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wildfork_commercetools_core_ui_dist_src_lib_context__WEBPACK_IMPORTED_MODULE_2__);
4024/* harmony import */ var _Lib_hooks_useZipCode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(455489);
4025/* harmony import */ var _Lib_store_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(267097);
4026/* harmony import */ var _Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(480326);
4027
4028
4029
4030
4031
4032
4033const LocationContextProvider = (param)=>{
4034    let { children } = param;
4035    var _storeDetails_stores_, _storeDetails_stores;
4036    const { zipcode } = (0,_Lib_hooks_useZipCode__WEBPACK_IMPORTED_MODULE_3__/* .useZipCode */ .lH)();
4037    const isGroundZipcode = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppSelector */ .C)(_Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_5__/* .isGroundZipcodeSelector */ .gF);
4038    const availability = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppSelector */ .C)(_Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_5__/* .isZipcodeValidForCartSelector */ .IF);
4039    const { regionId, regionIdMapped } = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppSelector */ .C)(_Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_5__/* .ZipCodeSelector */ .pz);
4040    const membershipEligible = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppSelector */ .C)(_Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_5__/* .membershipEligibleSelector */ .mq);
4041    const shippingTypes = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppSelector */ .C)(_Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_5__/* .selectShippingTypes */ .Mb);
4042    const { locale } = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppSelector */ .C)((state)=>state);
4043    const { pickUpAvailability, deliveryAvailability } = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppSelector */ .C)(_Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_5__/* .shippingAvailabilitySelector */ .Do);
4044    const storeDetails = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppSelector */ .C)(_Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_5__/* .storeDetailsSelector */ .W$);
4045    const isMembershipEligible = zipcode ? membershipEligible : false;
4046    var _storeDetails_stores__ebtEligible;
4047    const isStoreEligibleForEBT = (_storeDetails_stores__ebtEligible = storeDetails === null || storeDetails === void 0 ? void 0 : (_storeDetails_stores = storeDetails.stores) === null || _storeDetails_stores === void 0 ? void 0 : (_storeDetails_stores_ = _storeDetails_stores[0]) === null || _storeDetails_stores_ === void 0 ? void 0 : _storeDetails_stores_.ebtEligible) !== null && _storeDetails_stores__ebtEligible !== void 0 ? _storeDetails_stores__ebtEligible : false;
4048    const contextValue = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>({
4049            isZipCodeValidForCart: availability,
4050            membershipEligible: isMembershipEligible,
4051            regionId,
4052            regionIdMapped,
4053            zipcode,
4054            shippingTypes,
4055            locale,
4056            isGroundZipcode,
4057            pickUpAvailability,
4058            deliveryAvailability,
4059            storeDetails,
4060            isStoreEligibleForEBT
4061        }), [
4062        availability,
4063        zipcode,
4064        isMembershipEligible,
4065        regionId,
4066        regionIdMapped,
4067        shippingTypes,
4068        locale,
4069        isGroundZipcode,
4070        pickUpAvailability,
4071        deliveryAvailability,
4072        storeDetails,
4073        isStoreEligibleForEBT
4074    ]);
4075    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_lib_context__WEBPACK_IMPORTED_MODULE_2__.LocationContext.Provider, {
4076        value: contextValue,
4077        children: children
4078    });
4079};
4080
4081
4082/***/ }),
4083
4084/***/ 255821:
4085/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
4086
4087"use strict";
4088
4089// EXPORTS
4090__webpack_require__.d(__webpack_exports__, {
4091  G: function() { return /* binding */ OpcContextProvider; }
4092});
4093
4094// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
4095var jsx_runtime = __webpack_require__(785893);
4096// EXTERNAL MODULE: ./node_modules/react/index.js
4097var react = __webpack_require__(667294);
4098// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/context/index.js
4099var context = __webpack_require__(93050);
4100// EXTERNAL MODULE: ./src/components/checkout/modals/AddressVerificationModal.tsx
4101var AddressVerificationModal = __webpack_require__(722857);
4102// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/components/one-page-checkout/index.js
4103var one_page_checkout = __webpack_require__(879161);
4104// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/onePageCheckout/schemas/checkout/index.js
4105var checkout = __webpack_require__(579324);
4106;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/driverTipSelector/useTipSelector.ts
4107
4108
4109
4110
4111const useTipSelector = ()=>{
4112    const { setValue, watch, getValues, formState: { errors } } = (0,one_page_checkout/* useGetOpcFormValues */.BC)();
4113    const { onDriverTipChange, cart, isDriverTipApplicable } = (0,context.useCartContext)();
4114    const [showCustomInput, setShowCustomInput] = (0,react.useState)(false);
4115    const [isSelectedView, setIsSelectedView] = (0,react.useState)(false);
4116    var _watch;
4117    const tipAmount = (_watch = watch("tip")) !== null && _watch !== void 0 ? _watch : 0;
4118    const tipError = errors["tip"];
4119    const isCustomAmountInvalid = Boolean(tipError && Object.keys(tipError).length > 0);
4120    const showCustomInputForCustomAmount = (value)=>{
4121        const isTipAmountInPreset = checkout.TIP_PRESETS.some((presetAmount)=>presetAmount === Number(value));
4122        if (!isTipAmountInPreset) {
4123            setShowCustomInput(true);
4124        }
4125    };
4126    (0,react.useEffect)(function setInititalTipFromBETip() {
4127        var _cart_tipReceived;
4128        const initialDollars = ((_cart_tipReceived = cart.tipReceived) !== null && _cart_tipReceived !== void 0 ? _cart_tipReceived : 0) / 100;
4129        if (initialDollars === 0) {
4130            return;
4131        }
4132        setValue("tip", initialDollars);
4133        onDriverTipChange === null || onDriverTipChange === void 0 ? void 0 : onDriverTipChange(initialDollars);
4134        showCustomInputForCustomAmount(initialDollars);
4135    }, [
4136        cart.tipReceived,
4137        onDriverTipChange,
4138        setValue
4139    ]);
4140    const handlePresetSelect = (0,react.useCallback)((amount)=>{
4141        setValue("tip", amount);
4142        onDriverTipChange === null || onDriverTipChange === void 0 ? void 0 : onDriverTipChange(amount);
4143        setIsSelectedView(true);
4144        setShowCustomInput(false);
4145    }, [
4146        setValue,
4147        onDriverTipChange
4148    ]);
4149    const handleCustomClick = (0,react.useCallback)(()=>{
4150        setShowCustomInput(true);
4151    }, []);
4152    const applyCustomTip = (0,react.useCallback)(()=>{
4153        const customTipAmount = Number(getValues("tip"));
4154        onDriverTipChange === null || onDriverTipChange === void 0 ? void 0 : onDriverTipChange(customTipAmount);
4155        setShowCustomInput(false);
4156        setIsSelectedView(true);
4157    }, [
4158        getValues,
4159        onDriverTipChange
4160    ]);
4161    const handleChangeClick = (0,react.useCallback)(()=>{
4162        setIsSelectedView(false);
4163        showCustomInputForCustomAmount(tipAmount);
4164    }, [
4165        tipAmount
4166    ]);
4167    return {
4168        tipAmount: Number(tipAmount),
4169        showCustomInput,
4170        isSelectedView,
4171        isCustomAmountInvalid,
4172        handlePresetSelect,
4173        handleCustomClick,
4174        applyCustomTip,
4175        handleChangeClick,
4176        isDriverTipApplicable
4177    };
4178};
4179
4180;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/driverTipSelector/index.ts
4181
4182
4183// EXTERNAL MODULE: ./src/components/one-page-checkout/hooks/payment/index.ts + 29 modules
4184var payment = __webpack_require__(500031);
4185// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/components/one-page-checkout/AddressSection/utils/deliveryAddressUtils.js
4186var deliveryAddressUtils = __webpack_require__(236228);
4187// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/constants/locale.js
4188var locale = __webpack_require__(808439);
4189// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/onePageCheckout/utils/applyDeliveryWindowsFromApiResponse.js
4190var applyDeliveryWindowsFromApiResponse = __webpack_require__(746476);
4191// EXTERNAL MODULE: ./src/lib/store/hooks.ts
4192var hooks = __webpack_require__(267097);
4193// EXTERNAL MODULE: ./src/lib/store/onePageCheckoutPaymentSlice.ts
4194var onePageCheckoutPaymentSlice = __webpack_require__(412512);
4195;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/shippingAddressSection/useOpcInitialization.ts
4196
4197
4198
4199
4200
4201
4202
4203
4204const countryCode = locale.CURRENT_LOCALE === null || locale.CURRENT_LOCALE === void 0 ? void 0 : locale.CURRENT_LOCALE.countryShort;
4205function useOpcInitialization(param) {
4206    let { skip, handlers, setDeliveryCurrentView, setAddressFromFastlane } = param;
4207    const { setValue, fulfillmentType } = (0,one_page_checkout/* useGetOpcFormValues */.BC)();
4208    const { fastlaneConfig, isFastlaneEnabledWithConfig, isGuestFormSubmitted } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
4209    const { zipcode } = (0,context.useLocationContext)();
4210    const { isLoggedIn } = (0,context.useCustomerContext)();
4211    const { setOpcNewFulfillmentType } = (0,context.useUIStateContext)();
4212    const [isLoading, setIsLoading] = (0,react.useState)(!skip);
4213    const [error, setError] = (0,react.useState)(null);
4214    const isCheckoutFormShown = isLoggedIn || isGuestFormSubmitted;
4215    const initializeCheckoutDelivery = (0,react.useCallback)(async ()=>{
4216        setValue("fulfillmentType", "delivery");
4217        setOpcNewFulfillmentType("delivery");
4218        if (!isCheckoutFormShown) {
4219            return;
4220        }
4221        try {
4222            setError(null);
4223            setIsLoading(true);
4224            const result = await handlers.initializeOnePageCheckout();
4225            (0,deliveryAddressUtils/* initializeAddresses */.fm)(result === null || result === void 0 ? void 0 : result.address, result === null || result === void 0 ? void 0 : result.stores, isLoggedIn, setValue, setDeliveryCurrentView);
4226            (0,applyDeliveryWindowsFromApiResponse/* applyDeliveryWindowsFromApiResponse */.C)(result === null || result === void 0 ? void 0 : result.windows, handlers, setValue);
4227            if (result === null || result === void 0 ? void 0 : result.shippingFee) {
4228                setValue("shippingFee", result.shippingFee);
4229            }
4230            if (isFastlaneEnabledWithConfig) {
4231                var _fastlaneAuthData_profileData;
4232                const fastlaneAuthData = fastlaneConfig.fastlaneAuthData;
4233                if (fastlaneAuthData === null || fastlaneAuthData === void 0 ? void 0 : (_fastlaneAuthData_profileData = fastlaneAuthData.profileData) === null || _fastlaneAuthData_profileData === void 0 ? void 0 : _fastlaneAuthData_profileData.shippingAddress) {
4234                    await setAddressFromFastlane({
4235                        ...fastlaneAuthData.profileData.shippingAddress,
4236                        email: fastlaneConfig.guestUserEmail
4237                    });
4238                }
4239            }
4240        } catch (err) {
4241            const errorMessage = err instanceof Error ? err.message : "An unknown error occurred";
4242            setError(errorMessage);
4243            console.error("Error initializing one page checkout:", err);
4244        } finally{
4245            setIsLoading(false);
4246        }
4247    }, [
4248        setValue,
4249        setOpcNewFulfillmentType,
4250        isCheckoutFormShown,
4251        handlers,
4252        isLoggedIn,
4253        setDeliveryCurrentView,
4254        isFastlaneEnabledWithConfig,
4255        fastlaneConfig.fastlaneAuthData,
4256        fastlaneConfig.guestUserEmail,
4257        setAddressFromFastlane
4258    ]);
4259    const initializeCheckoutPickup = (0,react.useCallback)(async (initializeCheckoutPickupProps)=>{
4260        const { customZipcode, customDistance, loggedInCustomerPickupDetail
4260s, isSearchStore } = initializeCheckoutPickupProps || {};
4261        setValue("fulfillmentType", "pickup");
4262        setValue("useSameAsShipping", false);
4263        setOpcNewFulfillmentType("pickup");
4264        if (!isCheckoutFormShown) {
4265            setIsLoading(false);
4266            return;
4267        }
4268        if (isLoggedIn && !(loggedInCustomerPickupDetails || isSearchStore)) {
4269            setIsLoading(false);
4270            return;
4271        }
4272        const zipcodeQuery = customZipcode !== null && customZipcode !== void 0 ? customZipcode : zipcode;
4273        const distanceQuery = customDistance !== null && customDistance !== void 0 ? customDistance : "100";
4274        const isGoogleMapsLoaded =  true && Boolean(window.google);
4275        if (zipcodeQuery && isGoogleMapsLoaded) {
4276            setIsLoading(true);
4277            try {
4278                var _response_results, _response_results__geometry, _response_results_;
4279                const geocoder = new window.google.maps.Geocoder();
4280                const response = await geocoder.geocode({
4281                    address: "".concat(zipcodeQuery, ", ").concat(countryCode === null || countryCode === void 0 ? void 0 : countryCode.toUpperCase())
4282                });
4283                if (!(response === null || response === void 0 ? void 0 : (_response_results = response.results) === null || _response_results === void 0 ? void 0 : _response_results.length) || !((_response_results_ = response.results[0]) === null || _response_results_ === void 0 ? void 0 : (_response_results__geometry = _response_results_.geometry) === null || _response_results__geometry === void 0 ? void 0 : _response_results__geometry.location)) {
4284                    throw new Error("there were no results in google's geocode response");
4285                }
4286                const latitude = response.results[0].geometry.location.lat();
4287                const longitude = response.results[0].geometry.location.lng();
4288                let result;
4289                if (loggedInCustomerPickupDetails) {
4290                    result = await handlers.saveOnePageCheckoutPickupDetails({
4291                        latitude,
4292                        longitude,
4293                        pickupDetails: loggedInCustomerPickupDetails
4294                    });
4295                } else {
4296                    result = await handlers.initializeOnePageCheckoutPickup({
4297                        latitude,
4298                        longitude,
4299                        distance: distanceQuery
4300                    });
4301                }
4302                setValue("pickupStores", result === null || result === void 0 ? void 0 : result.stores);
4303                setValue("searchPickupStore.postalCode", zipcodeQuery);
4304                setValue("searchPickupStore.searchedPostalCode", zipcodeQuery);
4305                setValue("searchPickupStore.distance", distanceQuery);
4306                (0,applyDeliveryWindowsFromApiResponse/* applyDeliveryWindowsFromApiResponse */.C)(result === null || result === void 0 ? void 0 : result.windows, handlers, setValue);
4307            } catch (err) {
4308                console.error("initializeCheckoutPickup() in useOnePageCheckoutInitialization", err);
4309            } finally{
4310                setIsLoading(false);
4311            }
4312        }
4313    }, [
4314        handlers,
4315        isCheckoutFormShown,
4316        isLoggedIn,
4317        setOpcNewFulfillmentType,
4318        setValue,
4319        zipcode
4320    ]);
4321    const toggleSelectedDeliveryMethod = (0,react.useCallback)((newFulfillmentType)=>{
4322        if (fulfillmentType === newFulfillmentType) {
4323            return;
4324        }
4325        if (fulfillmentType === "delivery") {
4326            initializeCheckoutPickup();
4327        } else {
4328            initializeCheckoutDelivery();
4329        }
4330    }, [
4331        fulfillmentType,
4332        initializeCheckoutDelivery,
4333        initializeCheckoutPickup
4334    ]);
4335    return {
4336        isLoading,
4337        error,
4338        refetch: initializeCheckoutDelivery,
4339        initializeCheckoutDelivery,
4340        initializeCheckoutPickup,
4341        toggleSelectedDeliveryMethod,
4342        fulfillmentType
4343    };
4344}
4345
4346;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/shippingAddressSection/useShippingAddress.ts
4347
4348
4349
4350
4351
4352const useShippingAddress = (param)=>{
4353    let { initializeCheckoutDelivery, initializeCheckoutPickup } = param;
4354    const { onlyMembershipItemInTheCart, membershipItemInTheCart } = (0,context.useCartContext)();
4355    const skip = onlyMembershipItemInTheCart;
4356    const { pickUpAvailability, deliveryAvailability } = (0,context.useLocationContext)();
4357    const { isLoggedIn } = (0,context.useCustomerContext)();
4358    const { isGuestFormSubmitted } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
4359    const shouldShowCheckoutForm = isLoggedIn || isGuestFormSubmitted;
4360    const didInitRef = (0,react.useRef)(false);
4361    const { fulfillmentType } = (0,one_page_checkout/* useGetOpcFormValues */.BC)();
4362    (0,react.useEffect)(function initializeAddressForm() {
4363        if (skip || didInitRef.current || !shouldShowCheckoutForm) {
4364            return;
4365        }
4366        if (deliveryAvailability && fulfillmentType === "delivery") {
4367            initializeCheckoutDelivery();
4368            didInitRef.current = true;
4369        } else if (pickUpAvailability && fulfillmentType === "pickup") {
4370            initializeCheckoutPickup();
4371            didInitRef.current = true;
4372        } else if (deliveryAvailability) {
4373            initializeCheckoutDelivery();
4374            didInitRef.current = true;
4375        } else if (pickUpAvailability && !deliveryAvailability) {
4376            initializeCheckoutPickup();
4377            didInitRef.current = true;
4378        }
4379    }, [
4380        deliveryAvailability,
4381        fulfillmentType,
4382        initializeCheckoutDelivery,
4383        initializeCheckoutPickup,
4384        pickUpAvailability,
4385        shouldShowCheckoutForm,
4386        skip
4387    ]);
4388    return {
4389        membershipItemInTheCart,
4390        onlyMembershipItemInTheCart,
4391        fulfillmentType
4392    };
4393};
4394
4395// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/components/one-page-checkout/AddressSection/types/deliveryAddressSectionTypes.js
4396var deliveryAddressSectionTypes = __webpack_require__(480450);
4397// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/hooks/useBreakpoint.js
4398var useBreakpoint = __webpack_require__(730365);
4399// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/onePageCheckout/constants/address.js
4400var address = __webpack_require__(512733);
4401// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/onePageCheckout/schemas/checkout/shippingAddressSchema.js
4402var shippingAddressSchema = __webpack_require__(869375);
4403// EXTERNAL MODULE: ./src/api/customerApi.ts
4404var customerApi = __webpack_require__(164535);
4405// EXTERNAL MODULE: ./src/lib/utils/snackbarHandlers.ts
4406var snackbarHandlers = __webpack_require__(921134);
4407// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/onePageCheckout/utils/fastlaneAddressMapper.js
4408var fastlaneAddressMapper = __webpack_require__(51311);
4409;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/shippingAddressSection/deliveryAddressSection/useDeliveryFastlaneAddress.ts
4410
4411
4412
4413
4414
4415const useDeliveryFastlaneAddress = (param)=>{
4416    let { setCurrentView: setAddressSectionCurrentView, saveShippingAddress } = param;
4417    const { setValue } = (0,one_page_checkout/* useGetOpcFormValues */.BC)();
4418    const { fastlaneObj, fastlaneConfig } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
4419    const setAddressFromFastlane = (0,react.useCallback)(async (fastlaneAddress)=>{
4420        if (!fastlaneAddress) return;
4421        const mappedAddress = (0,fastlaneAddressMapper/* mapFastlaneAddressToShippingAddress */.C)({
4422            ...fastlaneAddress,
4423            email: fastlaneAddress.email || fastlaneConfig.guestUserEmail
4424        });
4425        setValue("shippingAddress", mappedAddress, {
4426            shouldValidate: true,
4427            shouldTouch: true
4428        });
4429        setValue("billingAddress", mappedAddress, {
4430            shouldValidate: true,
4431            shouldTouch: true
4432        });
4433        if (mappedAddress.firstName) {
4434            await saveShippingAddress(mappedAddress);
4435        }
4436        setAddressSectionCurrentView("selected");
4437    }, [
4438        fastlaneConfig,
4439        saveShippingAddress,
4440        setValue,
4441        setAddressSectionCurrentView
4442    ]);
4443    const changeAddressFastlane = (0,react.useCallback)(async ()=>{
4444        if (!(fastlaneObj === null || fastlaneObj === void 0 ? void 0 : fastlaneObj.showShippingAddressSelector)) {
4445            console.warn("[useFastlaneAddress] fastlaneObj is not initialized");
4446            return;
4447        }
4448        try {
4449            var _fastlaneObj_showShippingAddressSelector, _fastlaneConfig_fastlaneAuthData;
4450            const { selectedAddress, selectionChanged } = await (fastlaneObj === null || fastlaneObj === void 0 ? void 0 : (_fastlaneObj_showShippingAddressSelector = fastlaneObj.showShippingAddressSelector) === null || _fastlaneObj_showShippingAddressSelector === void 0 ? void 0 : _fastlaneObj_showShippingAddressSelector.call(fastlaneObj));
4451            if (!selectedAddress || Object.keys(selectedAddress).length === 0) {
4452                console.error("No address selected");
4453                return;
4454            }
4455            setAddressFromFastlane(selectedAddress);
4456            if (selectionChanged && (fastlaneConfig === null || fastlaneConfig === void 0 ? void 0 : (_fastlaneConfig_fastlaneAuthData = fastlaneConfig.fastlaneAuthData) === null || _fastlaneConfig_fastlaneAuthData === void 0 ? void 0 : _fastlaneConfig_fastlaneAuthData.profileData)) {
4457                fastlaneConfig.fastlaneAuthData.profileData.shippingAddress = selectedAddress;
4458                fastlaneConfig.selectionChanged = selectionChanged;
4459            }
4460        } catch (error) {
4461            console.error("[useFastlaneAddress] Error showing address selector:", error);
4462        }
4463    }, [
4464        fastlaneConfig,
4465        fastlaneObj,
4466        setAddressFromFastlane
4467    ]);
4468    return {
4469        setAddressFromFastlane,
4470        changeAddressFastlane
4471    };
4472};
4473
4474;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/shippingAddressSection/deliveryAddressSection/useDeliveryAddressSection.ts
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489const useDeliveryAddressSection = (param)=>{
4490    let { handlers } = param;
4491    const { setValue, getValues, watch, resetField } = (0,one_page_checkout/* useGetOpcFormValues */.BC)();
4492    const { isLoggedIn, email: customerEmail } = (0,context.useCustomerContext)();
4493    const { isMobileWidth }
4493 = (0,useBreakpoint.useBreakpoint)();
4494    const selectedAddressId = watch("selectedAddressId");
4495    const isNewAddress = watch("isNewAddress");
4496    const shippingAddress = watch("shippingAddress");
4497    const watchedSavedAddresses = watch("savedAddresses");
4498    const savedAddresses = (0,react.useMemo)(()=>(0,deliveryAddressUtils/* ensureAddressIds */.A$)(watchedSavedAddresses !== null && watchedSavedAddresses !== void 0 ? watchedSavedAddresses : []), [
4499        watchedSavedAddresses
4500    ]);
4501    const [isLoading, setIsLoading] = (0,react.useState)(false);
4502    const [editingAddressId, setEditingAddressId] = (0,react.useState)(null);
4503    const [addressIdToDelete, setAddressIdToDelete] = (0,react.useState)(null);
4504    const [isDeletingAddress, setIsDeletingAddress] = (0,react.useState)(false);
4505    const [mobileOverlaySelectedAddressId, setMobileOverlaySelectedAddressId] = (0,react.useState)(()=>selectedAddressId);
4506    const [notDeliverablePostalCode, setNotDeliverablePostalCode] = (0,react.useState)(null);
4507    (0,react.useEffect)(()=>{
4508        setMobileOverlaySelectedAddressId(selectedAddressId);
4509    }, [
4510        selectedAddressId
4511    ]);
4512    const closeNotDeliverableModal = (0,react.useCallback)(()=>{
4513        setNotDeliverablePostalCode(null);
4514        setIsLoading(false);
4515    }, []);
4516    const isEditing = editingAddressId !== null || isNewAddress;
4517    const selectedAddress = (0,react.useMemo)(()=>{
4518        if (selectedAddressId) {
4519            var _savedAddresses_find, _ref;
4520            return (_ref = (_savedAddresses_find = savedAddresses.find((a)=>a.id === selectedAddressId)) !== null && _savedAddresses_find !== void 0 ? _savedAddresses_find : shippingAddress) !== null && _ref !== void 0 ? _ref : null;
4521        }
4522        return shippingAddress || null;
4523    }, [
4524        selectedAddressId,
4525        shippingAddress,
4526        savedAddresses
4527    ]);
4528    const [currentView, setCurrentView] = (0,react.useState)(()=>{
4529        const hasSavedAddresses = savedAddresses.length > 0;
4530        const hasSelectedAddress = Boolean(selectedAddressId);
4531        if (hasSelectedAddress) return deliveryAddressSectionTypes.ADDRESS_VIEW.SELECTED;
4532        if (!isLoggedIn || !hasSavedAddresses) return deliveryAddressSectionTypes.ADDRESS_VIEW.FORM;
4533        return deliveryAddressSectionTypes.ADDRESS_VIEW.LIST;
4534    });
4535    const { isFastlaneEnabledWithConfig } = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
4536    const editAddress = (0,react.useCallback)((addressId)=>{
4537        setEditingAddressId(addressId);
4538        const address = savedAddresses.find((a)=>a.id === addressId);
4539        if (address) {
4540            setValue("shippingAddress", address);
4541            setValue("isNewAddress", false);
4542        }
4543        const isMilitaryAddress = getValues("shippingAddress.isMilitaryAddress");
4544        shippingAddressSchema.SHIPPING_ADDRESS_ALL_FIELDS.forEach((field)=>{
4545            const fieldName = "shippingAddress.".concat(field);
4546            if (fieldName === "shippingAddress.militaryAddrInstruction" && !isMilitaryAddress) {
4547                return;
4548            }
4549            setValue(fieldName, getValues(fieldName), {
4550                shouldTouch: true
4551            });
4552        });
4553    }, [
4554        getValues,
4555        savedAddresses,
4556        setValue
4557    ]);
4558    const addNewAddress = (0,react.useCallback)(()=>{
4559        setValue("isNewAddress", true);
4560        setValue("selectedAddressId", undefined);
4561        setValue("shippingAddress", address.EMPTY_SHIPPING_ADDRESS);
4562        setValue("shippingAddress.email", customerEmail, {
4563            shouldTouch: true
4564        });
4565        setEditingAddressId(null);
4566        shippingAddressSchema.SHIPPING_ADDRESS_ALL_FIELDS.forEach((field)=>{
4567            const fieldName = "shippingAddress.".concat(field);
4568            resetField(fieldName, {
4569                defaultValue: getValues(fieldName)
4570            });
4571        });
4572    }, [
4573        customerEmail,
4574        getValues,
4575        resetField,
4576        setValue
4577    ]);
4578    const resetToSelectedView = (0,react.useCallback)((address, addressesToSave)=>{
4579        setEditingAddressId(null);
4580        setValue("isNewAddress", false);
4581        if (address) {
4582            setValue("shippingAddress", address);
4583            var _address_id;
4584            setValue("selectedAddressId", (_address_id = address.id) !== null && _address_id !== void 0 ? _address_id : undefined);
4585            var _address_id1;
4586            setMobileOverlaySelectedAddressId((_address_id1 = address.id) !== null && _address_id1 !== void 0 ? _address_id1 : undefined);
4587        }
4588        if (isLoggedIn && addressesToSave) {
4589            setValue("savedAddresses", addressesToSave);
4590        }
4591        setCurrentView(deliveryAddressSectionTypes.ADDRESS_VIEW.SELECTED);
4592    }, [
4593        setValue,
4594        isLoggedIn
4595    ]);
4596    const applyAddressResponseFromApi = (0,react.useCallback)((response)=>{
4597        if (!response) return;
4598        (0,applyDeliveryWindowsFromApiResponse/* applyDeliveryWindowsFromApiResponse */.C)(response.windows, handlers, setValue);
4599        var _response_stores;
4600        setValue("fulfillmentStores", (_response_stores = response === null || response === void 0 ? void 0 : response.stores) !== null && _response_stores !== void 0 ? _response_stores : []);
4601        const addressFromResponse = response.address;
4602        if (!Array.isArray(addressFromResponse) || addressFromResponse.length === 0) {
4603            return;
4604        }
4605        const rawList = addressFromResponse;
4606        const selectedIndex = rawList.findIndex((a)=>a.selected === true);
4607        const stripped = rawList.map((a)=>{
4608            const { selected: _sel, ...rest } = a;
4609            return rest;
4610        });
4611        const normalizedAddresses = (0,deliveryAddressUtils/* ensureAddressIds */.A$)(stripped);
4612        var _normalizedAddresses_find;
4613        const addressToSelect = selectedIndex >= 0 ? normalizedAddresses[selectedIndex] : (_normalizedAddresses_find = normalizedAddresses.find((a)=>a.id === selectedAddressId)) !== null && _normalizedAddresses_find !== void 0 ? _normalizedAddresses_find : normalizedAddresses[0];
4614        resetToSelectedView(addressToSelect, normalizedAddresses);
4615    }, [
4616        handlers,
4617        resetToSelectedView,
4618        selectedAddressId,
4619        setValue
4620    ]);
4621    const handleSaveShippingAddressApiError = (0,react.useCallback)((postalCode)=>setNotDeliverablePostalCode(postalCode), []);
4622    const saveShippingAddress = (0,react.useCallback)(async (shippingAddressArg)=>{
4623        const apiShippingAddress = shippingAddressArg ? shippingAddressArg : shippingAddress;
4624        if (!apiShippingAddress) {
4625            return;
4626        }
4627        setIsLoading(true);
4628        if (apiShippingAddress.id && /^addr-\d+$/.test(String(apiShippingAddress.id))) {
4629            delete apiShippingAddress.id;
4630        }
4631        const { defaultAddress, saveAddress, ...addressPayload } = apiShippingAddress;
4632        const isMilitaryAddress = Boolean(addressPayload.isMilitaryAddress);
4633        const normalizedAddressPayload = {
4634            ...addressPayload,
4635            isMilitaryAddress,
4636            militaryAddrInstruction: isMilitaryAddress ? addressPayload.militaryAddrInstruction || "" : ""
4637        };
4638        try {
4639            const response = await handlers.saveShippingAddress({
4640                address: normalizedAddressPayload,
4641                defaultAddress: defaultAddress !== null && defaultAddress !== void 0 ? defaultAddress : false,
4642                saveAddress: isLoggedIn ? true : false
4643            });
4644            applyAddressResponseFromApi(response);
4645            setIsLoading(false);
4646        } catch (e) {
4647            const postalCode = apiShippingAddress.postalCode;
4648            handleSaveShippingAddressApiError(postalCode);
4649        }
4650    }, [
4651        shippingAddress,
4652        handlers,
4653        isLoggedIn,
4654        applyAddressResponseFromApi,
4655        handleSaveShippingAddressApiError
4656    ]);
4657    const { setAddressFromFastlane, changeAddressFastlane } = useDeliveryFastlaneAddress({
4658        setCurrentView,
4659        saveShippingAddress
4660    });
4661    const changeAddress = (0,react.useCallback)(()=>{
4662        if (isFastlaneEnabledWithConfig) {
4663            changeAddressFastlane();
4664            return;
4665        }
4666        if (isLoggedIn) {
4667            setMobileOverlaySelectedAddressId(selectedAddressId);
4668            setCurrentView(deliveryAddressSectionTypes.ADDRESS_VIEW.LIST);
4669        } else {
4670            setCurrentView(deliveryAddressSectionTypes.ADDRESS_VIEW.FORM);
4671        }
4672    }, [
4673        isFastlaneEnabledWithConfig,
4674        isLoggedIn,
4675        changeAddressFastlane,
4676        selectedAddressId
4677    ]);
4678    const clearShippingSelectionAfterDifferentZip = (0,react.useCallback)(()=>{
4679        setValue("fulfillmentStores", []);
4680        setValue("selectedAddressId", undefined);
4681        setMobileOverlaySelectedAddressId(undefined);
4682        setEditingAddressId(null);
4683        if (isLoggedIn && savedAddresses.length > 0) {
4684            setCurrentView(deliveryAddressSectionTypes.ADDRESS_VIEW.LIST);
4685        } else {
4686            setValue("shippingAddress", address.EMPTY_SHIPPING_ADDRESS);
4687            setValue("isNewAddress", true);
4688            setCurrentView(deliveryAddressSectionTypes.ADDRESS_VIEW.FORM);
4689        }
4690    }, [
4691        isLoggedIn,
4692        savedAddresses.length,
4693        setValue
4694    ]);
4695    const cancelAddressModal = ()=>{
4696        setEditingAddressId(null);
4697        setValue("isNewAddress", false);
4698    };
4699    const selectAddress = (0,react.useCallback)(async (addressId)=>{
4700        const address = savedAddresses.find((a)=>a.id === addressId);
4701        if (address) {
4702            var _address_address2, _address_email;
4703            const addressToSave = {
4704                ...address,
4705                address2: (_address_address2 = address.address2) !== null && _address_address2 !== void 0 ? _address_address2 : "",
4706                email: (_address_email = address.email) !== null && _address_email !== void 0 ? _address_email : ""
4707            };
4708            if (addressToSave.id && /^addr-\d+$/.test(String(addressToSave.id))) {
4709                delete addressToSave.id;
4710            }
4711            const { defaultAddress, saveAddress, ...addressPayload } = addressToSave;
4712            setIsLoading(true);
4713            try {
4714                const response = await handlers.saveShippingAddress({
4715                    address: addressPayload,
4716                    defaultAddress: defaultAddress !== null && defaultAddress !== void 0 ? defaultAddress : false,
4717                    saveAddress: true
4718                });
4719                setEditingAddressId(null);
4720                applyAddressResponseFromApi(response);
4721                setIsLoading(false);
4722            } catch (e) {
4723                const postalCode = addressToSave.postalCode;
4724                handleSaveShippingAddressApiError(postalCode);
4725                setNotDeliverablePostalCode(postalCode);
4726            }
4727        }
4728    }, [
4729        savedAddresses,
4730        handlers,
4731        applyAddressResponseFromApi,
4732        handleSaveShippingAddressApiError
4733    ]);
4734    const handleAddressSelect = (0,react.useCallback)((addressId)=>{
4735        if (isMobileWidth) {
4736            setMobileOverlaySelectedAddressId(addressId);
4737            return;
4738        }
4739        void selectAddress(addressId);
4740    }, [
4741        isMobileWidth,
4742        selectAddress
4743    ]);
4744    const selectedListAddressId = isMobileWidth ? mobileOverlaySelectedAddressId : selectedAddressId;
4745    const selectAddressFromMobileOverlay = (0,react.useCallback)(async ()=>{
4746        if (!mobileOverlaySelectedAddressId) {
4747            return;
4748        }
4749        if (mobileOverlaySelectedAddressId !== selectedAddressId) {
4750            await selectAddress(mobileOverlaySelectedAddressId);
4751            return;
4752        }
4753        setCurrentView(deliveryAddressSectionTypes.ADDRESS_VIEW.SELECTED);
4754    }, [
4755        mobileOverlaySelectedAddressId,
4756        selectAddress,
4757        selectedAddressId
4758    ]);
4759    const initiateDeleteAddress = (0,react.useCallback)((addressId)=>{
4760        setAddressIdToDelete(addressId);
4761    }, []);
4762    const cancelDeleteAddress = (0,react.useCallback)(()=>{
4763        setAddressIdToDelete(null);
4764    }, []);
4765    const confirmDeleteAddress = (0,react.useCallback)(async ()=>{
4766        if (!addressIdToDelete || isDeletingAddress) {
4767            return;
4768        }
4769        setIsDeletingAddress(true);
4770        try {
4771            await (0,customerApi/* deleteCustomerAddress */.VR)(addressIdToDelete, true);
4772            const remainingAddresses = savedAddresses.filter((address)=>address.id !== addressIdToDelete);
4773            setValue("savedAddresses", remainingAddresses);
4774            if (selectedAddressId === addressIdToDelete) {
4775                setValue("selectedAddressId", undefined);
4776            }
4777            if (mobileOverlaySelectedAddressId === addressIdToDelete) {
4778                setMobileOverlaySelectedAddressId(undefined);
4779            }
4780            setCurrentView(remainingAddresses.length > 0 ? deliveryAddressSectionTypes.ADDRESS_VIEW.LIST : deliveryAddressSectionTypes.ADDRESS_VIEW.FORM);
4781        } catch (error) {
4782            (0,snackbarHandlers/* axiosErrorHandler */.ri)({
4783                error
4784            });
4785        } finally{
4786            setIsDeletingAddress(false);
4787            setAddressIdToDelete(null);
4788        }
4789    }, [
4790        addressIdToDelete,
4791        isDeletingAddress,
4792        mobileOverlaySelectedAddressId,
4793        savedAddresses,
4794        selectedAddressId,
4795        setValue
4796    ]);
4797    const getStoreDetailsAndZipcode = (0,react.useCallback)(async ()=>{
4798        var _getValues;
4799        const fulfillmentStores = getValues("fulfillmentStores");
4800        const storeDetails = fulfillmentStores === null || fulfillmentStores === void 0 ? void 0 : fulfillmentStores[0];
4801        const zipcode = (_getValues = getValues("shippingAddress")) === null || _getValues === void 0 ? void 0 : _getValues.postalCode;
4802        return {
4803            storeDetails,
4804            zipcode
4805        };
4806    }, [
4807        getValues
4808    ]);
4809    return {
4810        savedAddresses,
4811        isLoading,
4812        selectedAddress,
4813        isEditing,
4814        editingAddressId,
4815        addressIdToDelete,
4816        isDeletingAddress,
4817        isNewAddress,
4818        selectedAddressId,
4819        mobileOverlaySelectedAddressId,
4820        selectedListAddressId,
4821        currentView,
4822        setCurrentView,
4823        selectAddress,
4824        handleAddressSelect,
4825        selectAddressFromMobileOverlay,
4826        initiateDeleteAddress,
4827        cancelDeleteAddress,
4828        confirmDeleteAddress,
4829        changeAddress,
4830        editAddress,
4831        addNewAddress,
4832        resetToSelectedView,
4833        saveShippingAddress,
4834        notDeliverablePostalCode,
4835        closeNotDeliverableModal,
4836        clearShippingSelectionAfterDifferentZip,
4837        getStoreDetailsAndZipcode,
4838        setAddressFromFastlane,
4839        changeAddressFastlane,
4840        cancelAddressModal,
4841        setIsLoading
4842    };
4843};
4844
4845;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/shippingAddressSection/deliveryAddressSection/index.ts
4846
4847
4848// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/components/one-page-checkout/AddressSection/constants/index.js
4849var constants = __webpack_require__(291650);
4850// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/components/one-page-checkout/AddressSection/utils/index.js
4851var utils = __webpack_require__(782330);
4852// EXTERNAL MODULE: ./src/lib/store/cartSlice.ts + 1 modules
4853var cartSlice = __webpack_require__(484725);
4854;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/shippingAddressSection/pickupAddressSection/usePickupMap.ts
4855
4856
4857
4858
4859const usePickupMap = (param)=>{
4860    let { selectedStore } = param;
4861    const { setValue, watch } = (0,one_page_checkout/* useGetOpcFormValues */.BC)();
4862    var _watch;
4863    const pickupStores = (_watch = watch("pickupStores")) !== null && _watch !== void 0 ? _watch : [];
4864    const distance = watch("searchPickupStore.distance");
4865    const selectStore = (0,react.useCallback)((storeId, options)=>{
4866        var _options_scrollIntoView;
4867        const shouldScrollIntoView = (_options_scrollIntoView = options === null || options === void 0 ? void 0 : options.scrollIntoView) !== null && _options_scrollIntoView !== void 0 ? _options_scrollIntoView : false;
4868        const nextPickupStores = pickupStores.map((store)=>({
4869                ...store,
4870                selected: store.id === storeId
4871            }));
4872        setValue("pickupStores", nextPickupStores, {
4873            shouldDirty: options === null || options === void 0 ? void 0 : options.shouldDirty
4874        });
4875        if (shouldScrollIntoView) {
4876            requestAnimationFrame(()=>{
4877                var _document_getElementById;
4878                (_document_getElementById = document.getElementById((0,utils.getPickupStoreListItemId)(storeId))) === null || _document_getElementById === void 0 ? void 0 : _document_getElementById.scrollIntoView({
4879                    behavior: "smooth",
4880                    block: "nearest"
4881                });
4882            });
4883        }
4884    }, [
4885        pickupStores,
4886        setValue
4887    ]);
4888    const locations = (0,react.useMemo)(()=>pickupStores.reduce((result, store)=>{
4889            const lat = Number(store.location.latitude);
4890            const lng = Number(store.location.longitude);
4891            result.push({
4892                id: store.id,
4893                lat,
4894                lng
4895            });
4896            return result;
4897        }, []), [
4898        pickupStores
4899    ]);
4900    const center = (0,react.useMemo)(()=>{
4901        if (!selectedStore) {
4902            var _locations_;
4903            return (_locations_ = locations[0]) !== null && _locations_ !== void 0 ? _locations_ : null;
4904        }
4905        var _locations_find, _ref;
4906        return (_ref = (_locations_find = locations.find((location)=>location.id === selectedStore.id)) !== null && _locations_find !== void 0 ? _locations_find : locations[0]) !== null && _ref !== void 0 ? _ref : null;
4907    }, [
4908        locations,
4909        selectedStore
4910    ]);
4911    var _MAP_ZOOM_BY_DISTANCE_distance;
4912    const mapZoom = distance ? (_MAP_ZOOM_BY_DISTANCE_distance = constants.MAP_ZOOM_BY_DISTANCE[distance]) !== null && _MAP_ZOOM_BY_DISTANCE_distance !== void 0 ? _MAP_ZOOM_BY_DISTANCE_distance : 10 : 10;
4913    return {
4914        locations,
4915        center,
4916        mapZoom,
4917        selectStore
4918    };
4919};
4920
4921// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/onePageCheckout/schemas/checkout/pickupAddressSchema.js
4922var pickupAddressSchema = __webpack_require__(323839);
4923;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/shippingAddressSection/pickupAddressSection/useSelfPickup.ts
4924
4925
4926
4927
4928
4929
4930const useSelfPickup = (param)=>{
4931    let { submitInitialPickupFormForLoggedIn, submitPickupAddressForm, currentView } = param;
4932    var _customer_addressList;
4933    const isSelfPickupSubmitInitialDetailsDone = (0,react.useRef)(false);
4934    const { setValue, trigger, getValues, watch } = (0,one_page_checkout/* useGetOpcFormValues */.BC)();
4935    const fulfillmentType = watch("fulfillmentType");
4936    const { pickUpAvailability, deliveryAvailability } = (0,context.useLocationContext)();
4937    const customer = (0,context.useCustomerContext)();
4938    const hasAddress = (0,react.useMemo)(()=>{
4939        var _customer_addressList;
4940        return !!(customer === null || customer === void 0 ? void 0 : (_customer_addressList = customer.addressList) === null || _customer_addressList === void 0 ? void 0 : _customer_addressList.length);
4941    }, [
4942        customer === null || customer === void 0 ? void 0 : (_customer_addressList = customer.addressList) === null || _customer_addressList === void 0 ? void 0 : _customer_addressList.length
4943    ]);
4944    const isShowSelfPickupCheckbox = hasAddress && customer.isLoggedIn;
4945    const setCustomDefaultAddressAsPickupAddress = (0,react.useCallback)(()=>{
4946        const defaultAddressPhoneNumber = (0,utils.getDefaultAddressPhoneNumber)(customer.addressList);
4947        const pickupAddress = {
4948            firstName: customer.firstName,
4949            lastName: customer.lastName,
4950            email: customer.email,
4951            phone: defaultAddressPhoneNumber,
4952            isSelfPickup: true
4953        };
4954        setValue("pickupAddress", pickupAddress);
4955        setValue("savedPickupAddress", pickupAddress);
4956        return {
4957            pickupAddress
4958        };
4959    }, [
4960        customer.addressList,
4961        customer.email,
4962        customer.firstName,
4963        customer.lastName,
4964        setValue
4965    ]);
4966    (0,react.useEffect)(()=>{
4967        const isPickupSelected = pickUpAvailability && (fulfillmentType === "pickup" || !deliveryAvailability);
4968        if (!isSelfPickupSubmitInitialDetailsDone.current && isPickupSelected && isShowSelfPickupCheckbox) {
4969            setValue("pickupAddress.isSelfPickup", true);
4970            isSelfPickupSubmitInitialDetailsDone.current = true;
4971            const { pickupAddress } = setCustomDefaultAddressAsPickupAddress();
4972            submitInitialPickupFormForLoggedIn(pickupAddress);
4973        }
4974    }, [
4975        submitInitialPickupFormForLoggedIn,
4976        setValue,
4977        fulfillmentType,
4978        pickUpAvailability,
4979        deliveryAvailability,
4980        isShowSelfPickupCheckbox,
4981        setCustomDefaultAddressAsPickupAddress
4982    ]);
4983    const verifyAndTouchAllFieldsForSelfPickup = (0,react.useCallback)(()=>{
4984        pickupAddressSchema.PICKUP_ADDRESS_ALL_FIELDS.forEach((field)=>{
4985            const fieldName = "pickupAddress.".concat(field);
4986            setValue(fieldName, getValues(fieldName), {
4987                shouldTouch: true
4988            });
4989        });
4990        trigger("pickupAddress");
4991    }, [
4992        getValues,
4993        setValue,
4994        trigger
4995    ]);
4996    const onSelfPickupCheckboxClick = (0,react.useCallback)((checkedState)=>{
4997        if (checkedState === false) {
4998            verifyAndTouchAllFieldsForSelfPickup();
4999            return;
5000        }
5001        setCustomDefaultAddressAsPickupAddress();
5002        if (currentView === constants.PICKUP_ADDRESS_VIEW.SELECTED) {
5003            submitPickupAddressForm();
5004        }
5005    }, [
5006        currentView,
5007        setCustomDefaultAddressAsPickupAddress,
5008        submitPickupAddressForm,
5009        verifyAndTouchAllFieldsForSelfPickup
5010    ]);
5011    return {
5012        onSelfPickupCheckboxClick,
5013        isShowSelfPickupCheckbox,
5014        verifyAndTouchAllFieldsForSelfPickup
5015    };
5016};
5017
5018;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/shippingAddressSection/pickupAddressSection/useSubmitPickupForm.ts
5019
5020
5021
5022
5023
5024const useSubmitPickupForm = (param)=>{
5025    let { selectedStore, currentView, setCurrentView, handlers, initializeCheckoutPickup } = param;
5026    const [isSubmittingPickupDetails, setIsSubmittingPickupDetails] = (0,react.useState)(false);
5027    const { getValues, setValue } = (0,one_page_checkout/* useGetOpcFormValues */.BC)();
5028    const submitPickupAddressForm = (0,react.useCallback)(async ()=>{
5029        try {
5030            if (currentView === constants.PICKUP_ADDRESS_VIEW.STORE_LIST) {
5031                setCurrentView(constants.PICKUP_ADDRESS_VIEW.LOADING);
5032            }
5033            setIsSubmittingPickupDetails(true);
5034            const pickupAddress = getValues("pickupAddress");
5035            const pickupAddressRequestDetails = (0,utils.getPickupAddressRequestDetails)(pickupAddress);
5036            const response = await handlers.saveOnePageCheckoutPickupDetails({
5037                latitude: selectedStore.location.latitude,
5038                longitude: selectedStore.location.longitude,
5039                pickupDetails: pickupAddressRequestDetails
5040            });
5041            setValue("searchPickupStore.searchedPostalCode", selectedStore.address.postalCode);
5042            setValue("searchPickupStore.postalCode", selectedStore.address.postalCode);
5043            setValue("pickupStores", response === null || response === void 0 ? void 0 : response.stores);
5044            (0,applyDeliveryWindowsFromApiResponse/* applyDeliveryWindowsFromApiResponse */.C)(response === null || response === void 0 ? void 0 : response.windows, handlers, setValue);
5045            setValue("savedPickupAddress", pickupAddress);
5046            setCurrentView(constants.PICKUP_ADDRESS_VIEW.SELECTED);
5047            setIsSubmittingPickupDetails(false);
5048        } catch (e) {}
5049    }, [
5050        currentView,
5051        getValues,
5052        handlers,
5053        selectedStore === null || selectedStore === void 0 ? void 0 : selectedStore.address.postalCode,
5054        selectedStore === null || selectedStore === void 0 ? void 0 : selectedStore.location.latitude,
5055        selectedStore === null || selectedStore === void 0 ? void 0 : selectedStore.location.longitude,
5056        setCurrentView,
5057        setValue
5058    ]);
5059    const submitInitialPickupFormForLoggedIn = (0,react.useCallback)(async (pickupAddress)=>{
5060        const pickupAddressRequestDetails = (0,utils.getPickupAddressRequestDetails)(pickupAddress);
5061        initializeCheckoutPickup({
5062            loggedInCustomerPickupDetails: pickupAddressRequestDetails
5063        });
5064    }, [
5065        initializeCheckoutPickup
5066    ]);
5067    return {
5068        submitPickupAddressForm,
5069        submitInitialPickupFormForLoggedIn,
5070        isSubmittingPickupDetails
5071    };
5072};
5073
5074;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/shippingAddressSection/pickupAddressSection/usePickupAddressSection.ts
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084const usePickupAddressSection = (param)=>{
5085    let { handlers, initializeCheckoutPickup } = param;
5086    const dispatch = (0,hooks/* useAppDispatch */.T)();
5087    const { setValue, watch } = (0,one_page_checkout/* useGetOpcFormValues */.BC)();
5088    const watchedPickupStores = watch("pickupStores");
5089    const pickupStores = (0,react.useMemo)(()=>watchedPickupStores !== null && watchedPickupStores !== void 0 ? watchedPickupStores : [], [
5090        watchedPickupStores
5091    ]);
5092    const isSelfPickup = watch("pickupAddress.isSelfPickup");
5093    const savedPickupAddress = watch("savedPickupAddress");
5094    const pickupAddress = watch("pickupAddress");
5095    var _watch;
5096    const zipInputField = (_watch = watch("searchPickupStore.postalCode")) !== null && _watch !== void 0 ? _watch : "";
5097    var _watch1;
5098    const searchedZipcode = (_watch1 = watch("searchPickupStore.searchedPostalCode")) !== null && _watch1 !== void 0 ? _watch1 : "";
5099    const isPickupAddressSaved = (0,utils.isPickupAddressSameAsSaved)(pickupAddress, savedPickupAddress);
5100    const [currentView, setCurrentView] = (0,react.useState)(constants.PICKUP_ADDRESS_VIEW.SELECTED);
5101    const selectedStore = (0,react.useMemo)(()=>{
5102        var _pickupStores_find, _ref;
5103        return (_ref = (_pickupStores_find = pickupStores.find((store)=>store.selected)) !== null && _pickupStores_find !== void 0 ? _pickupStores_find : pickupStores[0]) !== null && _ref !== void 0 ? _ref : null;
5104    }, [
5105        pickupStores
5106    ]);
5107    (0,react.useEffect)(()=>{
5108        if (selectedStore) {
5109            // Todo: Fix this type error
5110            dispatch((0,cartSlice/* setSelectedStore */.rp)(selectedStore));
5111        }
5112    }, [
5113        dispatch,
5114        selectedStore
5115    ]);
5116    const { locations, center, mapZoom, selectStore } = usePickupMap({
5117        selectedStore
5118    });
5119    const { submitPickupAddressForm, isSubmittingPickupDetails, submitInitialPickupFormForLoggedIn } = useSubmitPickupForm({
5120        selectedStore,
5121        setCurrentView,
5122        currentView,
5123        handlers,
5124        initializeCheckoutPickup
5125    });
5126    const { onSelfPickupCheckboxClick, isShowSelfPickupCheckbox, verifyAndTouchAllFieldsForSelfPickup } = useSelfPickup({
5127        submitInitialPickupFormForLoggedIn,
5128        submitPickupAddressForm,
5129        currentView
5130    });
5131    const onChangeAddress = (0,react.useCallback)(()=>{
5132        setValue("savedPickupAddress", null);
5133        if (isSelfPickup) {
5134            verifyAndTouchAllFieldsForSelfPickup();
5135        }
5136        setCurrentView(constants.PICKUP_ADDRESS_VIEW.STORE_LIST);
5137    }, [
5138        isSelfPickup,
5139        setValue,
5140        verifyAndTouchAllFieldsForSelfPickup
5141    ]);
5142    var _selectedStore_id;
5143    return {
5144        pickupStores,
5145        selectedStore,
5146        selectedStoreId: (_selectedStore_id = selectedStore === null || selectedStore === void 0 ? void 0 : selectedStore.id) !== null && _selectedStore_id !== void 0 ? _selectedStore_id : null,
5147        zipInputField,
5148        locations,
5149        center,
5150        mapZoom,
5151        selectStore,
5152        currentView,
5153        setCurrentView,
5154        onChangeAddress,
5155        isSelfPickup,
5156        isShowSelfPickupCheckbox,
5157        submitPickupAddressForm,
5158        isSubmittingPickupDetails,
5159        onSelfPickupCheckboxClick,
5160        searchedZipcode,
5161        isPickupAddressSaved
5162    };
5163};
5164
5165;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/shippingAddressSection/pickupAddressSection/index.ts
5166
5167
5168;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/shippingAddressSection/index.ts
5169
5170
5171
5172
5173
5174;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/shippingScheduleSelector/useScheduleSelector.ts
5175
5176
5177const useScheduleSelector = (param)=>{
5178    let { handlers } = param;
5179    const { setValue, watch } = (0,one_page_checkout/* useGetOpcFormValues */.BC)();
5180    const schedule = watch("schedule");
5181    var _watch;
5182    const availableWindows = (_watch = watch("availableWindows")) !== null && _watch !== void 0 ? _watch : [];
5183    const [isExpanded, setIsExpanded] = (0,react.useState)(false);
5184    const [activeDateId, setActiveDateId] = (0,react.useState)("");
5185    const [isUpdatingDeliveryWindow, setIsUpdatingDeliveryWindow] = (0,react.useState)(false);
5186    const handleSelectWindow = (0,react.useCallback)(async (timeSlot)=>{
5187        try {
5188            setIsUpdatingDeliveryWindow(true);
5189            await handlers.updateDeliveryWindow({
5190                deliveryWindowId: Number(timeSlot.id)
5191            });
5192            setValue("schedule", {
5193                selectedWindowId: timeSlot.id,
5194                selectedWindow: {
5195                    ...timeSlot,
5196                    isSelected: true
5197                }
5198            });
5199            setIsExpanded(false);
5200        } catch (error) {
5201            console.error("Error updating delivery window:", error);
5202        } finally{
5203            setIsUpdatingDeliveryWindow(false);
5204        }
5205    }, [
5206        setValue,
5207        handlers
5208    ]);
5209    const selectedWindow = schedule === null || schedule === void 0 ? void 0 : schedule.selectedWindow;
5210    const selectedDay = (0,react.useMemo)(()=>{
5211        if (!selectedWindow) return availableWindows[0];
5212        return availableWindows.find((day)=>day.availableTimes.some((time)=>time.id === selectedWindow.id));
5213    }, [
5214        availableWindows,
5215        selectedWindow
5216    ]);
5217    const activeDay = (0,react.useMemo)(()=>availableWindows.find((day)=>day.id === activeDateId), [
5218        availableWindows,
5219        activeDateId
5220    ]);
5221    (0,react.useEffect)(()=>{
5222        if ((!activeDateId || !activeDay) && selectedDay) {
5223            setActiveDateId(selectedDay.id);
5224        }
5225    }, [
5226        activeDateId,
5227        activeDay,
5228        selectedDay
5229    ]);
5230    return {
5231        schedule,
5232        availableWindows,
5233        isExpanded,
5234        activeDateId,
5235        selectedWindow,
5236        selectedDay,
5237        activeDay,
5238        isUpdatingDeliveryWindow,
5239        setIsExpanded,
5240        setActiveDateId,
5241        handleSelectWindow
5242    };
5243};
5244
5245;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/shippingScheduleSelector/index.ts
5246
5247
5248// EXTERNAL MODULE: ./src/components/one-page-checkout/hooks/useDeliveryWindowSession.ts
5249var useDeliveryWindowSession = __webpack_require__(833075);
5250// EXTERNAL MODULE: ./src/components/one-page-checkout/utils/createOnePageCheckoutHandlers.ts + 1 modules
5251var createOnePageCheckoutHandlers = __webpack_require__(707635);
5252;// CONCATENATED MODULE: ./src/components/one-page-checkout/hooks/useOnePageCheckoutHandlers.ts
5253/**
5254 * @file useOnePageCheckoutHandlers Hook
5255 * @description Creates one page checkout handler implementations
5256 */ 
5257
5258
5259const useOnePageCheckoutHandlers = (param)=>{
5260    let { storeFulfillmentWithInventoryCheck, inventoryCheckForPickup } = param;
5261    const { getDeliveryWindowSession, setDeliveryWindowSession } = (0,useDeliveryWindowSession/* useDeliveryWindowSession */.i)();
5262    const handlers = (0,react.useMemo)(()=>(0,createOnePageCheckoutHandlers/* createOnePageCheckoutHandlers */.aD)({
5263            storeFulfillmentWithInventoryCheck,
5264            inventoryCheckForPickup,
5265            getDeliveryWindowSession,
5266            setDeliveryWindowSession
5267        }), [
5268        storeFulfillmentWithInventoryCheck,
5269        inventoryCheckForPickup,
5270        getDeliveryWindowSession,
5271        setDeliveryWindowSession
5272    ]);
5273    return {
5274        handlers
5275    };
5276};
5277/* harmony default export */ var hooks_useOnePageCheckoutHandlers = ((/* unused pure expression or super */ null && (useOnePageCheckoutHandlers)));
5278
5279// EXTERNAL MODULE: ./src/components/one-page-checkout/hooks/useStoreFulfillmentWithInventoryCheck.ts
5280var useStoreFulfillmentWithInventoryCheck = __webpack_require__(257778);
5281// EXTERNAL MODULE: ./src/lib/hooks/useInventory.ts
5282var useInventory = __webpack_require__(529511);
5283// EXTERNAL MODULE: ./src/lib/hooks/useMonthlyMembershipRate.ts
5284var useMonthlyMembershipRate = __webpack_require__(950169);
5285// EXTERNAL MODULE: ./src/lib/hooks/useUnavailableItems.ts
5286var useUnavailableItems = __webpack_require__(674244);
5287// EXTERNAL MODULE: ./src/lib/hooks/useYearlyMembershipRate.ts
5288var useYearlyMembershipRate = __webpack_require__(239610);
5289// EXTERNAL MODULE: ./src/lib/store/zipcodeSlice.tsx
5290var zipcodeSlice = __webpack_require__(480326);
5291;// CONCATENATED MODULE: ./src/components/providers/context/core-ui/OpcContextProvider.tsx
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309const OpcContextProvider = (param)=>{
5310    let { children } = param;
5311    const { unavailableItems, showModal: showUnavailableItemsModal, removeItemsOutOfStockFromCart, removeRestrictedStateItemsFromCart, resetUnavailableItems, resetRestrictedStateItems, loading: unavailableItemsLoading, restrictedStateItems, continueToCheckoutWithRestrictedStateItems, keepShoppingWithRestrictedStateItems, findOutOfStockItems, setRestrictedStateItems } = (0,useUnavailableItems/* useUnavailableItems */.E)();
5312    const { getInventoryList } = (0,useInventory/* useInventory */.m)();
5313    const { storeFulfillmentWithInventoryCheck, inventoryCheckForPickup } = (0,useStoreFulfillmentWithInventoryCheck/* useStoreFulfillmentWithInventoryCheck */.rK)({
5314        findOutOfStockItems,
5315        setRestrictedStateItems,
5316        getInventoryList
5317    });
5318    const { handlers } = useOnePageCheckoutHandlers({
5319        storeFulfillmentWithInventoryCheck,
5320        inventoryCheckForPickup
5321    });
5322    const driverTipSelector = useTipSelector();
5323    const shippingScheduleSelector = useScheduleSelector({
5324        handlers
5325    });
5326    const deliveryAddressSection = useDeliveryAddressSection({
5327        handlers
5328    });
5329    const { onlyMembershipItemInTheCart } = (0,context.useCartContext)();
5330    const opcInitialization = useOpcInitialization({
5331        skip: onlyMembershipItemInTheCart,
5332        handlers,
5333        setDeliveryCurrentView: deliveryAddressSection.setCurrentView,
5334        setAddressFromFastlane: deliveryAddressSection.setAddressFromFastlane
5335    });
5336    const shippingAddressBase = useShippingAddress({
5337        initializeCheckoutDelivery: opcInitialization.initializeCheckoutDelivery,
5338        initializeCheckoutPickup: opcInitialization.initializeCheckoutPickup,
5339        isInitializing: opcInitialization.isLoading,
5340        initializationError: opcInitialization.error
5341    });
5342    const pickupAddressSection = usePickupAddressSection({
5343        handlers,
5344        initializeCheckoutPickup: opcInitialization.initializeCheckoutPickup
5345    });
5346    const isShowDigitalPaymentMethods = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectIsShowDigitalPaymentMethods */.LV);
5347    const opcPaymentSlice = (0,hooks/* useAppSelector */.C)(onePageCheckoutPaymentSlice/* selectOnePageCheckoutPaymentSelector */.n$);
5348    const { cardPayment, digitalWalletPayments, paymentDiscountCode, giftCardPayment } = (0,payment/* useOpcPayment */.a)();
5349    const { regionId } = (0,hooks/* useAppSelector */.C)(zipcodeSlice/* ZipCodeSelector */.pz);
5350    const { rate: monthlyMembershipRate } = (0,useMonthlyMembershipRate/* useMonthlyMembershipRate */.W)(regionId);
5351    const { rate: annualMembershipRate } = (0,useYearlyMembershipRate/* useYearlyMembershipRate */.b)(regionId);
5352    const value = (0,react.useMemo)(()=>({
5353            handlers,
5354            payment: {
5355                opcPaymentSlice,
5356                cardPayment,
5357                digitalWalletPayments,
5358                paymentDiscountCode,
5359                giftCardPayment,
5360                isShowDigitalPaymentMethods
5361            },
5362            AddressVerificationModal: AddressVerificationModal/* default */.Z,
5363            productInventoryCheck: {
5364                unavailableItems,
5365                showModal: showUnavailableItemsModal,
5366                removeItemsOutOfStockFromCart,
5367                removeRestrictedStateItemsFromCart,
5368                resetUnavailableItems,
5369                resetRestrictedStateItems,
5370                unavailableItemsLoading,
5371                restrictedStateItems,
5372                continueToCheckoutWithRestrictedStateItems,
5373                keepShoppingWithRestrictedStateItems,
5374                getInventoryList
5375            },
5376            membership: {
5377                monthlyMembershipRate,
5378                annualMembershipRate
5379            },
5380            shippingAddressSection: {
5381                base: {
5382                    isInitializing: opcInitialization.isLoading,
5383                    initializationError: opcInitialization.error,
5384                    membershipItemInTheCart: shippingAddressBase.membershipItemInTheCart,
5385                    onlyMembershipItemInTheCart: shippingAddressBase.onlyMembershipItemInTheCart,
5386                    fulfillmentType: shippingAddressBase.fulfillmentType,
5387                    initializeCheckoutPickup: opcInitialization.initializeCheckoutPickup,
5388                    initializeCheckoutDelivery: opcInitialization.initializeCheckoutDelivery,
5389                    toggleSelectedDeliveryMethod: opcInitialization.toggleSelectedDeliveryMethod
5390                },
5391                deliveryAddressSection,
5392                pickupAddressSection
5393            },
5394            driverTipSelector,
5395            shippingScheduleSelector
5396        }), [
5397        handlers,
5398        opcPaymentSlice,
5399        unavailableItems,
5400        showUnavailableItemsModal,
5401        removeItemsOutOfStockFromCart,
5402        removeRestrictedStateItemsFromCart,
5403        resetUnavailableItems,
5404        resetRestrictedStateItems,
5405        unavailableItemsLoading,
5406        restrictedStateItems,
5407        continueToCheckoutWithRestrictedStateItems,
5408        keepShoppingWithRestrictedStateItems,
5409        getInventoryList,
5410        cardPayment,
5411        digitalWalletPayments,
5412        paymentDiscountCode,
5413        giftCardPayment,
5414        isShowDigitalPaymentMethods,
5415        monthlyMembershipRate,
5416        annualMembershipRate,
5417        opcInitialization.isLoading,
5418        opcInitialization.error,
5419        opcInitialization.initializeCheckoutPickup,
5420        opcInitialization.initializeCheckoutDelivery,
5421        opcInitialization.toggleSelectedDeliveryMethod,
5422        shippingAddressBase.membershipItemInTheCart,
5423        shippingAddressBase.onlyMembershipItemInTheCart,
5424        shippingAddressBase.fulfillmentType,
5425        deliveryAddressSection,
5426        pickupAddressSection,
5427        driverTipSelector,
5428        shippingScheduleSelector
5429    ]);
5430    return /*#__PURE__*/ (0,jsx_runtime.jsx)(context.OpcContext.Provider, {
5431        value: value,
5432        children: children
5433    });
5434};
5435
5436
5437/***/ }),
5438
5439/***/ 877456:
5440/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5441
5442"use strict";
5443/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5444/* harmony export */   a: function() { return /* binding */ UIActionsContextProvider; }
5445/* harmony export */ });
5446/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
5447/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(667294);
5448/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(93050);
5449/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_context__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wildfork_commercetools_core_ui_dist_src_lib_context__WEBPACK_IMPORTED_MODULE_2__);
5450/* harmony import */ var _Lib_store_findSimilarFlyoutSlice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(670900);
5451/* harmony import */ var _Lib_store_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(267097);
5452/* harmony import */ var _Lib_store_SnackBarSlice__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(529840);
5453/* harmony import */ var _Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(480326);
5454
5455
5456
5457
5458
5459
5460
5461const UIActionsContextProvider = (param)=>{
5462    let { children } = param;
5463    const dispatch = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppDispatch */ .T)();
5464    const triggerSnackbar = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((message)=>{
5465        dispatch((0,_Lib_store_SnackBarSlice__WEBPACK_IMPORTED_MODULE_5__/* .triggerSnackBar */ .qw)(message));
5466    }, [
5467        dispatch
5468    ]);
5469    const setSnackBarOpen = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((open)=>{
5470        dispatch((0,_Lib_store_SnackBarSlice__WEBPACK_IMPORTED_MODULE_5__/* .setSnackBarOpen */ .TY)(open));
5471    }, [
5472        dispatch
5473    ]);
5474    const openZipcodePopup = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(()=>{
5475        dispatch((0,_Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_6__/* .setOpenZipcodePopup */ .Gu)());
5476    }, [
5477        dispatch
5478    ]);
5479    const openFindSimilarFlyout = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((sku)=>{
5480        sku && dispatch(_Lib_store_findSimilarFlyoutSlice__WEBPACK_IMPORTED_MODULE_3__/* .findSimilarFlyoutActions */ .a0.toggleFindSimilarFlyout(sku));
5481    }, [
5482        dispatch
5483    ]);
5484    const openPrivacyPreferencePopup = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(()=>{
5485        var _window_Osano;
5486        (_window_Osano = window.Osano) === null || _window_Osano === void 0 ? void 0 : _window_Osano.cm.showDrawer();
5487    }, []);
5488    const contextValue = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>({
5489            triggerSnackbar,
5490            setSnackBarOpen,
5491            openZipcodePopup,
5492            openFindSimilarFlyout,
5493            openPrivacyPreferencePopup
5494        }), [
5495        openFindSimilarFlyout,
5496        openZipcodePopup,
5497        setSnackBarOpen,
5498        triggerSnackbar,
5499        openPrivacyPreferencePopup
5500    ]);
5501    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_lib_context__WEBPACK_IMPORTED_MODULE_2__.UIActionsContext.Provider, {
5502        value: contextValue,
5503        children: children
5504    });
5505};
5506
5507
5508/***/ }),
5509
5510/***/ 889630:
5511/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5512
5513"use strict";
5514/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5515/* harmony export */   Z: function() { return /* binding */ Image; }
5516/* harmony export */ });
5517/* unused harmony export customLoader */
5518/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
5519/* harmony import */ var next_image__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(425675);
5520/* harmony import */ var next_image__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_image__WEBPACK_IMPORTED_MODULE_1__);
5521// components/Image.js
5522
5523
5524// opt-out of image optimization, no-op
5525const customLoader = (param)=>{
5526    let { src } = param;
5527    return src;
5528};
5529// interface style dom props
5530function Image(props) {
5531    if (!props.src) {
5532        return null;
5533    }
5534    /**
5535   * @NOTE The next image component doesn't accept a style attribute, but some
5536   * consumers of this component aren't following the rules!
5537   *
5538   * @Ref https://github.com/akiran/react-slick/blob/master/src/slider.js#L175
5539   * In this particular 3rd party component (react-slick), note the use of
5540   * cloneElement and the addition of a `style` property. This allows a 3rd party
5541   * component to add any properties they like. In this case, it is an error
5542   * because the component react-slick is cloning does not accept a `style`
5543   * property.
5544   *
5545   * The fix below removes any overidden style property that may have been added
5546   * using a technique like the one above.
5547   */ const { style, ...remaining } = props;
5548    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)((next_image__WEBPACK_IMPORTED_MODULE_1___default()), {
5549        ...remaining,
5550        unoptimized: true,
5551        loader: customLoader
5552    });
5553}
5554
5555
5556/***/ }),
5557
5558/***/ 317641:
5559/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5560
5561"use strict";
5562/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
5563/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(741664);
5564/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);
5565
5566
5567/**
5568 * LinkComponent is a thin wrapper around the NextLink that allows the storefront
5569 * to specify useful default for the storefront.
5570 *
5571 * @param props {ILink} react props
5572 * @returns {React.ReactNode} React component.
5573 */ const LinkComponent = (props)=>{
5574    const { children, ...rest } = props;
5575    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {
5576        ...rest,
5577        children: children
5578    });
5579};
5580/* harmony default export */ __webpack_exports__.Z = (LinkComponent);
5581
5582
5583/***/ }),
5584
5585/***/ 471691:
5586/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5587
5588"use strict";
5589/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5590/* harmony export */   As: function() { return /* binding */ useAccordion; },
5591/* harmony export */   UQ: function() { return /* binding */ Accordion; }
5592/* harmony export */ });
5593/* unused harmony export AccordionContext */
5594/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
5595/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(667294);
5596/* harmony import */ var _Components_providers_context_helpers_contextFactory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(151815);
5597/* harmony import */ var _Accordion_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(294784);
5598/* harmony import */ var _Accordion_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Accordion_module_scss__WEBPACK_IMPORTED_MODULE_3__);
5599
5600
5601
5602
5603const [useAccordion, AccordionContext] = (0,_Components_providers_context_helpers_contextFactory__WEBPACK_IMPORTED_MODULE_2__/* .contextFactory */ .b)();
5604
5605function Accordion(param) {
5606    let { children, initialActiveItem, onActiv
5606eItemChange, className } = param;
5607    const [activeItem, setActiveItem] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(initialActiveItem);
5608    const setActiveItemHandler = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((item)=>{
5609        setActiveItem(item);
5610        onActiveItemChange === null || onActiveItemChange === void 0 ? void 0 : onActiveItemChange(item);
5611    }, [
5612        onActiveItemChange
5613    ]);
5614    const value = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>({
5615            activeItem,
5616            setActiveItem: setActiveItemHandler
5617        }), [
5618        activeItem,
5619        setActiveItemHandler
5620    ]);
5621    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(AccordionContext.Provider, {
5622        value: value,
5623        children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
5624            className: "".concat((_Accordion_module_scss__WEBPACK_IMPORTED_MODULE_3___default().accordion), " ").concat(className),
5625            children: children
5626        })
5627    });
5628}
5629
5630
5631/***/ }),
5632
5633/***/ 312843:
5634/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5635
5636"use strict";
5637
5638// EXPORTS
5639__webpack_require__.d(__webpack_exports__, {
5640  Q: function() { return /* binding */ AccordionItem; }
5641});
5642
5643// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
5644var jsx_runtime = __webpack_require__(785893);
5645// EXTERNAL MODULE: ./src/components/ui/accordion/Accordion.tsx
5646var Accordion = __webpack_require__(471691);
5647// EXTERNAL MODULE: ./src/components/ui/accordion/AccordionItemContent.module.scss
5648var AccordionItemContent_module = __webpack_require__(648466);
5649var AccordionItemContent_module_default = /*#__PURE__*/__webpack_require__.n(AccordionItemContent_module);
5650;// CONCATENATED MODULE: ./src/components/ui/accordion/AccordionItemContent.tsx
5651
5652
5653function AccordionItemContent(param) {
5654    let { children, value, className } = param;
5655    return /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, {
5656        children: /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
5657            className: value === "PickUp" ? "".concat((AccordionItemContent_module_default())["accordion-item-content-pickup"], " ").concat(className) : "".concat((AccordionItemContent_module_default())["accordion-item-content"], " ").concat(className),
5658            children: children
5659        })
5660    });
5661}
5662
5663// EXTERNAL MODULE: ./src/components/ui/accordion/AccordionItemHeader.module.scss
5664var AccordionItemHeader_module = __webpack_require__(675730);
5665var AccordionItemHeader_module_default = /*#__PURE__*/__webpack_require__.n(AccordionItemHeader_module);
5666;// CONCATENATED MODULE: ./src/components/ui/accordion/AccordionItemHeader.tsx
5667
5668
5669const AccordionItemHeader = (param)=>{
5670    let { children, onChange, isActive, value, disabled, theme = "red" } = param;
5671    return /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
5672        className: "".concat(value === "PickUp" && isActive ? (AccordionItemHeader_module_default())["accordion-item-header-pickup"] : (AccordionItemHeader_module_default())["accordion-item-header"], " ").concat(disabled ? (AccordionItemHeader_module_default())["accordion-item-header--disabled"] : ""),
5673        onClick: onChange,
5674        role: "presentation",
5675        children: [
5676            /*#__PURE__*/ (0,jsx_runtime.jsx)("input", {
5677                type: "radio",
5678                className: (AccordionItemHeader_module_default())["input-radio"],
5679                onChange: onChange,
5680                checked: isActive
5681            }),
5682            /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {
5683                className: (AccordionItemHeader_module_default())["checkmark-".concat(theme)]
5684            }),
5685            /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, {
5686                children: children
5687            })
5688        ]
5689    });
5690};
5691
5692;// CONCATENATED MODULE: ./src/components/ui/accordion/AccordionItem.tsx
5693
5694
5695
5696
5697const AccordionItem = (param)=>{
5698    let { className, content, disabled = false, header, theme, value, onChange } = param;
5699    const { activeItem, setActiveItem } = (0,Accordion/* useAccordion */.As)();
5700    const setActiveItemHandler = ()=>{
5701        if (disabled) return;
5702        setActiveItem(value);
5703        if (onChange) {
5704            onChange();
5705        }
5706    };
5707    const isActive = activeItem === value;
5708    return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
5709        children: [
5710            /*#__PURE__*/ (0,jsx_runtime.jsx)(AccordionItemHeader, {
5711                isActive: isActive,
5712                onChange: setActiveItemHandler,
5713                theme: isActive ? theme : "white",
5714                value: value,
5715                disabled: disabled,
5716                children: header
5717            }),
5718            isActive && content && /*#__PURE__*/ (0,jsx_runtime.jsx)(AccordionItemContent, {
5719                value: activeItem,
5720                className: className,
5721                children: content
5722            })
5723        ]
5724    });
5725};
5726
5727
5728/***/ }),
5729
5730/***/ 596411:
5731/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5732
5733"use strict";
5734/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5735/* harmony export */   z: function() { return /* binding */ Button; }
5736/* harmony export */ });
5737/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
5738/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_constants_locale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(808439);
5739/* harmony import */ var _Button_module_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(150424);
5740/* harmony import */ var _Button_module_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Button_module_scss__WEBPACK_IMPORTED_MODULE_2__);
5741/* eslint-disable react/button-has-type */ 
5742
5743
5744const Button = (param)=>{
5745    let { children, className = "", type = "button", value, disabled = false, onClick, ...restProps } = param;
5746    const languageCode = _wildfork_commercetools_core_ui_dist_src_lib_constants_locale__WEBPACK_IMPORTED_MODULE_1__.LANGUAGE_CODE;
5747    let styles = {};
5748    // @ts-ignore
5749    if (languageCode !== "en-CA" && languageCode !== "fr-CA") {
5750        styles = {
5751            borderRadius: "10rem"
5752        }; // squared corners for US, rounded for CA
5753    } else {
5754        styles = {
5755            borderRadius: "10rem"
5756        }; // squared corners for US, rounded for CA
5757    }
5758    if (restProps === null || restProps === void 0 ? void 0 : restProps.style) {
5759        styles = {
5760            ...styles,
5761            ...restProps.style
5762        }; // overrides
5763    }
5764    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button", {
5765        className: "".concat((_Button_module_scss__WEBPACK_IMPORTED_MODULE_2___default().btn), " ").concat(className),
5766        value: value,
5767        type: type,
5768        disabled: disabled,
5769        onClick: onClick,
5770        ...restProps,
5771        style: {
5772            ...styles
5773        },
5774        children: children
5775    });
5776};
5777
5778
5779/***/ }),
5780
5781/***/ 336930:
5782/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5783
5784"use strict";
5785/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5786/* harmony export */   z: function() { return /* reexport safe */ _Button__WEBPACK_IMPORTED_MODULE_0__.z; }
5787/* harmony export */ });
5788/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(596411);
5789
5790
5791
5792/***/ }),
5793
5794/***/ 694139:
5795/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5796
5797"use strict";
5798/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5799/* harmony export */   z: function() { return /* reexport safe */ _button__WEBPACK_IMPORTED_MODULE_0__.z; }
5800/* harmony export */ });
5801/* harmony import */ var _button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(336930);
5802
5803
5804
5805/***/ }),
5806
5807/***/ 836455:
5808/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5809
5810"use strict";
5811
5812// EXPORTS
5813__webpack_require__.d(__webpack_exports__, {
5814  UQ: function() { return /* reexport */ Accordion/* Accordion */.UQ; },
5815  Qd: function() { return /* reexport */ AccordionItem/* AccordionItem */.Q; },
5816  zx: function() { return /* reexport */ buttons/* Button */.z; },
5817  Ph: function() { return /* reexport */ Select; },
5818  nv: function() { return /* reexport */ TextField; }
5819});
5820
5821// UNUSED EXPORTS: AccordionContext, useAccordion
5822
5823// EXTERNAL MODULE: ./src/components/ui/accordion/Accordion.tsx
5824var Accordion = __webpack_require__(471691);
5825// EXTERNAL MODULE: ./src/components/ui/accordion/AccordionItem.tsx + 2 modules
5826var AccordionItem = __webpack_require__(312843);
5827;// CONCATENATED MODULE: ./src/components/ui/accordion/index.ts
5828
5829
5830
5831// EXTERNAL MODULE: ./src/components/ui/buttons/index.ts
5832var buttons = __webpack_require__(694139);
5833// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
5834var jsx_runtime = __webpack_require__(785893);
5835// EXTERNAL MODULE: ./node_modules/react/index.js
5836var react = __webpack_require__(667294);
5837// EXTERNAL MODULE: ./node_modules/uuid/dist/esm-browser/v4.js + 4 modules
5838var v4 = __webpack_require__(825934);
5839// EXTERNAL MODULE: ./src/components/ui/select/Select.module.scss
5840var Select_module = __webpack_require__(814102);
5841var Select_module_default = /*#__PURE__*/__webpack_require__.n(Select_module);
5842;// CONCATENATED MODULE: ./src/components/ui/select/Select.tsx
5843
5844
5845
5846
5847const Select = (param)=>{
5848    let { options, error, selected, disabled = false, label = "", id, color = "grey", validate, className = "", required = false, meta, ...rest } = param;
5849    // Generate unique IDs for the select and error message
5850    const { selectId, errorId } = (0,react.useMemo)(()=>{
5851        const baseId = id || rest.name || "select-".concat((0,v4/* default */.Z)());
5852        return {
5853            selectId: baseId,
5854            errorId: "".concat(baseId, "-error")
5855        };
5856    }, [
5857        id,
5858        rest.name
5859    ]);
5860    const groupedOptions = {};
5861    if ((options === null || options === void 0 ? void 0 : options.length) && options.every((o)=>o.optgroup)) {
5862        options.forEach((option)=>{
5863            if (!groupedOptions[option.optgroup]) groupedOptions[option.optgroup] = [];
5864            groupedOptions[option.optgroup].push({
5865                value: option.value,
5866                text: option.text
5867            });
5868        });
5869    }
5870    const renderOptions = (options)=>{
5871        const optionsMarkup = options === null || options === void 0 ? void 0 : options.map((option, index)=>{
5872            return /*#__PURE__*/ (0,jsx_runtime.jsx)("option", {
5873                value: option.value,
5874                disabled: !!option.disabled,
5875                children: option.text
5876            }, "".concat(option.value, "-").concat(index));
5877        });
5878        optionsMarkup === null || optionsMarkup === void 0 ? void 0 : optionsMarkup.unshift(/*#__PURE__*/ (0,jsx_runtime.jsx)("option", {
5879            style: {
5880                display: "none"
5881            },
5882            children: label
5883        }, "".concat(options.length, "-").concat(label)));
5884        return optionsMarkup;
5885    };
5886    const onChangeHandler = (e)=>{
5887        if (rest.onChange) {
5888            rest.onChange(e);
5889        }
5890    };
5891    const isValid = validate && typeof validate === "function" ? validate(selected) : validate === null || validate === undefined ? true : validate;
5892    return /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
5893        className: "".concat((Select_module_default())["select-container"], " ").concat(color && isValid && (Select_module_default())["input-".concat(color)], " ").concat(className),
5894        children: [
5895            /*#__PURE__*/ (0,jsx_runtime.jsx)("label", {
5896                htmlFor: selectId,
5897                className: required ? (Select_module_default()).required : "",
5898                children: label
5899            }),
5900            /*#__PURE__*/ (0,jsx_runtime.jsx)("select", {
5901                autoComplete: (rest === null || rest === void 0 ? void 0 : rest.autoComplete) || "on",
5902                disabled: disabled,
5903                value: selected,
5904                id: selectId,
5905                onChange: onChangeHandler,
5906                onBlur: rest === null || rest === void 0 ? void 0 : rest.onBlur,
5907                name: rest.name,
5908                "data-testid": rest["data-testid"],
5909                className: disabled ? (Select_module_default())["disabled-select"] : "",
5910                "aria-describedby": !!error || !isValid && required ? errorId : undefined,
5911                children: Object.keys(groupedOptions).length ? Object.keys(groupedOptions).map((group, index)=>{
5912                    return /*#__PURE__*/ (0,jsx_runtime.jsx)("optgroup", {
5913                        label: group,
5914                        children: renderOptions(groupedOptions[group])
5915                    }, "".concat(group, "-").concat(index));
5916                }) : renderOptions(options)
5917            }),
5918            !!error && /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {
5919                id: errorId,
5920                className: (Select_module_default())["error-text"],
5921                children: error
5922            }),
5923            !isValid && required && /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
5924                id: errorId,
5925                className: (Select_module_default())["error-text"],
5926                children: [
5927                    "Invalid ",
5928                    label
5929                ]
5930            })
5931        ]
5932    });
5933};
5934
5935;// CONCATENATED MODULE: ./src/components/ui/select/index.ts
5936
5937
5938// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/components/
5938atoms/Icon/Icon.js
5939var Icon = __webpack_require__(882074);
5940// EXTERNAL MODULE: ./src/components/ui/text-field/TextField.module.scss
5941var TextField_module = __webpack_require__(850765);
5942var TextField_module_default = /*#__PURE__*/__webpack_require__.n(TextField_module);
5943// EXTERNAL MODULE: ./node_modules/@mui/material/Tooltip/Tooltip.js
5944var Tooltip = __webpack_require__(721023);
5945// EXTERNAL MODULE: ./src/components/ui/Image/Image.tsx
5946var Image = __webpack_require__(889630);
5947;// CONCATENATED MODULE: ./src/components/ui/iconTooltip/IconTooltip.tsx
5948
5949
5950
5951
5952const IconTooltip = (param)=>{
5953    let { data, icon = "questionMark", height = 20, width = 20, id = "tooltip-icon" } = param;
5954    const iconLinks = {
5955        lock: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABmJLR0QA/wD/AP+gvaeTAAABSUlEQVRIie3TvUrDYBTG8f8JhC51cKmDdZLeh85+TO5uaZauegtKB4XSYhrMBThVKoj3oKObW7s4iOAHGdL0uEQo2vq29K2D5lkSXk6eXw4k8N8iswz7vl9K07QmIttABXgH7oFuoVA4bzQaL9bharW6p6oRsDRh5FFV98MwvJmmz5kBvcjQjqpuxHFcjOO46DjOpqpeAisicuV53tY0ncaNfd8vDYfDhww9aLfb9Qkvd6iqR8Cz67qVZrP59FOvceM0TWsZ2pmEAgRBcAx0geUkSWqmXiMsIjsAqnpqmgVOsuvu3DCwDuC67p1pcDAY3Ga3FRtwEaDVar2ZBqMoeh19Zl54Ifn2VWe/QwCsWjL6quqFYXg9ejhu4zOLKEBZRIKvh+PgskX0M2vTwL+SHM7hHM7hvwH3F+D0jLCqepbxnoh4FvvyzJYP8RhrounhCHMAAAAASUVORK5CYII=",
5956        questionMark: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAFsUlEQVRoge1aW2gUZxT+zmR3/yxbba1o7YUiVZtaEB9CBTESim1sS6Eolj60aRPrTnaDKw1KKT4U+lQSLAFTktlZL0vjQyHoQ+/R0jZqH0QqBaESo6LUglpNl0rWncnOnD7shclmb3NJ44MfBP7zz/nPOV/mv5zzzwIPcH+BvDIUjUYXGYbRSkQbTNN8nohWAFgKIJRXmQJwk5mvSJL0B4DTmqaNJZPJlBf+XRGJxWIik8lsI6J3AWwC0GDThAHgBIBhIcTRgYEBzWksjoj09PQE0+l0lJl3A3jCqfMS/AVgn67rSjKZzNgdbJtIOBx+lYgGAKywO7ZOXGLmnYlEYtTOoLqJxGIxoWlaH4BdtkNzhuFQKNTV399/rx7luojs2LHjsYaGhm+ZudldbLZxVpKk1xVFuVVLsSaRSCSy3DTNEwBWehKafUxIktSmKMrVakpViXR2di7x+/2nADR5Gpp9XPb5fC2Dg4M3KilIlR50dHQ0BgKB7zH/JABgRTab/SoWi4lKChWJ+P3+/nlYE9XwgqZp+yo9LDu18lvsdy4dpwGcBHCRme8R0VIA6wE859LuZlVVj5d2ziLS09MTnJqaOg/n54RBRH2apvWVSz9kWW4B8DmAtQ7tTwgh1pRmAbOmVjqdjsI5iSwzvxmPx/dWyqFUVT0dCoXWAxhz6GNVJpOJlHbOeCP5Q+8KHKYdzNybSCQ+KsiyLL8IYCuAh4no93Q6HR8eHp4CgO7u7mXZbHYCwEMOXF0XQqy0vpUZbySTyWxzSgJA2ufz9RaEcDi8B8BPAHYCaGfmz4LB4G/bt29fAACDg4M3mPmIQ19P6bq+1doxg0g+i3UEZv5laGjoHwCQZflpIvq0jFqT3+/vtsg/u/DXbpWLRKLR6CLkUnFHkCRpgSzLbZFI5EkAbwHwldMzTXOtZUzFA64OvByLxRYWhKIzwzBaYb+eKIKZNwIYNU2zqh4R3bGIi5z6A+DTdb0VwNfAzKnV4sJovTCZ+YuCwMwb3BjL//MAWIgw82o3RuvEUCKROAsA7e3tIQDvubRXPFyLRIholUujtXBNCLG3IASDwY+Rq+nd4NlCwzq1HnVptBqykiS9PTAw8C8ARCKRDQB2e2B3caFhJbLAA8NlQUSfKIryKwB0dHQ8YprmEbjYWCwoxlwx+/UQJycnJ4tnit/vTwBY7rUTK5G7XhtH7rpn58jIiAEAXV1d7xPRNg/tF2O2ErlTRtEVmHlUVdXzQO7AZebeWmNs4nahYSUy4bETENF4oZ3NZtfBsjg9QjFm6/Z7wWMnAGCtGR6fA/vFmK350GkAe7z0QkRN4XD4pXzb87KZmU8V2kUimqaNBQIBA95siwVHW4hoi1f2SjDd2Nh4siAUp1YymUwR0Y9z5HQucLxwwAIlqXY+odvslSci+ga5KQtmbgLQ6ZXt0qJsxoEohDiK3K24JzBN88t4PN4bj8d7iWjQK7sArqdSqWPWjhlE8jVwxbuj+wVE1DcyMqJb+2alKLquKwAu/W9R2cd4IBBQSzsrXdBtJqIfPHA6AeBavr0Ezu+yCmBmbkskErM2pbJb7blz5y43NzcvAbDOpePFAJ7J/y1zaQtEtF9V1bJrrWL2K4TYDeCsW+ce4szk5OSHlR5WJJJf+K8BGK+k8z/ismmab5QucCuq1iOqqt6WJOkVzEFCaQMXDcPYdODAgZvVlGoWVoqiXJUkqQXzM83OTE9Ptxw8ePBaLcW6KkRFUW4JITYC2A+A3UZXJ1QhROvhw4f/rkfZ9udpWZbbkPssMFe3LuP5z9O28j7bNbuqqseFEGuY+QMA1+2Or4I/iWiXEGKtXRKABz/h0HV9q2ma7xBRGyrc91ZBFsAoMx9JpVLHqu1KteDZj2pisdhCXddbmXkjEa1m5pXIneaFK5u7AG4hl/5cYOZThmGMHTp0aC4uPR5g3vEfVuoAYgQRSrAAAAAASUVORK5CYII="
5957    };
5958    const imageSRC = icon ? iconLinks[icon] : iconLinks["lock"];
5959    const [isMounted, setIsMounted] = (0,react.useState)(false);
5960    (0,react.useEffect)(()=>{
5961        setIsMounted(true);
5962    }, []);
5963    if (!isMounted) {
5964        return null;
5965    }
5966    return /*#__PURE__*/ (0,jsx_runtime.jsx)(Tooltip/* default */.Z, {
5967        title: /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
5968            dangerouslySetInnerHTML: {
5969                __html: data
5970            }
5971        }),
5972        arrow: true,
5973        placement: "top",
5974        children: /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
5975            children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Image/* default */.Z, {
5976                id: id,
5977                src: imageSRC,
5978                height: height,
5979                width: width,
5980                alt: "tooltip icon",
5981                "data-tip": data
5982            })
5983        })
5984    });
5985};
5986
5987;// CONCATENATED MODULE: ./src/components/ui/iconTooltip/index.ts
5988
5989
5990;// CONCATENATED MODULE: ./src/components/ui/text-field/TextField.tsx
5991/* eslint-disable */ 
5992
5993
5994
5995
5996
5997// The standard TextField validation logic returns true when valid and returns false when invalid
5998const validateTextField = (param)=>{
5999    let { validate, value, isValid } = param;
6000    isValid = validate && typeof validate === "function" ? //@ts-ignore
6001    validate(value) === undefined || validate(value) === null : validate === null || validate === undefined ? true : validate; // else just use whatever truthy/falsey value is passed to directly represent valid/invalid
6002    return isValid;
6003};
6004// FormTextField validation logic returns undefined when valid and returns an error string when invalid
6005const validateFormTextField = (param)=>{
6006    let { validate, value, isValid } = param;
6007    isValid = validate && typeof validate === "function" ? validate(value) : validate === null || validate === undefined || validate; // else just use whatever truthy/falsey value is passed to directly represent valid/invalid
6008    return isValid;
6009};
6010const TextField = /*#__PURE__*/ react.forwardRef((param, ref)=>{
6011    let { className, color = "grey", dirty, formTextFieldValidation = false, id, inputProps = {}, label = "", showTooltipIconOnErrorOnly, style, supressErrorStylesOnFocus = false, tooltipData = "", tooltipIcon, touched = true, type = "text", validate, validateOnDirty, withPreview = false, required, isDisabled, autoComplete, multiline, ...rest } = param;
6012    const [inputType, setInputType] = (0,react.useState)(type);
6013    // Generate unique IDs for the input and error message
6014    const { inputId, errorId } = (0,react.useMemo)(()=>{
6015        const baseId = id || rest.name || "textfield-".concat((0,v4/* default */.Z)());
6016        return {
6017            inputId: baseId,
6018            errorId: "".concat(baseId, "-error")
6019        };
6020    }, [
6021        id,
6022        rest.name
6023    ]);
6024    let value = rest === null || rest === void 0 ? void 0 : rest.value;
6025    if (!value && ref != null && typeof ref !== "function") {
6026        var _ref_current;
6027        value = ref === null || ref === void 0 ? void 0 : (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.value;
6028    }
6029    let isValid = true;
6030    const isDirtyWhenValidateOnDirty = validateOnDirty && dirty;
6031    const isFieldTouchedOrDirty = touched || isDirtyWhenValidateOnDirty;
6032    if (isFieldTouchedOrDirty) {
6033        isValid = validateFormTextField({
6034            isValid,
6035            validate,
6036            value
6037        });
6038    }
6039    const shouldShowError = isFieldTouchedOrDirty && (typeof isValid === "string" && isValid || typeof isValid === "boolean" && !isValid);
6040    const classNames = [
6041        (TextField_module_default())["input-container"],
6042        className,
6043        (typeof isValid === "boolean" && !isValid || typeof isValid === "string" && isValid) && (TextField_module_default()).error,
6044        color && (isValid || supressErrorStylesOnFocus) && (TextField_module_default())["input-".concat(color)]
6045    ].join(" ").trim();
6046    const handleIconClick = ()=>{
6047        if (withPreview) {
6048            setInputType(inputType === "password" ? "text" : "password");
6049        }
6050    };
6051    return /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
6052        className: classNames,
6053        style: style,
6054        children: [
6055            /*#__PURE__*/ (0,jsx_runtime.jsx)("label", {
6056                className: required ? (TextField_module_default()).required : "",
6057                htmlFor: inputId,
6058                children: label
6059            }),
6060            multiline ? /*#__PURE__*/ (0,jsx_runtime.jsx)("textarea", {
6061                ...rest,
6062                id: inputId,
6063                type: inputType,
6064                ref: ref,
6065                ...inputProps,
6066                autoComplete: autoComplete || "on",
6067                disabled: isDisabled,
6068                rows: 4,
6069                className: isDisabled ? (TextField_module_default())["disabled-text-feild"] : "",
6070                "aria-describedby": shouldShowError ? errorId : undefined
6071            }) : /*#__PURE__*/ (0,jsx_runtime.jsx)("input", {
6072                ...rest,
6073                id: inputId,
6074                type: inputType,
6075                ref: ref,
6076                ...inputProps,
6077                autoComplete: autoComplete || "on",
6078                disabled: isDisabled,
6079                className: isDisabled ? (TextField_module_default())["disabled-text-feild"] : "",
6080                "aria-describedby": shouldShowError ? errorId : undefined
6081            }),
6082            typeof isValid === "string" && isValid && isFieldTouchedOrDirty && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
6083                id: errorId,
6084                className: (TextField_module_default())["error-text"],
6085                children: isValid
6086            }),
6087            typeof isValid == "boolean" && !isValid && isFieldTouchedOrDirty && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
6088                id: errorId,
6089                className: (TextField_module_default())["error-text"],
6090                children: "Invalid ".concat(label)
6091            }),
6092            withPreview && /*#__PURE__*/ (0,jsx_runtime.jsx)(Icon.Icon, {
6093                iconName: inputType === "password" ? "eye-cross" : "eye",
6094                className: "".concat((TextField_module_default()).previewicon, " ").concat(inputType !== "password" ? (TextField_module_default())["previewicon--show"] : ""),
6095                "aria-label": "Password Preview",
6096                onClick: handleIconClick
6097            }),
6098            /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
6099                className: (TextField_module_default()).tooltip,
6100                children: tooltipData && (!showTooltipIconOnErrorOnly || showTooltipIconOnErrorOnly && !isValid) && /*#__PURE__*/ (0,jsx_runtime.jsx)(IconTooltip, {
6101                    data: tooltipData,
6102                    icon: tooltipIcon
6103                })
6104            })
6105        ]
6106    });
6107});
6108TextField.displayName = "TextField";
6109
6110;// CONCATENATED MODULE: ./src/components/ui/text-field/index.ts
6111
6112
6113;// CONCATENATED MODULE: ./src/components/ui/index.ts
6114
6115
6116
6117
6118
6119
6120/***/ }),
6121
6122/***/ 451415:
6123/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6124
6125"use strict";
6126/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6127/* harmony export */   u: function() { return /* binding */ Modal; }
6128/* harmony export */ });
6129/* unused harmony export MODAL_ROOT_ID */
6130/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
6131/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(667294);
6132/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(973935);
6133/* harmony import */ var _Modal_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(527013);
6134/* harmony import */ var _Modal_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Modal_module_scss__WEBPACK_IMPORTED_MODULE_3__);
6135/* eslint-disable jsx-a11y/anchor-is-valid */ 
6136
6137
6138
6139const MODAL_ROOT_ID = "modal-root";
6140const Modal = (param)=>{
6141    let { show, onClose, children, title = "", className = "", contentClassName = "", withCloseIcon = true, onCloseOuterClick = true } = param;
6142    const [isMounted, setIsMounted] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);
6143    const modalWrapperRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
6144    const backDropHandler = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((e)=>{
6145        var _modalWrapperRef_current;
6146        if (!(modalWrapperRef === null || modalWrapperRef === void 0 ? void 0 : (_modalWrapperRef_current = modalWrapperRef.current) === null || _modalWrapperRef_current === void 0 ? void 0 : _modalWrapperRef_current.contains(e.target)) && onCloseOuterClick) {
6147            onClose();
6148        }
6149    }, [
6150        onClose,
6151        onCloseOuterClick
6152    ]);
6153    (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{
6154        setIsMounted(true);
6155        window.addEventListener("click", backDropHandler);
6156        window.addEventListener("keydown", (event)=>{
6157            if (event.key === "Escape" && onCloseOuterClick) {
6158                onClose();
6159            }
6160        });
6161        return ()=>{
6162            window.removeEventListener("click", backDropHandler);
6163            window.removeEventListener("keydown", ()=>{});
6164        };
6165    }, [
6166        backDropHandler,
6167        onClose,
6168        onCloseOuterClick
6169    ]);
6170    const handleCloseClick = (e)=>{
6171        e.preventDefault();
6172        onClose === null || onClose === void 0 ? void 0 : onClose();
6173    };
6174    const modalContent = show ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
6175        className: "".concat((_Modal_module_scss__WEBPACK_IMPORTED_MODULE_3___default().modal), " ").concat(className),
6176        "data-testid": MODAL_ROOT_ID,
6177        children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
6178            className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_3___default().modal__wrapper),
6179            ref: modalWrapperRef,
6180            children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
6181                className: "".concat((_Modal_module_scss__WEBPACK_IMPORTED_MODULE_3___default().modal__layout), " ").concat(contentClassName),
6182                children: [
6183                    withCloseIcon && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
6184                        className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_3___default().modal__header),
6185                        children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
6186                            className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_3___default().modal__close),
6187                            onClick: handleCloseClick,
6188                            children: "x"
6189                        })
6190                    }),
6191                    title && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", {
6192                        children: title
6193                    }),
6194                    /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
6195                        className: (_Modal_module_scss__WEBPACK_IMPORTED_MODULE_3___default().modal__body),
6196                        children: children
6197                    })
6198                ]
6199            })
6200        })
6201    }) : null;
6202    if (isMounted) {
6203        return /*#__PURE__*/ react_dom__WEBPACK_IMPORTED_MODULE_2__.createPortal(modalContent, document.getElementById("modal-root"));
6204    }
6205    return null;
6206};
6207
6208
6209/***/ }),
6210
6211/***/ 589863:
6212/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6213
6214"use strict";
6215/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6216/* harmony export */   u: function() { return /* reexport safe */ _Modal__WEBPACK_IMPORTED_MODULE_0__.u; }
6217/* harmony export */ });
6218/* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(451415);
6219
6220
6221
6222/***/ }),
6223
6224/***/ 866067:
6225/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6226
6227"use strict";
6228/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6229/* harmony export */   v: function() { return /* binding */ OrderEventType; }
6230/* harmony export */ });
6231/* harmony import */ var mitt__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59391);
6232
6233var OrderEventType;
6234(function(OrderEventType) {
6235    OrderEventType["ORDER_SUBMIT_FAILED"] = "orderSubmitFailed";
6236})(OrderEventType || (OrderEventType = {}));
6237const emitter = (0,mitt__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)();
6238/* harmony default export */ __webpack_exports__.Z = (emitter);
6239
6240
6241/***/ }),
6242
6243/***/ 5227:
6244/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6245
6246"use strict";
6247/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6248/* harmony export */   G: function() { return /* binding */ formStateChangeHandler; }
6249/* harmony export */ });
6250const formStateChangeHandler = (param)=>{
6251    let { key, value, formState, setTouched, formStateSetter } = param;
6252    setTouched(true);
6253    formStateSetter({
6254        ...formState,
6255        [key]: value
6256    });
6257};
6258
6259
6260/***/ }),
6261
6262/***/ 593917:
6263/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6264
6265"use strict";
6266/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6267/* harmony export */   FI: function() { return /* binding */ authFormFieldValidatorSwitch; },
6268/* harmony export */   pO: function() { return /* binding */ useForgotPassword; }
6269/* harmony export */ });
6270/* unused harmony exports initialForgotPasswordState, initialCheckoutLoginState, defaultCheckoutSignupState, initialCheckoutSignupState, authFormValidators, useLogin, useSignup */
6271/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(667294);
6272/* harmony import */ var _Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(348833);
6273
6274// import { isCanadianLocale } from '@Constants/locale';
6275
6276// import { useAppSelector } from '@Lib/store/hooks';
6277const initialForgotPasswordState = {
6278    email: ""
6279};
6280const initialCheckoutLoginState = {
6281    ...initialForgotPasswordState,
6282    password: ""
6283};
6284const defaultCheckoutSignupState = {
6285    ...initialCheckoutLoginState,
6286    firstName: "",
6287    lastName: "",
6288    confirmedPassword: "",
6289    acceptMarketing: true
6290};
6291const initialCheckoutSignupState = ()=>{
6292    const defaultState = {
6293        ...defaultCheckoutSignupState
6294    };
6295    // defaultState.acceptMarketing = !isCanadianLocale(locale) ? true : false;
6296    defaultState.acceptMarketing = true;
6297    return defaultState;
6298};
6299const authFormValidator = (value, fieldValidator)=>{
6300    const validator = fieldValidator;
6301    const validatorResult = validator(value, {});
6302    return validatorResult === undefined;
6303};
6304const ifErrorMsgThenRenderIt = (errors, key)=>{
6305    return errors && Object.keys(errors).length ? errors[key] : undefined;
6306};
6307// helper function for consolidating the login/signup validation logic into a single place
6308const authFormFieldValidatorSwitch = (key, errorMessages)=>{
6309    let validator;
6310    switch(key){
6311        case "email":
6312            validator = (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .ZP)([
6313                (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* .required */ .C1)(ifErrorMsgThenRenderIt(errorMessages, "required")),
6314                (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* .email */ .Do)(ifErrorMsgThenRenderIt(errorMessages, "email"))
6315            ], "Email");
6316            break;
6317        case "password":
6318            validator = (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .ZP)([
6319                (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* .required */ .C1)(ifErrorMsgThenRenderIt(errorMessages, "required"))
6320            ], "Password");
6321            break;
6322        case "strong_password":
6323            validator = (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .ZP)([
6324                (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* .required */ .C1)(ifErrorMsgThenRenderIt(errorMessages, "required")),
6325                (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* .strongPassword */ .hG)(ifErrorMsgThenRenderIt(errorMessages, "password"))
6326            ], "Password");
6327            break;
6328        case "firstName":
6329            validator = (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .ZP)([
6330                (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* .required */ .C1)(ifErrorMsgThenRenderIt(errorMessages, "required")),
6331                (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* .name */ .u2)()
6332            ], "First Name");
6333            break;
6334        case "lastName":
6335            validator = (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .ZP)([
6336                (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* .required */ .C1)(ifErrorMsgThenRenderIt(errorMessages, "required")),
6337                (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* .name */ .u2)()
6338            ], "Last Name");
6339            break;
6340        default:
6341            validator = (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .ZP)([
6342                (0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_1__/* .required */ .C1)()
6343            ]);
6344            break;
6345    }
6346    return validator;
6347};
6348const authFormValidators = {
6349    email: (value)=>{
6350        return authFormValidator(value, authFormFieldValidatorSwitch("email"));
6351    },
6352    password: (value)=>{
6353        return authFormValidator(value, authFormFieldValidatorSwitch("password"));
6354    },
6355    firstName: (value)=>{
6356        return authFormValidator(value, authFormFieldValidatorSwitch("firstName"));
6357    },
6358    lastName: (value)=>{
6359        return authFormValidator(value, authFormFieldValidatorSwitch("lastName"));
6360    }
6361};
6362const useForgotPassword = ()=>{
6363    const [forgotPasswordState, setForgotPasswordState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initialForgotPasswordState);
6364    const forgotPasswordStateHandler = (key, value)=>{
6365        setForgotPasswordState({
6366            ...forgotPasswordState,
6367            [key]: value
6368        });
6369    };
6370    return {
6371        forgotPasswordState,
6372        setForgotPasswordState,
6373        forgotPasswordStateHandler
6374    };
6375};
6376const useLogin = ()=>{
6377    const [loginState, setLoginState] = useState(initialCheckoutLoginState);
6378    const loginStateHandler = (key, value)=>{
6379        setLoginState({
6380            ...loginState,
6381            [key]: value
6382        });
6383    };
6384    return {
6385        loginState,
6386        setLoginState,
6387        loginStateHandler
6388    };
6389};
6390const useSignup = (initialState)=>{
6391    // const { locale } = useAppSelector((state) => state);
6392    const [signupState, setSignupState] = useState({
6393        ...initialCheckoutSignupState(),
6394        ...initialState
6395    });
6396    const signupStateHandler = (key, value)=>{
6397        setSignupState({
6398            ...signupState,
6399            [key]: value
6400        });
6401    };
6402    return {
6403        signupState,
6404        setSignupState,
6405        signupStateHandler
6406    };
6407};
6408
6409
6410/***/ }),
6411
6412/***/ 65353:
6413/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6414
6415"use strict";
6416
6417// EXPORTS
6418__webpack_require__.d(__webpack_exports__, {
6419  r: function() { return /* binding */ useCartSubscription; }
6420});
6421
6422// EXTERNAL MODULE: ./src/lib/configs/HeadersConfig.ts
6423var HeadersConfig = __webpack_require__(420957);
6424// EXTERNAL MODULE: ./src/api/api.ts
6425var api = __webpack_require__(445913);
6426// EXTERNAL MODULE: ./src/api/constants/RestEndpoints.ts
6427var RestEndpoints = __webpack_require__(179901);
6428;// CONCATENATED MODULE: ./src/api/cartSubscriptionApi.ts
6429
6430
6431
6432const updateSubscription = (interval)=>{
6433    const headers = (0,HeadersConfig/* buildHeaders */.us)(HeadersConfig/* cartIdHeader */.ZK);
6434    return api/* default */.ZP.put(RestEndpoints/* default */.Z.CART.SUBSCRIPTION.PUT, {
6435        interval
6436    }, {
6437        headers
6438    });
6439};
6440const deleteSubscription = ()=>{
6441    const headers = (0,HeadersConfig/* buildHeaders */.us)(HeadersConfig/* cartIdHeader */.ZK);
6442    return api/* default */.ZP.delete(RestEndpoints/* default */.Z.CART.SUBSCRIPTION.DELETE, {
6443        headers
6444    });
6445};
6446
6447// EXTERNAL MODULE: ./src/api/withAsync.ts
6448var withAsync = __webpack_require__(715904);
6449// EXTERNAL MODULE: ./src/lib/configs/environment.ts
6450var environment = __webpack_require__(208891);
6451// EXTERNAL MODULE: ./src/lib/store/cartSlice.ts + 1 modules
6452var cartSlice = __webpack_require__(484725);
6453// EXTERNAL MODULE: ./src/lib/store/hooks.ts
6454var hooks = __webpack_require__(267097);
6455// EXTERNAL MODULE: ./src/lib/utils/snackbarHandlers.ts
6456var snackbarHandlers = __webpack_require__(921134);
6457;// CONCATENATED MODULE: ./src/lib/hooks/useCartSubscription.ts
6458
6459
6460
6461
6462
6463
6464const DEFAULT_DELIVERY_SCHEDULE = 28;
6465const useCartSubscription = ()=>{
6466    var _nextAppEnv_feature_toggle_US_autoship;
6467    const { subscription } = (0,hooks/* useAppSelector */.C)(cartSlice/* cartSliceSelector */.Ew);
6468    var _subscription_interval;
6469    const interval = (_subscription_interval = subscription === null || subscription === void 0 ? void 0 : subscription.interval) !== null && _subscription_interval !== void 0 ? _subscription_interval : 0;
6470    const autoship = interval > 0;
6471    const dispatch = (0,hooks/* useAppDispatch */.T)();
6472    const handleAutoship = ()=>{
6473        const newAutoshipValue = !autoship;
6474        if (newAutoshipValue) {
6475            dispatch((0,cartSlice/* setSubscriptionInterval */.kC)(DEFAULT_DELIVERY_SCHEDULE));
6476            updateSubscriptionHandler(DEFAULT_DELIVERY_SCHEDULE);
6477        } else {
6478            dispatch((0,cartSlice/* setSubscriptionInterval */.kC)(0));
6479            deleteSubscriptionHandler();
6480        }
6481    };
6482    const handleDeliverySchedule = (event)=>{
6483        const value = event.target.value;
6484        updateSubscriptionHandler(Number(value));
6485    };
6486    const updateSubscriptionHandler = async (interval)=>{
6487        const response = await (0,withAsync/* withAsync */.j)(()=>updateSubscription(interval));
6488        responseHandler(response);
6489    };
6490    const deleteSubscriptionHandler = async ()=>{
6491        const response = await (0,withAsync/* withAsync */.j)(()=>deleteSubscription());
6492        responseHandler(response);
6493    };
6494    const responseHandler = (param)=>{
6495        let { response, error } = param;
6496        var _response_data_subscription, _response_data;
6497        const intervalFromResponse = response === null || response === void 0 ? void 0 : (_response_data = response.data) === null || _response_data === void 0 ? void 0 : (_response_data_subscription = _response_data.subscription) === null || _response_data_subscription === void 0 ? void 0 : _response_data_subscription.interval;
6498        if (typeof intervalFromResponse === "number") {
6499            dispatch((0,cartSlice/* setSubscriptionInterval */.kC)(intervalFromResponse));
6500        }
6501        if (error) {
6502            (0,snackbarHandlers/* axiosErrorHandler */.ri)({
6503                error,
6504                dispatch
6505            });
6506        }
6507    };
6508    return {
6509        autoship,
6510        interval,
6511        showUIComponents: autoship && ((_nextAppEnv_feature_toggle_US_autoship = environment.nextAppEnv.feature_toggle.US.autoship) === null || _nextAppEnv_feature_toggle_US_autoship === void 0 ? void 0 : _nextAppEnv_feature_toggle_US_autoship.toLocaleLowerCase()) === "on",
6512        handleAutoship,
6513        handleDeliverySchedule,
6514        updateSubscriptionHandler,
6515        deleteSubscriptionHandler
6516    };
6517};
6518
6519
6520/***/ }),
6521
6522/***/ 519511:
6523/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6524
6525"use strict";
6526/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6527/* harmony export */   Xl: function() { return /* binding */ useFormFieldValidation; },
6528/* harmony export */   dz: function() { return /* binding */ FORM_TYPES; }
6529/* harmony export */ });
6530/* unused harmony exports getFormErrorCodeMessage, getFormValidationMessage, getFormValidationErrorByLocale, resetFormActionActiveStatus, resetFormFieldErrorMessage */
6531/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(667294);
6532/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_constants_locale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(808439);
6533/* harmony import */ var _Constants_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(339114);
6534/* harmony import */ var _Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(348833);
6535/* harmony import */ var _Utils_errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(130642);
6536/* harmony import */ var _Utils_patterns__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(711091);
6537/* harmony import */ var _Utils_validation__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(928692);
6538/* harmony import */ var _wff_api_constants_error__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(635768);
6539
6540
6541
6542
6543
6544
6545
6546
6547const FORM_TYPES = {
6548    SIGNUP: "signup",
6549    LOGIN: "login",
6550    FORGOT_PASSWORD: "forgot_password",
6551    ACCOUNT_RESET: "account_reset"
6552};
6553const getFormErrorCodeMessage = (param)=>{
6554    let { error, errorCodeTranslation } = param;
6555    const formErrMsgs = [];
6556    Object.keys(errorCodeTranslation).forEach((key)=>{
6557        const matchingError = (0,_Utils_errors__WEBPACK_IMPORTED_MODULE_4__/* .findErrorCode */ .pD)({
6558            code: _wff_api_constants_error__WEBPACK_IMPORTED_MODULE_6__/* .ERROR_CODES */ .O[key],
6559            error
6560        });
6561        if (matchingError) {
6562            if (typeof errorCodeTranslation[key] === "string") {
6563                var _errorCodeTranslation_key;
6564                formErrMsgs.push((_errorCodeTranslation_key = errorCodeTranslation[key]) !== null && _errorCodeTranslation_key !== void 0 ? _errorCodeTranslation_key : "");
6565            } else {
6566                var _errorCodeTranslation_key1;
6567                var _errorCodeTranslation_key_message;
6568                formErrMsgs.push((_errorCodeTranslation_key_message = (_errorCodeTranslation_key1 = errorCodeTranslation[key]) === null || _errorCodeTranslation_key1 === void 0 ? void 0 : _errorCodeTranslation_key1.message) !== null && _errorCodeTranslation_key_message !== void 0 ? _errorCodeTranslation_key_message : "");
6569            }
6570        }
6571    });
6572    return formErrMsgs;
6573};
6574const getFormValidationMessage = (param)=>{
6575    let { type, formState, languageCode, validationTranslation } = param;
6576    const formErrMsgs = [];
6577    switch(languageCode){
6578        case _wildfork_commercetools_core_ui_dist_src_lib_constants_locale__WEBPACK_IMPORTED_MODULE_1__.LOCALE.EN_US:
6579        case _wildfork_commercetools_core_ui_dist_src_lib_constants_locale__WEBPACK_IMPORTED_MODULE_1__.LOCALE.EN_CA:
6580        case _wildfork_commercetools_core_ui_dist_src_lib_constants_locale__WEBPACK_IMPORTED_MODULE_1__.LOCALE.FR_CA:
6581        case _wildfork_commercetools_core_ui_dist_src_lib_constants_locale__WEBPACK_IMPORTED_MODULE_1__.LOCALE.ES_MX:
6582        default:
6583            if (type === FORM_TYPES.SIGNUP && (0,_Utils_validation__WEBPACK_IMPORTED_MODULE_7__/* .areAllKeysPresent */ .Z1)([
6584                _Constants_common__WEBPACK_IMPORTED_MODULE_2__/* .FORM_FIELD_KEYS */ .xh.EMAIL,
6585                _Constants_common__WEBPACK_IMPORTED_MODULE_2__/* .FORM_FIELD_KEYS */ .xh.PASSWORD,
6586                _Constants_common__WEBPACK_IMPORTED_MODULE_2__/* .FORM_FIELD_KEYS */ .xh.FIRST_NAME,
6587                _Constants_common__WEBPACK_IMPORTED_MODULE_2__/* .FORM_FIELD_KEYS */ .xh.FIRST_NAME
6588            ], formState) && !(formState === null || formState === void 0 ? void 0 : formState.email) && !(formState === null || formState === void 0 ? void 0 : formState.password) && !(formState === null || formState === void 0 ? void 0 : formState.firstName) && !(formState === null || formState === void 0 ? void 0 : formState.lastName)) {
6589                var _validationTranslation_allFieldsBlank;
6590                formErrMsgs.push((_validationTranslation_allFieldsBlank = validationTranslation === null || validationTranslation === void 0 ? void 0 : validationTranslation.allFieldsBlank) !== null && _validationTranslation_allFieldsBlank !== void 0 ? _validationTranslation_allFieldsBlank : "");
6591                return formErrMsgs;
6592            }
6593            if ((0,_Utils_validation__WEBPACK_IMPORTED_MODULE_7__/* .areAllKeysPresent */ .Z1)([
6594                _Constants_common__WEBPACK_IMPORTED_MODULE_2__/* .FORM_FIELD_KEYS */ .xh.PASSWORD,
6595                _Constants_common__WEBPACK_IMPORTED_MODULE_2__/* .FORM_FIELD_KEYS */ .xh.CONFIRM_PASSWORD
6596            ], formState) && (formState === null || formState === void 0 ? void 0 : formState.password) !== (formState === null || formState === void 0 ? void 0 : formState.confirmedPassword)) {
6597                var _validationTranslation_passwordsDoNotMatch;
6598                formErrMsgs.push((_validationTranslation_passwordsDoNotMatch = validationTranslation === null || validationTranslation === void 0 ? void 0 : validationTranslation.passwordsDoNotMatch) !== null && _validationTranslation_passwordsDoNotMatch !== void 0 ? _validationTranslation_passwordsDoNotMatch : "");
6599            }
6600            if ((0,_Utils_validation__WEBPACK_IMPORTED_MODULE_7__/* .isKeyPresent */ .aH)(_Constants_common__WEBPACK_IMPORTED_MODULE_2__/* .FORM_FIELD_KEYS */ .xh.EMAIL, formState) && _Utils_patterns__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z.EMAIL_ENDS_WITH_AT.test(formState === null || formState === void 0 ? void 0 : formState.email)) {
6601                var _validationTranslation_emailNeedsContentAfterAtSymbol;
6602                formErrMsgs.push((_validationTranslation_emailNeedsContentAfterAtSymbol = validationTranslation === null || validationTranslation === void 0 ? void 0 : validationTranslation.emailNeedsContentAfterAtSymbol) !== null && _validationTranslation_emailNeedsContentAfterAtSymbol !== void 0 ? _validationTranslation_emailNeedsContentAfterAtSymbol : "");
6603            }
6604            if ((0,_Utils_validation__WEBPACK_IMPORTED_MODULE_7__/* .isKeyPresent */ .aH)(_Constants_common__WEBPACK_IMPORTED_MODULE_2__/* .FORM_FIELD_KEYS */ .xh.EMAIL, formState) && !(0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_3__/* .validEmail */ .u$)(formState === null || formState === void 0 ? void 0 : formState.email)) {
6605                var _validationTranslation_emailBlank;
6606                formErrMsgs.push((_validationTranslation_emailBlank = validationTranslation === null || validationTranslation === void 0 ? void 0 : validationTranslation.emailBlank) !== null && _validationTranslation_emailBlank !== void 0 ? _validationTranslation_emailBlank : "");
6607            }
6608            if ((0,_Utils_validation__WEBPACK_IMPORTED_MODULE_7__/* .isKeyPresent */ .aH)(_Constants_common__WEBPACK_IMPORTED_MODULE_2__/* .FORM_FIELD_KEYS */ .xh.FIRST_NAME, formState) && !(0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_3__/* .validName */ .kb)(formState === null || formState === void 0 ? void 0 : formState.firstName)) {
6609                var _validationTranslation_firstNameBlank;
6610                formErrMsgs.push((_validationTranslation_firstNameBlank = validationTranslation === null || validationTranslation === void 0 ? void 0 : validationTranslation.firstNameBlank) !== null && _validationTranslation_firstNameBlank !== void 0 ? _validationTranslation_firstNameBlank : "");
6611            }
6612            if ((0,_Utils_validation__WEBPACK_IMPORTED_MODULE_7__/* .isKeyPresent */ .aH)(_Constants_common__WEBPACK_IMPORTED_MODULE_2__/* .FORM_FIELD_KEYS */ .xh.LAST_NAME, formState) && !(0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_3__/* .validName */ .kb)(formState === null || formState === void 0 ? void 0 : formState.lastName)) {
6613                var _validationTranslation_lastNameBlank;
6614                formErrMsgs.push((_validationTranslation_lastNameBlank = validationTranslation === null || validationTranslation === void 0 ? void 0 : validationTranslation.lastNameBlank) !== null && _validationTranslation_lastNameBlank !== void 0 ? _validationTranslation_lastNameBlank : "");
6615            }
6616            if (type === FORM_TYPES.LOGIN && (0,_Utils_validation__WEBPACK_IMPORTED_MODULE_7__/* .isKeyPresent */ .aH)(_Constants_common__WEBPACK_IMPORTED_MODULE_2__/* .FORM_FIELD_KEYS */ .xh.PASSWORD, formState) && !(0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_3__/* .validPassword */ .hE)(formState === null || formState === void 0 ? void 0 : formState.password)) {
6617                var _validationTranslation_passwordBlank;
6618                formErrMsgs.push((_validationTranslation_passwordBlank = validationTranslation === null || validationTranslation === void 0 ? void 0 : validationTranslation.passwordBlank) !== null && _validationTranslation_passwordBlank !== void 0 ? _validationTranslation_passwordBlank : "");
6619            }
6620            if (type !== FORM_TYPES.LOGIN && (0,_Utils_validation__WEBPACK_IMPORTED_MODULE_7__/* .isKeyPresent */ .aH)(_Constants_common__WEBPACK_IMPORTED_MODULE_2__/* .FORM_FIELD_KEYS */ .xh.PASSWORD, formState) && (0,_Utils_validation__WEBPACK_IMPORTED_MODULE_7__/* .isKeyPresent */ .aH)(_Constants_common__WEBPACK_IMPORTED_MODULE_2__/* .FORM_FIELD_KEYS */ .xh.CONFIRM_PASSWORD, formState) && (!(0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_3__/* .validStrongPassword */ .ST)(formState === null || formState === void 0 ? void 0 : formState.password) || !(0,_Lib_helpers_forms_FieldValidator__WEBPACK_IMPORTED_MODULE_3__/* .validStrongPassword */ .ST)(formState === null || formState === void 0 ? void 0 : formState.confirmedPassword))) {
6621                var _validationTranslation_passwordBlank1;
6622                formErrMsgs.push((_validationTranslation_passwordBlank1 = validationTranslation === null || validationTranslation === void 0 ? void 0 : validationTranslation.passwordBlank) !== null && _validationTranslation_passwordBlank1 !== void 0 ? _validationTranslation_passwordBlank1 : "");
6623            }
6624    }
6625    return formErrMsgs;
6626};
6627const getFormValidationErrorByLocale = (param)=>{
6628    let { type, error, touched, formState, languageCode, errorCodeTranslation, validationTranslation } = param;
6629    let formErrMsgs = [];
6630    // NOTE: remove this note when it is determined that a locale logic-fork is no longer relevant: at the time this was coded, there was no logical difference between the locales
6631    switch(languageCode){
6632        case _wildfork_commercetools_core_ui_dist_src_lib_constants_locale__WEBPACK_IMPORTED_MODULE_1__.LOCALE.EN_US:
6633        case _wildfork_commercetools_core_ui_dist_src_lib_constants_locale__WEBPACK_IMPORTED_MODULE_1__.LOCALE.EN_CA:
6634        case _wildfork_commercetools_core_ui_dist_src_lib_constants_locale__WEBPACK_IMPORTED_MODULE_1__.LOCALE.FR_CA:
6635        case _wildfork_commercetools_core_ui_dist_src_lib_constants_locale__WEBPACK_IMPORTED_MODULE_1__.LOCALE.ES_MX:
6636        default:
6637            if (touched) {
6638                formErrMsgs = [
6639                    ...formErrMsgs,
6640                    ...getFormErrorCodeMessage({
6641                        // api error response validation
6642                        error,
6643                        errorCodeTranslation: errorCodeTranslation
6644                    }),
6645                    ...getFormValidationMessage({
6646                        // standard input validation
6647                        type,
6648                        formState,
6649                        languageCode,
6650                        validationTranslation: validationTranslation
6651                    })
6652                ];
6653            }
6654            break;
6655    }
6656    return formErrMsgs;
6657};
6658const resetFormActionActiveStatus = (param)=>{
6659    let { setFormError, setFormActionIsActive } = param;
6660    setFormError(null);
6661    setFormActionIsActive(false);
6662};
6663const resetFormFieldErrorMessage = (param)=>{
6664    let { setFormErrorMessages } = param;
6665    setFormErrorMessages([]);
6666};
6667const useFormFieldValidation = (param)=>{
6668    let { type, touched: touchedDefault, formState, formAction, languageCode, errorCodeTranslation, validationTranslation } = param;
6669    const [touched, setTouched] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(touchedDefault !== null && touchedDefault !== void 0 ? touchedDefault : false);
6670    const [formError, setFormError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null); // error response from api call
6671    const [formErrorMessages, setFormErrorMessages] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]); // form error messages to be rendered
6672    const [formActionIsActive, setFormActionIsActive] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
6673    (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6674        if (formActionIsActive || formError) {
6675            const formErrMsgs = getFormValidationErrorByLocale({
6676                type,
6677                error: formError,
6678                touched,
6679                formState,
6680                languageCode,
6681                errorCodeTranslation,
6682                validationTranslation
6683            });
6684            setFormErrorMessages(formErrMsgs);
6685            resetFormActionActiveStatus({
6686                setFormError,
6687                setFormActionIsActive
6688            }); // reset the state params that were responsible for triggering this useEffect
6689            if (formActionIsActive && !(formErrMsgs === null || formErrMsgs === void 0 ? void 0 : formErrMsgs.length)) {
6690                resetFormFieldErrorMessage({
6691                    setFormErrorMessages
6692                }); // reset all error message state before submitting form
6693                formAction();
6694            }
6695        }
6696    }, [
6697        type,
6698        touched,
6699        formActionIsActive,
6700        formError,
6701        errorCodeTranslation,
6702        validationTranslation,
6703        formAction,
6704        formState,
6705        languageCode
6706    ]);
6707    return {
6708        touched,
6709        setTouched,
6710        formError,
6711        setFormError,
6712        formErrorMessages,
6713        setFormErrorMessages,
6714        setFormActionIsActive
6715    };
6716};
6717
6718
6719/***/ }),
6720
6721/***/ 207396:
6722/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6723
6724"use strict";
6725
6726// EXPORTS
6727__webpack_require__.d(__webpack_exports__, {
6728  Z: function() { return /* binding */ useStructureCartLineItemData; },
6729  O: function() { return /* binding */ useCTStructuredCartLineItem; }
6730});
6731
6732// EXTERNAL MODULE: ./node_modules/react/index.js
6733var react = __webpack_require__(667294);
6734// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/constants/commercetools.js
6735var commercetools = __webpack_require__(172271);
6736// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/utils/Logger.js
6737var Logger = __webpack_require__(101914);
6738var Logger_default = /*#__PURE__*/__webpack_require__.n(Logger);
6739// EXTERNAL MODULE: ./src/lib/configs/environment.ts
6740var environment = __webpack_require__(208891);
6741// EXTERNAL MODULE: ./src/lib/store/hooks.ts
6742var hooks = __webpack_require__(267097);
6743// EXTERNAL MODULE: ./src/lib/store/zipcodeSlice.tsx
6744var zipcodeSlice = __webpack_require__(480326);
6745// EXTERNAL MODULE: ./src/lib/utils/index.ts + 1 modules
6746var utils = __webpack_require__(71486);
6747// EXTERNAL MODULE: ./src/lib/utils/cartHelpers.ts
6748var cartHelpers = __webpack_require__(370490);
6749// EXTERNAL MODULE: ./src/lib/utils/cartUtils.tsx
6750var cartUtils = __webpack_require__(729890);
6751// EXTERNAL MODULE: ./src/lib/utils/commercetoolsUtils.ts
6752var commercetoolsUtils = __webpack_require__(575602);
6753// EXTERNAL MODULE: ./src/lib/utils/countrySpecificUtils/index.ts + 6 modules
6754var countrySpecificUtils = __webpack_require__(474005);
6755// EXTERNAL MODULE: ./src/lib/utils/currency.ts
6756var currency = __webpack_require__(444685);
6757;// CONCATENATED MODULE: ./src/lib/utils/measure.ts
6758const convertWeightFromString = (weightString)=>{
6759    // UOM = Unit Of Measure
6760    const UOM = (weightString === null || weightString === void 0 ? void 0 : weightString.includes("LB")) || (weightString === null || weightString === void 0 ? void 0 : weightString.includes("pounds")) ? "LB" : (weightString === null || weightString === void 0 ? void 0 : weightString.includes("KG")) || weightString.includes("kilograms") ? "KG" : "";
6761    return UOM;
6762};
6763const appendUOM = (figure, uom)=>{
6764    return "".concat(figure, " ").concat(uom);
6765};
6766
6767// EXTERNAL MODULE: ./src/lib/utils/string.ts
6768var string = __webpack_require__(960099);
6769;// CONCATENATED MODULE: ./src/lib/hooks/useStructureCartLineItemData.ts
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784const PROMOTION_ENABLED = environment.nextAppEnv.feature_toggle.US.isPromotionEnabled;
6785const SHOW_DISCOUNTED_PRICING = environment.nextAppEnv.feature_toggle.US.showDiscountedPricing;
6786const getImageDataFromCT = async (sku)=>{
6787    try {
6788        if ((0,cartUtils/* isAMembershipLineItem */.RW)(sku)) return "";
6789        return await (0,commercetoolsUtils/* getCTProductBySKU */.hn)(sku).then((res)=>{
6790            var _res_masterData, _currentProduct_masterVariant;
6791            const currentProduct = res === null || res === void 0 ? void 0 : (_res_masterData = res.masterData) === null || _res_masterData === void 0 ? void 0 : _res_masterData.current;
6792            const images = currentProduct === null || currentProduct === void 0 ? void 0 : (_currentProduct_masterVariant = currentProduct.masterVariant) === null || _currentProduct_masterVariant === void 0 ? void 0 : _currentProduct_masterVariant.images;
6793            return images && images.length > 0 ? images[0].url : "";
6794        });
6795    } catch (e) {
6796        Logger_default().info("error getting lineItem image");
6797        return "";
6798    }
6799};
6800const getPriceWithCurrency = (price)=>utils/* currency */.Aq === null || utils/* currency */.Aq === void 0 ? void 0 : utils/* currency.format */.Aq.format(utils/* currency */.Aq === null || utils/* currency */.Aq === void 0 ? void 0 : utils/* currency.convertToDollar */.Aq.convertToDollar(price));
6801const useCTStructuredCartLineItem = (lineItem)=>{
6802    var _product_masterData_current, _product_masterData, _product_productType_obj, _product_productType, _product_masterData_current_masterVariant_attributes_f
6802ind, _product_masterData_current_masterVariant_attributes, _product_masterData_current_masterVariant, _product_masterData_current1, _product_masterData1;
6803    const stateFromZip = (0,hooks/* useAppSelector */.C)(zipcodeSlice/* selectStateFromZip */.kR);
6804    const sku = lineItem.sku;
6805    const [product, setProduct] = (0,react.useState)(null);
6806    const productMaterVariant = product === null || product === void 0 ? void 0 : (_product_masterData = product.masterData) === null || _product_masterData === void 0 ? void 0 : (_product_masterData_current = _product_masterData.current) === null || _product_masterData_current === void 0 ? void 0 : _product_masterData_current.masterVariant;
6807    const isAMembership = (0,cartUtils/* isAMembershipLineItem */.RW)(sku);
6808    (0,react.useEffect)(()=>{
6809        const CTProductData = async ()=>{
6810            try {
6811                const product = await (0,commercetoolsUtils/* getCTProductBySKU */.hn)(sku);
6812                return product;
6813            } catch (err) {
6814                Logger_default().info("error getting CartLineItem products, Error:", err);
6815                return null;
6816            }
6817        };
6818        const getCTLineItemData = async ()=>{
6819            const data = await CTProductData();
6820            if (data) {
6821                setProduct(data);
6822            }
6823        };
6824        getCTLineItemData();
6825    }, [
6826        sku
6827    ]);
6828    const productName = product === null || product === void 0 ? void 0 : (_product_productType = product.productType) === null || _product_productType === void 0 ? void 0 : (_product_productType_obj = _product_productType.obj) === null || _product_productType_obj === void 0 ? void 0 : _product_productType_obj.name;
6829    const isBundle = productName ? (0,cartHelpers/* isBundleItem */.Dp)(productName) : undefined;
6830    const isProductSet = productName ? (0,cartHelpers/* isTypeProductSet */.gZ)(productName) : false;
6831    const attributes = productMaterVariant === null || productMaterVariant === void 0 ? void 0 : productMaterVariant.attributes;
6832    const hasProp65Warning = (0,cartHelpers/* checkProp65Warning */.Zu)(attributes);
6833    const productSetItems = (0,cartHelpers/* getSetItemProducts */.vS)(attributes !== null && attributes !== void 0 ? attributes : []);
6834    const isFixedProductSet = productSetItems === null || productSetItems === void 0 ? void 0 : productSetItems.every((product)=>product.isFixedPrice);
6835    const promotionText = PROMOTION_ENABLED ? (0,cartHelpers/* getPromotionText */.jZ)(attributes !== null && attributes !== void 0 ? attributes : []) : null;
6836    // If present, extract maxQty from attributes array of objects and expose it.
6837    const maxQty = product === null || product === void 0 ? void 0 : (_product_masterData1 = product.masterData) === null || _product_masterData1 === void 0 ? void 0 : (_product_masterData_current1 = _product_masterData1.current) === null || _product_masterData_current1 === void 0 ? void 0 : (_product_masterData_current_masterVariant = _product_masterData_current1.masterVariant) === null || _product_masterData_current_masterVariant === void 0 ? void 0 : (_product_masterData_current_masterVariant_attributes = _product_masterData_current_masterVariant.attributes) === null || _product_masterData_current_masterVariant_attributes === void 0 ? void 0 : (_product_masterData_current_masterVariant_attributes_f
6837ind = _product_masterData_current_masterVariant_attributes.find((e)=>e.name === commercetools/* COMMERCETOOLS_ATTRIBUTES */.b.MAX_QTY)) === null || _product_masterData_current_masterVariant_attributes_find === void 0 ? void 0 : _product_masterData_current_masterVariant_attributes_find.value;
6838    const totalPricePerItemDiscountedText = PROMOTION_ENABLED && SHOW_DISCOUNTED_PRICING && lineItem.totalDiscountedPrice ? getPriceWithCurrency(lineItem.totalDiscountedPrice / lineItem.quantity) : undefined;
6839    const perUnitDiscountedPriceText = PROMOTION_ENABLED && SHOW_DISCOUNTED_PRICING && lineItem.discountedPricePerLb ? "".concat(getPriceWithCurrency(lineItem.discountedPricePerLb), "/LB") : undefined;
6840    const rawTotalPriceText = getPriceWithCurrency(lineItem.rawTotalPrice / lineItem.quantity);
6841    const perUnitPriceText = (0,countrySpecificUtils/* getPerUnitPriceText */.Cj)(isAMembership, lineItem);
6842    const weightText = (0,countrySpecificUtils/* getCartLineItemWeightText */.sP)(lineItem);
6843    const newLineItem = {
6844        ...lineItem,
6845        hasProp65Warning: hasProp65Warning && stateFromZip === "CA",
6846        isBundle,
6847        isProductSet,
6848        isFixedProductSet,
6849        maxQty,
6850        perUnitPriceText,
6851        totalProductPriceInCents: SHOW_DISCOUNTED_PRICING ? lineItem.totalPrice / lineItem.quantity : lineItem.rawTotalPrice / lineItem.quantity,
6852        perUnitDiscountedPriceText,
6853        totalPricePerItemDiscountedText,
6854        rawTotalPriceText,
6855        promotionText,
6856        weightText
6857    };
6858    return newLineItem;
6859};
6860function useStructureCartLineItemData(item) {
6861    let unitOfWeight = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "LB";
6862    const { regionId } = (0,hooks/* useAppSelector */.C)(zipcodeSlice/* ZipCodeSelector */.pz);
6863    const sku = item.sku;
6864    const weight = Number((0,string/* get1stSubstring */.h$)(item === null || item === void 0 ? void 0 : item.weightText));
6865    const netWeight = weight ? weight.toLocaleString(undefined, {
6866        maximumFractionDigits: 2
6867    }) + " ".concat(unitOfWeight) : "";
6868    const perUnitPrice = Number(item.perUnitPriceText);
6869    const isFixedPrice = item.isFixedPrice;
6870    const UOM = convertWeightFromString((0,string/* get2ndSubstring */.BK)(item === null || item === void 0 ? void 0 : item.weightText));
6871    const weightText = (0,countrySpecificUtils/* formatNetWeight */.f8)(weight, UOM, isFixedPrice);
6872    const unitPrice = (0,cartHelpers/* GetPerWeightPrice */.TC)({
6873        price: perUnitPrice,
6874        UOM,
6875        regionId
6876    });
6877    const totalPrice = utils/* currency.format */.Aq.format((0,currency.convertToDollar)((item === null || item === void 0 ? void 0 : item.totalPrice) / (item === null || item === void 0 ? void 0 : item.quantity)));
6878    const dispatch = (0,hooks/* useAppDispatch */.T)();
6879    const [productImageUrl, setProductImageUrl] = (0,react.useState)("");
6880    (0,react.useEffect)(()=>{
6881        const waitForImage = async ()=>{
6882            return await getImageDataFromCT(sku).then((image)=>setProductImageUrl(image)).catch((err)=>{
6883                Logger_default().info("error getting CartLineItem image, Error:", err);
6884                return "";
6885            });
6886        };
6887        waitForImage();
6888    }, [
6889        sku
6890    ]);
6891    return {
6892        sku,
6893        productImageUrl,
6894        netWeight,
6895        weightText,
6896        unitPrice,
6897        totalPrice,
6898        isFixedPrice,
6899        dispatch
6900    };
6901}
6902
6903
6904/***/ }),
6905
6906/***/ 53306:
6907/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6908
6909"use strict";
6910/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6911/* harmony export */   f: function() { return /* binding */ useWrongCredentialsMaxAttempts; }
6912/* harmony export */ });
6913/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(667294);
6914/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(305208);
6915/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wildfork_commercetools_core_ui_dist_src_lib_utils__WEBPACK_IMPORTED_MODULE_1__);
6916/* harmony import */ var _Lib_configs_environment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(208891);
6917
6918
6919
6920const useWrongCredentialsMaxAttempts = (param)=>{
6921    let { axiosError, maxAttempts = _Lib_configs_environment__WEBPACK_IMPORTED_MODULE_2__.nextAppEnv.application.wrongPasswordMax, onMaxAttemptsExceeded } = param;
6922    const wrongCredentialAttempts = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);
6923    const hasEnteredWrongCredentials = _wildfork_commercetools_core_ui_dist_src_lib_utils__WEBPACK_IMPORTED_MODULE_1__.AxiosErrorUtils.isUnauthorizedError(axiosError);
6924    (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
6925        if (hasEnteredWrongCredentials) {
6926            wrongCredentialAttempts.current += 1;
6927            if (wrongCredentialAttempts.current >= maxAttempts) {
6928                onMaxAttemptsExceeded();
6929                wrongCredentialAttempts.current = 0;
6930            }
6931        }
6932    }, [
6933        hasEnteredWrongCredentials,
6934        maxAttempts,
6935        onMaxAttemptsExceeded
6936    ]);
6937};
6938
6939
6940/***/ }),
6941
6942/***/ 108204:
6943/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6944
6945"use strict";
6946/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6947/* harmony export */   z: function() { return /* binding */ DeletePaymentMethodType; }
6948/* harmony export */ });
6949var DeletePaymentMethodType;
6950(function(DeletePaymentMethodType) {
6951    DeletePaymentMethodType["EBT"] = "ebt";
6952    DeletePaymentMethodType["GIFT_CARD"] = "giftcard";
6953})(DeletePaymentMethodType || (DeletePaymentMethodType = {}));
6954
6955
6956/***/ }),
6957
6958/***/ 637938:
6959/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6960
6961"use strict";
6962/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6963/* harmony export */   O: function() { return /* binding */ CheckoutAccountType; }
6964/* harmony export */ });
6965var CheckoutAccountType;
6966(function(CheckoutAccountType) {
6967    CheckoutAccountType["LOGIN"] = "Login";
6968    CheckoutAccountType["SIGNUP"] = "Signup";
6969    CheckoutAccountType["GUEST_CHECKOUT"] = "Guest Checkout";
6970})(CheckoutAccountType || (CheckoutAccountType = {}));
6971
6972
6973/***/ }),
6974
6975/***/ 960099:
6976/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6977
6978"use strict";
6979/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6980/* harmony export */   BK: function() { return /* binding */ get2ndSubstring; },
6981/* harmony export */   PH: function() { return /* binding */ getIndefiniteArticle; },
6982/* harmony export */   h$: function() { return /* binding */ get1stSubstring; },
6983/* harmony export */   kC: function() { return /* binding */ capitalize; }
6984/* harmony export */ });
6985/* unused harmony export getSubstringByIndex */
6986const getSubstringByIndex = (string, index)=>{
6987    var _string_trim_split, _string_trim;
6988    var _string_trim_split_index;
6989    const substring = (_string_trim_split_index = string === null || string === void 0 ? void 0 : (_string_trim = string.trim()) === null || _str
6989ing_trim === void 0 ? void 0 : (_string_trim_split = _string_trim.split(" ")) === null || _string_trim_split === void 0 ? void 0 : _string_trim_split[index]) !== null && _string_trim_split_index !== void 0 ? _string_trim_split_index : "";
6990    return substring;
6991};
6992const get1stSubstring = (string)=>{
6993    return getSubstringByIndex(string, 0);
6994};
6995const get2ndSubstring = (string)=>{
6996    return getSubstringByIndex(string, 1);
6997};
6998const getIndefiniteArticle = function() {
6999    let word = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "";
7000    const vowels = [
7001        "a",
7002        "e",
7003        "i",
7004        "o",
7005        "u"
7006    ];
7007    const lowerCaseWord = word.toLowerCase().trim();
7008    const article = vowels.includes(lowerCaseWord.charAt(0)) ? "an" : "a";
7009    return "".concat(article);
7010};
7011const capitalize = (text)=>{
7012    return text.toLowerCase().split(" ").map((word)=>word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
7013};
7014
7015
7016/***/ }),
7017
7018/***/ 242124:
7019/***/ (function(module) {
7020
7021// extracted by mini-css-extract-plugin
7022module.exports = {"address-verification-modal":"AddressVerificationModal_address-verification-modal__4oC16","address-verification-modal__wrapper":"AddressVerificationModal_address-verification-modal__wrapper__RN4qg","address-verification-modal-modal__overlay":"AddressVerificationModal_address-verification-modal-modal__overlay__JRB_F","address-verification-modal__content":"AddressVerificationModal_address-verification-modal__content__e_4Zv","address-verification-modal__title":"AddressVerificationModal_address-verification-modal__title__l5Qtr","address-verification-modal__subtitle":"AddressVerificationModal_address-verification-modal__subtitle__yb6NP","address-verification-modal__body":"AddressVerificationModal_address-verification-modal__body__WVDpH","address-verification-modal__card":"AddressVerificationModal_address-verification-modal__card__QzmMd","address-verification-modal__card-title":"AddressVerificationModal_address-verification-modal__card-title__NRmbb","address-verification-modal__card-edit-text-button":"AddressVerificationModal_address-verification-modal__card-edit-text-button__qunpj","address-verification-modal__error-card":"AddressVerificationModal_address-verification-modal__error-card__j2579","address-verification-modal__error-card__message":"AddressVerificationModal_address-verification-modal__error-card__message__mXhl8","address-verification-modal__footer":"AddressVerificationModal_address-verification-modal__footer__XmhI7","address-verification-modal__close":"AddressVerificationModal_address-verification-modal__close__mFVI3","address-verification-modal__button":"AddressVerificationModal_address-verification-modal__button__k3ZOe"};
7023
7024/***/ }),
7025
7026/***/ 160186:
7027/***/ (function(module) {
7028
7029// extracted by mini-css-extract-plugin
7030module.exports = {"text__field":"FormTextField_text__field__HZ5QX","text__field-error":"FormTextField_text__field-error__aoMZE","standard_outlined":"FormTextField_standard_outlined__QQ_jE","required":"FormTextField_required__PXFEx","error-message":"FormTextField_error-message__mWs5k"};
7031
7032/***/ }),
7033
7034/***/ 809525:
7035/***/ (function(module) {
7036
7037// extracted by mini-css-extract-plugin
7038module.exports = {"form__messages":"LoginForm_form__messages__b4nG_","form__messages__heading1":"LoginForm_form__messages__heading1__Ykgls","form__messages__heading2":"LoginForm_form__messages__heading2__oAh5K","form__error_container":"LoginForm_form__error_container__YxNEH","update-password-notification":"LoginForm_update-password-notification__dzGbS","update-password-notification--loading":"LoginForm_update-password-notification--loading__kxR8M","submit-button":"LoginForm_submit-button__QWCT3","forgot-password":"LoginForm_forgot-password__Uf7X_"};
7039
7040/***/ }),
7041
7042/***/ 294784:
7043/***/ (function(module) {
7044
7045// extracted by mini-css-extract-plugin
7046module.exports = {"accordion":"Accordion_accordion__q7ryf"};
7047
7048/***/ }),
7049
7050/***/ 648466:
7051/***/ (function(module) {
7052
7053// extracted by mini-css-extract-plugin
7054module.exports = {"accordion-item-content":"AccordionItemContent_accordion-item-content__MFrfr","accordion-item-content-pickup":"AccordionItemContent_accordion-item-content-pickup__ibwCy"};
7055
7056/***/ }),
7057
7058/***/ 675730:
7059/***/ (function(module) {
7060
7061// extracted by mini-css-extract-plugin
7062module.exports = {"accordion-item-header":"AccordionItemHeader_accordion-item-header__I27iU","accordion-item-header-pickup":"AccordionItemHeader_accordion-item-header-pickup__n7y8k","accordion-item-header--disabled":"AccordionItemHeader_accordion-item-header--disabled__v9lM9","accordion-item-header-pickup--disabled":"AccordionItemHeader_accordion-item-header-pickup--disabled__jAjFt","input-radio":"AccordionItemHeader_input-radio__bW05t","checkmark-red":"AccordionItemHeader_checkmark-red__n2TMD","checkmark-black":"AccordionItemHeader_checkmark-black__aoHWZ","checkmark-white":"AccordionItemHeader_checkmark-white___QjqI"};
7063
7064/***/ }),
7065
7066/***/ 150424:
7067/***/ (function(module) {
7068
7069// extracted by mini-css-extract-plugin
7070module.exports = {"btn--disabled":"Button_btn--disabled__ts722","btn":"Button_btn__sZQtM"};
7071
7072/***/ }),
7073
7074/***/ 527013:
7075/***/ (function(module) {
7076
7077// extracted by mini-css-extract-plugin
7078module.exports = {"modal":"Modal_modal__wS92s","modal__wrapper":"Modal_modal__wrapper__MY7J4","modal__layout":"Modal_modal__layout__uCIaU","modal__header":"Modal_modal__header__uY1_v","modal__body":"Modal_modal__body__kvjWt","modal__close":"Modal_modal__close__iZATs"};
7079
7080/***/ }),
7081
7082/***/ 814102:
7083/***/ (function(module) {
7084
7085// extracted by mini-css-extract-plugin
7086module.exports = {"select-container":"Select_select-container__UadQM","required":"Select_required__qDi_5","input-blue":"Select_input-blue__cPnPM","error-text":"Select_error-text__v3W0k","disabled-select":"Select_disabled-select__5qMr_"};
7087
7088/***/ }),
7089
7090/***/ 850765:
7091/***/ (function(module) {
7092
7093// extracted by mini-css-extract-plugin
7094module.exports = {"input-container":"TextField_input-container___F9eN","required":"TextField_required__aeDhw","tooltip":"TextField_tooltip__g48tt","input-grey":"TextField_input-grey__EBkb6","text-field--error":"TextField_text-field--error___ySkg","error":"TextField_error__NkxWo","error-text":"TextField_error-text__J2OTF","previewicon":"TextField_previewicon__ATwT4","previewicon--show":"TextField_previewicon--show__UXvgy","disabled-text-feild":"TextField_disabled-text-feild__zn6Ya"};
7095
7096/***/ })
7097
7098}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.