PageSourceSearch

https://wildforkfoods.com/_next/static/chunks/1772-fb6406c3c1348f2c.js

js wildforkfoods.com collected 2026-09-24 09:22:19 UTC 445,146 bytes, 11,866 lines download raw bytes

1(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([[1772],{
2
3/***/ 461876:
4/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5
6"use strict";
7
8// EXPORTS
9__webpack_require__.d(__webpack_exports__, {
10  xC: function() { return /* binding */ configureStore; },
11  hg: function() { return /* binding */ createAsyncThunk; },
12  e: function() { return /* binding */ createListenerMiddleware; },
13  oM: function() { return /* binding */ createSlice; },
14  Gx: function() { return /* binding */ isAsyncThunkAction; }
15});
16
17// UNUSED EXPORTS: EnhancerArray, MiddlewareArray, SHOULD_AUTOBATCH, TaskAbortError, __DO_NOT_USE__ActionTypes, addListener, applyMiddleware, autoBatchEnhancer, bindActionCreators, clearAllListeners, combineReducers, compose, createAction, createActionCreatorInvariantMiddleware, createDraftSafeSelector, createEntityAdapter, createImmutableStateInvariantMiddleware, createNextState, createReducer, createSelector, createSerializableStateInvariantMiddleware, createStore, current, findNonSerializableValue, freeze, getDefaultMiddleware, getType, isAction, isActionCreator, isAllOf, isAnyOf, isDraft, isFluxStandardAction, isFulfilled, isImmutableDefault, isPending, isPlain, isPlainObject, isRejected, isRejectedWithValue, legacy_createStore, miniSerializeError, nanoid, original, prepareAutoBatched, removeListener, unwrapResult
18
19// EXTERNAL MODULE: ./node_modules/immer/dist/immer.esm.mjs
20var immer_esm = __webpack_require__(512902);
21// EXTERNAL MODULE: ./node_modules/redux/es/redux.js
22var redux = __webpack_require__(14890);
23;// CONCATENATED MODULE: ./node_modules/redux-thunk/es/index.js
24/** A function that accepts a potential "extra argument" value to be injected later,
25 * and returns an instance of the thunk middleware that uses that value
26 */
27function createThunkMiddleware(extraArgument) {
28  // Standard Redux middleware definition pattern:
29  // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware
30  var middleware = function middleware(_ref) {
31    var dispatch = _ref.dispatch,
32        getState = _ref.getState;
33    return function (next) {
34      return function (action) {
35        // The thunk middleware looks for any functions that were passed to `store.dispatch`.
36        // If this "action" is really a function, call it and return the result.
37        if (typeof action === 'function') {
38          // Inject the store's `dispatch` and `getState` methods, as well as any "extra arg"
39          return action(dispatch, getState, extraArgument);
40        } // Otherwise, pass the action down the middleware chain as usual
41
42
43        return next(action);
44      };
45    };
46  };
47
48  return middleware;
49}
50
51var thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version
52// with whatever "extra arg" they want to inject into their thunks
53
54thunk.withExtraArgument = createThunkMiddleware;
55/* harmony default export */ var es = (thunk);
56;// CONCATENATED MODULE: ./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js
57/* provided dependency */ var process = __webpack_require__(683454);
58var __extends = (undefined && undefined.__extends) || (function () {
59    var extendStatics = function (d, b) {
60        extendStatics = Object.setPrototypeOf ||
61            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
62            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
63        return extendStatics(d, b);
64    };
65    return function (d, b) {
66        if (typeof b !== "function" && b !== null)
67            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
68        extendStatics(d, b);
69        function __() { this.constructor = d; }
70        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
71    };
72})();
73var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
74    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
75    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
76    function verb(n) { return function (v) { return step([n, v]); }; }
77    function step(op) {
78        if (f) throw new TypeError("Generator is already executing.");
79        while (_) try {
80            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
81            if (y = 0, t) op = [op[0] & 2, t.value];
82            switch (op[0]) {
83                case 0: case 1: t = op; break;
84                case 4: _.label++; return { value: op[1], done: false };
85                case 5: _.label++; y = op[1]; op = [0]; continue;
86                case 7: op = _.ops.pop(); _.trys.pop(); continue;
87                default:
88                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
89                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
90                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
91                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
92                    if (t[2]) _.ops.pop();
93                    _.trys.pop(); continue;
94            }
95            op = body.call(thisArg, _);
96        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
97        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
98    }
99};
100var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from) {
101    for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
102        to[j] = from[i];
103    return to;
104};
105var __defProp = Object.defineProperty;
106var __defProps = Object.defineProperties;
107var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
108var __getOwnPropSymbols = Object.getOwnPropertySymbols;
109var __hasOwnProp = Object.prototype.hasOwnProperty;
110var __propIsEnum = Object.prototype.propertyIsEnumerable;
111var __defNormalProp = function (obj, key, value) { return key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value }) : obj[key] = value; };
112var __spreadValues = function (a, b) {
113    for (var prop in b || (b = {}))
114        if (__hasOwnProp.call(b, prop))
115            __defNormalProp(a, prop, b[prop]);
116    if (__getOwnPropSymbols)
117        for (var _i = 0, _c = __getOwnPropSymbols(b); _i < _c.length; _i++) {
118            var prop = _c[_i];
119            if (__propIsEnum.call(b, prop))
120                __defNormalProp(a, prop, b[prop]);
121        }
122    return a;
123};
124var __spreadProps = function (a, b) { return __defProps(a, __getOwnPropDescs(b)); };
125var __async = function (__this, __arguments, generator) {
126    return new Promise(function (resolve, reject) {
127        var fulfilled = function (value) {
128            try {
129                step(generator.next(value));
130            }
131            catch (e) {
132                reject(e);
133            }
134        };
135        var rejected = function (value) {
136            try {
137                step(generator.throw(value));
138            }
139            catch (e) {
140                reject(e);
141            }
142        };
143        var step = function (x) { return x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); };
144        step((generator = generator.apply(__this, __arguments)).next());
145    });
146};
147// src/index.ts
148
149
150
151
152// src/createDraftSafeSelector.ts
153
154
155var createDraftSafeSelector = function () {
156    var args = [];
157    for (var _i = 0; _i < arguments.length; _i++) {
158        args[_i] = arguments[_i];
159    }
160    var selector = createSelector.apply(void 0, args);
161    var wrappedSelector = function (value) {
162        var rest = [];
163        for (var _i = 1; _i < arguments.length; _i++) {
164            rest[_i - 1] = arguments[_i];
165        }
166        return selector.apply(void 0, __spreadArray([isDraft(value) ? current(value) : value], rest));
167    };
168    return wrappedSelector;
169};
170// src/configureStore.ts
171
172// src/devtoolsExtension.ts
173
174var composeWithDevTools = typeof window !== "undefined" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {
175    if (arguments.length === 0)
176        return void 0;
177    if (typeof arguments[0] === "object")
178        return redux/* compose */.qC;
179    return redux/* compose */.qC.apply(null, arguments);
180};
181var devToolsEnhancer = typeof window !== "undefined" && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function () {
182    return function (noop2) {
183        return noop2;
184    };
185};
186// src/isPlainObject.ts
187function isPlainObject(value) {
188    if (typeof value !== "object" || value === null)
189        return false;
190    var proto = Object.getPrototypeOf(value);
191    if (proto === null)
192        return true;
193    var baseProto = proto;
194    while (Object.getPrototypeOf(baseProto) !== null) {
195        baseProto = Object.getPrototypeOf(baseProto);
196    }
197    return proto === baseProto;
198}
199// src/getDefaultMiddleware.ts
200
201// src/tsHelpers.ts
202var hasMatchFunction = function (v) {
203    return v && typeof v.match === "function";
204};
205// src/createAction.ts
206function createAction(type, prepareAction) {
207    function actionCreator() {
208        var args = [];
209        for (var _i = 0; _i < arguments.length; _i++) {
210            args[_i] = arguments[_i];
211        }
212        if (prepareAction) {
213            var prepared = prepareAction.apply(void 0, args);
214            if (!prepared) {
215                throw new Error("prepareAction did not return an object");
216            }
217            return __spreadValues(__spreadValues({
218                type: type,
219                payload: prepared.payload
220            }, "meta" in prepared && { meta: prepared.meta }), "error" in prepared && { error: prepared.error });
221        }
222        return { type: type, payload: args[0] };
223    }
224    actionCreator.toString = function () { return "" + type; };
225    actionCreator.type = type;
226    actionCreator.match = function (action) { return action.type === type; };
227    return actionCreator;
228}
229function isAction(action) {
230    return isPlainObject(action) && "type" in action;
231}
232function isActionCreator(action) {
233    return typeof action === "function" && "type" in action && hasMatchFunction(action);
234}
235function isFSA(action) {
236    return isAction(action) && typeof action.type === "string" && Object.keys(action).every(isValidKey);
237}
238function isValidKey(key) {
239    return ["type", "payload", "error", "meta"].indexOf(key) > -1;
240}
241function getType(actionCreator) {
242    return "" + actionCreator;
243}
244// src/actionCreatorInvariantMiddleware.ts
245function getMessage(type) {
246    var splitType = type ? ("" + type).split("/") : [];
247    var actionName = splitType[splitType.length - 1] || "actionCreator";
248    return "Detected an action creator with type \"" + (type || "unknown") + "\" being dispatched. \nMake sure you're calling the action creator before dispatching, i.e. `dispatch(" + actionName + "())` instead of `dispatch(" + actionName + ")`. This is necessary even if the action has no payload.";
249}
250function createActionCreatorInvariantMiddleware(options) {
251    if (options === void 0) { options = {}; }
252    if (true) {
253        return function () { return function (next) { return function (action) { return next(action); }; }; };
254    }
255    var _c = options.isActionCreator, isActionCreator2 = _c === void 0 ? isActionCreator : _c;
256    return function () { return function (next) { return function (action) {
257        if (isActionCreator2(action)) {
258            console.warn(getMessage(action.type));
259        }
260        return next(action);
261    }; }; };
262}
263// src/utils.ts
264
265function getTimeMeasureUtils(maxDelay, fnName) {
266    var elapsed = 0;
267    return {
268        measureTime: function (fn) {
269            var started = Date.now();
270            try {
271                return fn();
272            }
273            finally {
274                var finished = Date.now();
275                elapsed += finished - started;
276            }
277        },
278        warnIfExceeded: function () {
279            if (elapsed > maxDelay) {
280                console.warn(fnName + " took " + elapsed + "ms, which is more than the warning threshold of " + maxDelay + "ms. \nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\nIt is disabled in production builds, so you don't need to worry about that.");
281            }
282        }
283    };
284}
285var MiddlewareArray = /** @class */ (function (_super) {
286    __extends(MiddlewareArray, _super);
287    function MiddlewareArray() {
288        var args = [];
289        for (var _i = 0; _i < arguments.length; _i++) {
290            args[_i] = arguments[_i];
291        }
292        var _this = _super.apply(this, args) || this;
293        Object.setPrototypeOf(_this, MiddlewareArray.prototype);
294        return _this;
295    }
296    Object.defineProperty(MiddlewareArray, Symbol.species, {
297        get: function () {
298            return MiddlewareArray;
299        },
300        enumerable: false,
301        configurable: true
302    });
303    MiddlewareArray.prototype.concat = function () {
304        var arr = [];
305        for (var _i = 0; _i < arguments.length; _i++) {
306            arr[_i] = arguments[_i];
307        }
308        return _super.prototype.concat.apply(this, arr);
309    };
310    MiddlewareArray.prototype.prepend = function () {
311        var arr = [];
312        for (var _i = 0; _i < arguments.length; _i++) {
313            arr[_i] = arguments[_i];
314        }
315        if (arr.length === 1 && Array.isArray(arr[0])) {
316            return new (MiddlewareArray.bind.apply(MiddlewareArray, __spreadArray([void 0], arr[0].concat(this))))();
317        }
318        return new (MiddlewareArray.bind.apply(MiddlewareArray, __spreadArray([void 0], arr.concat(this))))();
319    };
320    return MiddlewareArray;
321}(Array));
322var EnhancerArray = /** @class */ (function (_super) {
323    __extends(EnhancerArray, _super);
324    function EnhancerArray() {
325        var args = [];
326        for (var _i = 0; _i < arguments.length; _i++) {
327            args[_i] = arguments[_i];
328        }
329        var _this = _super.apply(this, args) || this;
330        Object.setPrototypeOf(_this, EnhancerArray.prototype);
331        return _this;
332    }
333    Object.defineProperty(EnhancerArray, Symbol.species, {
334        get: function () {
335            return EnhancerArray;
336        },
337        enumerable: false,
338        configurable: true
339    });
340    EnhancerArray.prototype.concat = function () {
341        var arr = [];
342        for (var _i = 0; _i < arguments.length; _i++) {
343            arr[_i] = arguments[_i];
344        }
345        return _super.prototype.concat.apply(this, arr);
346    };
347    EnhancerArray.prototype.prepend = function () {
348        var arr = [];
349        for (var _i = 0; _i < arguments.length; _i++) {
350            arr[_i] = arguments[_i];
351        }
352        if (arr.length === 1 && Array.isArray(arr[0])) {
353            return new (EnhancerArray.bind.apply(EnhancerArray, __spreadArray([void 0], arr[0].concat(this))))();
354        }
355        return new (EnhancerArray.bind.apply(EnhancerArray, __spreadArray([void 0], arr.concat(this))))();
356    };
357    return EnhancerArray;
358}(Array));
359function freezeDraftable(val) {
360    return (0,immer_esm/* isDraftable */.o$)(val) ? (0,immer_esm/* default */.ZP)(val, function () {
361    }) : val;
362}
363// src/immutableStateInvariantMiddleware.ts
364var isProduction = (/* unused pure expression or super */ null && ("production" === "production"));
365var prefix = "Invariant failed";
366function invariant(condition, message) {
367    if (condition) {
368        return;
369    }
370    if (isProduction) {
371        throw new Error(prefix);
372    }
373    throw new Error(prefix + ": " + (message || ""));
374}
375function stringify(obj, serializer, indent, decycler) {
376    return JSON.stringify(obj, getSerialize(serializer, decycler), indent);
377}
378function getSerialize(serializer, decycler) {
379    var stack = [], keys = [];
380    if (!decycler)
381        decycler = function (_, value) {
382            if (stack[0] === value)
383                return "[Circular ~]";
384            return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]";
385        };
386    return function (key, value) {
387        if (stack.length > 0) {
388            var thisPos = stack.indexOf(this);
389            ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);
390            ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);
391            if (~stack.indexOf(value))
392                value = decycler.call(this, key, value);
393        }
394        else
395            stack.push(value);
396        return serializer == null ? value : serializer.call(this, key, value);
397    };
398}
399function isImmutableDefault(value) {
400    return typeof value !== "object" || value == null || Object.isFrozen(value);
401}
402function trackForMutations(isImmutable, ignorePaths, obj) {
403    var trackedProperties = trackProperties(isImmutable, ignorePaths, obj);
404    return {
405        detectMutations: function () {
406            return detectMutations(isImmutable, ignorePaths, trackedProperties, obj);
407        }
408    };
409}
410function trackProperties(isImmutable, ignorePaths, obj, path, checkedObjects) {
411    if (ignorePaths === void 0) { ignorePaths = []; }
412    if (path === void 0) { path = ""; }
413    if (checkedObjects === void 0) { checkedObjects = new Set(); }
414    var tracked = { value: obj };
415    if (!isImmutable(obj) && !checkedObjects.has(obj)) {
416        checkedObjects.add(obj);
417        tracked.children = {};
418        for (var key in obj) {
419            var childPath = path ? path + "." + key : key;
420            if (ignorePaths.length && ignorePaths.indexOf(childPath) !== -1) {
421                continue;
422            }
423            tracked.children[key] = trackProperties(isImmutable, ignorePaths, obj[key], childPath);
424        }
425    }
426    return tracked;
427}
428function detectMutations(isImmutable, ignoredPaths, trackedProperty, obj, sameParentRef, path) {
429    if (ignoredPaths === void 0) { ignoredPaths = []; }
430    if (sameParentRef === void 0) { sameParentRef = false; }
431    if (path === void 0) { path = ""; }
432    var prevObj = trackedProperty ? trackedProperty.value : void 0;
433    var sameRef = prevObj === obj;
434    if (sameParentRef && !sameRef && !Number.isNaN(obj)) {
435        return { wasMutated: true, path: path };
436    }
437    if (isImmutable(prevObj) || isImmutable(obj)) {
438        return { wasMutated: false };
439    }
440    var keysToDetect = {};
441    for (var key in trackedProperty.children) {
442        keysToDetect[key] = true;
443    }
444    for (var key in obj) {
445        keysToDetect[key] = true;
446    }
447    var hasIgnoredPaths = ignoredPaths.length > 0;
448    var _loop_1 = function (key) {
449        var nestedPath = path ? path + "." + key : key;
450        if (hasIgnoredPaths) {
451            var hasMatches = ignoredPaths.some(function (ignored) {
452                if (ignored instanceof RegExp) {
453                    return ignored.test(nestedPath);
454                }
455                return nestedPath === ignored;
456            });
457            if (hasMatches) {
458                return "continue";
459            }
460        }
461        var result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);
462        if (result.wasMutated) {
463            return { value: result };
464        }
465    };
466    for (var key in keysToDetect) {
467        var state_1 = _loop_1(key);
468        if (typeof state_1 === "object")
469            return state_1.value;
470    }
471    return { wasMutated: false };
472}
473function createImmutableStateInvariantMiddleware(options) {
474    if (options === void 0) { options = {}; }
475    if (true) {
476        return function () { return function (next) { return function (action) { return next(action); }; }; };
477    }
478    var _c = options.isImmutable, isImmutable = _c === void 0 ? isImmutableDefault : _c, ignoredPaths = options.ignoredPaths, _d = options.warnAfter, warnAfter = _d === void 0 ? 32 : _d, ignore = options.ignore;
479    ignoredPaths = ignoredPaths || ignore;
480    var track = trackForMutations.bind(null, isImmutable, ignoredPaths);
481    return function (_c) {
482        var getState = _c.getState;
483        var state = getState();
484        var tracker = track(state);
485        var result;
486        return function (next) { return function (action) {
487            var measureUtils = getTimeMeasureUtils(warnAfter, "ImmutableStateInvariantMiddleware");
488            measureUtils.measureTime(function () {
489                state = getState();
490                result = tracker.detectMutations();
491                tracker = track(state);
492                invariant(!result.wasMutated, "A state mutation was detected between dispatches, in the path '" + (result.path || "") + "'.  This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)");
493            });
494            var dispatchedAction = next(action);
495            measureUtils.measureTime(function () {
496                state = getState();
497                result = tracker.detectMutations();
498                tracker = track(state);
499                result.wasMutated && invariant(!result.wasMutated, "A state mutation was detected inside a dispatch, in the path: " + (result.path || "") + ". Take a look at the reducer(s) handling the action " + stringify(action) + ". (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)");
500            });
501            measureUtils.warnIfExceeded();
502            return dispatchedAction;
503        }; };
504    };
505}
506// src/serializableStateInvariantMiddleware.ts
507function isPlain(val) {
508    var type = typeof val;
509    return val == null || type === "string" || type === "boolean" || type === "number" || Array.isArray(val) || isPlainObject(val);
510}
511function findNonSerializableValue(value, path, isSerializable, getEntries, ignoredPaths, cache) {
512    if (path === void 0) { path = ""; }
513    if (isSerializable === void 0) { isSerializable = isPlain; }
514    if (ignoredPaths === void 0) { ignoredPaths = []; }
515    var foundNestedSerializable;
516    if (!isSerializable(value)) {
517        return {
518            keyPath: path || "<root>",
519            value: value
520        };
521    }
522    if (typeof value !== "object" || value === null) {
523        return false;
524    }
525    if (cache == null ? void 0 : cache.has(value))
526        return false;
527    var entries = getEntries != null ? getEntries(value) : Object.entries(value);
528    var hasIgnoredPaths = ignoredPaths.length > 0;
529    var _loop_2 = function (key, nestedValue) {
530        var nestedPath = path ? path + "." + key : key;
531        if (hasIgnoredPaths) {
532            var hasMatches = ignoredPaths.some(function (ignored) {
533                if (ignored instanceof RegExp) {
534                    return ignored.test(nestedPath);
535                }
536                return nestedPath === ignored;
537            });
538            if (hasMatches) {
539                return "continue";
540            }
541        }
542        if (!isSerializable(nestedValue)) {
543            return { value: {
544                    keyPath: nestedPath,
545                    value: nestedValue
546                } };
547        }
548        if (typeof nestedValue === "object") {
549            foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);
550            if (foundNestedSerializable) {
551                return { value: foundNestedSerializable };
552            }
553        }
554    };
555    for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
556        var _c = entries_1[_i], key = _c[0], nestedValue = _c[1];
557        var state_2 = _loop_2(key, nestedValue);
558        if (typeof state_2 === "object")
559            return state_2.value;
560    }
561    if (cache && isNestedFrozen(value))
562        cache.add(value);
563    return false;
564}
565function isNestedFrozen(value) {
566    if (!Object.isFrozen(value))
567        return false;
568    for (var _i = 0, _c = Object.values(value); _i < _c.length; _i++) {
569        var nestedValue = _c[_i];
570        if (typeof nestedValue !== "object" || nestedValue === null)
571            continue;
572        if (!isNestedFrozen(nestedValue))
573            return false;
574    }
575    return true;
576}
577function createSerializableStateInvariantMiddleware(options) {
578    if (options === void 0) { options = {}; }
579    if (true) {
580        return function () { return function (next) { return function (action) { return next(action); }; }; };
581    }
582    var _c = options.isSerializable, isSerializable = _c === void 0 ? isPlain : _c, getEntries = options.getEntries, _d = options.ignoredActions, ignoredActions = _d === void 0 ? [] : _d, _e = options.ignoredActionPaths, ignoredActionPaths = _e === void 0 ? ["meta.arg", "meta.baseQueryMeta"] : _e, _f = options.ignoredPaths, ignoredPaths = _f === void 0 ? [] : _f, _g = options.warnAfter, warnAfter = _g === void 0 ? 32 : _g, _h = options.ignoreState, ignoreState = _h === void 0 ? false : _h, _j = options.ignoreActions, ignoreActions = _j === void 0 ? false : _j, _k = options.disableCache, disableCache = _k === void 0 ? false : _k;
583    var cache = !disableCache && WeakSet ? new WeakSet() : void 0;
584    return function (storeAPI) { return function (next) { return function (action) {
585        var result = next(action);
586        var measureUtils = getTimeMeasureUtils(warnAfter, "SerializableStateInvariantMiddleware");
587        if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type) !== -1)) {
588            measureUtils.measureTime(function () {
589                var foundActionNonSerializableValue = findNonSerializableValue(action, "", isSerializable, getEntries, ignoredActionPaths, cache);
590                if (foundActionNonSerializableValue) {
591                    var keyPath = foundActionNonSerializableValue.keyPath, value = foundActionNonSerializableValue.value;
592                    console.error("A non-serializable value was detected in an action, in the path: `" + keyPath + "`. Value:", value, "\nTake a look at the logic that dispatched this action: ", action, "\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)", "\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)");
593                }
594            });
595        }
596        if (!ignoreState) {
597            measureUtils.measureTime(function () {
598                var state = storeAPI.getState();
599                var foundStateNonSerializableValue = findNonSerializableValue(state, "", isSerializable, getEntries, ignoredPaths, cache);
600                if (foundStateNonSerializableValue) {
601                    var keyPath = foundStateNonSerializableValue.keyPath, value = foundStateNonSerializableValue.value;
602                    console.error("A non-serializable value was detected in the state, in the path: `" + keyPath + "`. Value:", value, "\nTake a look at the reducer(s) handling this action type: " + action.type + ".\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)");
603                }
604            });
605            measureUtils.warnIfExceeded();
606        }
607        return result;
608    }; }; };
609}
610// src/getDefaultMiddleware.ts
611function isBoolean(x) {
612    return typeof x === "boolean";
613}
614function curryGetDefaultMiddleware() {
615    return function curriedGetDefaultMiddleware(options) {
616        return getDefaultMiddleware(options);
617    };
618}
619function getDefaultMiddleware(options) {
620    if (options === void 0) { options = {}; }
621    var _c = options.thunk, thunk = _c === void 0 ? true : _c, _d = options.immutableCheck, immutableCheck = _d === void 0 ? true : _d, _e = options.serializableCheck, serializableCheck = _e === void 0 ? true : _e, _f = options.actionCreatorCheck, actionCreatorCheck = _f === void 0 ? true : _f;
622    var middlewareArray = new MiddlewareArray();
623    if (thunk) {
624        if (isBoolean(thunk)) {
625            middlewareArray.push(es);
626        }
627        else {
628            middlewareArray.push(es.withExtraArgument(thunk.extraArgument));
629        }
630    }
631    if (false) { var actionCreatorOptions, serializableOptions, immutableOptions; }
632    return middlewareArray;
633}
634// src/configureStore.ts
635var IS_PRODUCTION = "production" === "production";
636function configureStore(options) {
637    var curriedGetDefaultMiddleware = curryGetDefaultMiddleware();
638    var _c = options || {}, _d = _c.reducer, reducer = _d === void 0 ? void 0 : _d, _e = _c.middleware, middleware = _e === void 0 ? curriedGetDefaultMiddleware() : _e, _f = _c.devTools, devTools = _f === void 0 ? true : _f, _g = _c.preloadedState, preloadedState = _g === void 0 ? void 0 : _g, _h = _c.enhancers, enhancers = _h === void 0 ? void 0 : _h;
639    var rootReducer;
640    if (typeof reducer === "function") {
641        rootReducer = reducer;
642    }
643    else if (isPlainObject(reducer)) {
644        rootReducer = (0,redux/* combineReducers */.UY)(reducer);
645    }
646    else {
647        throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');
648    }
649    var finalMiddleware = middleware;
650    if (typeof finalMiddleware === "function") {
651        finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware);
652        if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {
653            throw new Error("when using a middleware builder function, an array of middleware must be returned");
654        }
655    }
656    if (!IS_PRODUCTION && finalMiddleware.some(function (item) { return typeof item !== "function"; })) {
657        throw new Error("each middleware provided to configureStore must be a function");
658    }
659    var middlewareEnhancer = redux/* applyMiddleware */.md.apply(void 0, finalMiddleware);
660    var finalCompose = redux/* compose */.qC;
661    if (devTools) {
662        finalCompose = composeWithDevTools(__spreadValues({
663            trace: !IS_PRODUCTION
664        }, typeof devTools === "object" && devTools));
665    }
666    var defaultEnhancers = new EnhancerArray(middlewareEnhancer);
667    var storeEnhancers = defaultEnhancers;
668    if (Array.isArray(enhancers)) {
669        storeEnhancers = __spreadArray([middlewareEnhancer], enhancers);
670    }
671    else if (typeof enhancers === "function") {
672        storeEnhancers = enhancers(defaultEnhancers);
673    }
674    var composedEnhancer = finalCompose.apply(void 0, storeEnhancers);
675    return (0,redux/* createStore */.MT)(rootReducer, preloadedState, composedEnhancer);
676}
677// src/createReducer.ts
678
679// src/mapBuilders.ts
680function executeReducerBuilderCallback(builderCallback) {
681    var actionsMap = {};
682    var actionMatchers = [];
683    var defaultCaseReducer;
684    var builder = {
685        addCase: function (typeOrActionCreator, reducer) {
686            if (false) {}
687            var type = typeof typeOrActionCreator === "string" ? typeOrActionCreator : typeOrActionCreator.type;
688            if (!type) {
689                throw new Error("`builder.addCase` cannot be called with an empty action type");
690            }
691            if (type in actionsMap) {
692                throw new Error("`builder.addCase` cannot be called with two reducers for the same action type");
693            }
694            actionsMap[type] = reducer;
695            return builder;
696        },
697        addMatcher: function (matcher, reducer) {
698            if (false) {}
699            actionMatchers.push({ matcher: matcher, reducer: reducer });
700            return builder;
701        },
702        addDefaultCase: function (reducer) {
703            if (false) {}
704            defaultCaseReducer = reducer;
705            return builder;
706        }
707    };
708    builderCallback(builder);
709    return [actionsMap, actionMatchers, defaultCaseReducer];
710}
711// src/createReducer.ts
712function isStateFunction(x) {
713    return typeof x === "function";
714}
715var hasWarnedAboutObjectNotation = false;
716function createReducer(initialState, mapOrBuilderCallback, actionMatchers, defaultCaseReducer) {
717    if (actionMatchers === void 0) { actionMatchers = []; }
718    if (false) {}
719    var _c = typeof mapOrBuilderCallback === "function" ? executeReducerBuilderCallback(mapOrBuilderCallback) : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer], actionsMap = _c[0], finalActionMatchers = _c[1], finalDefaultCaseReducer = _c[2];
720    var getInitialState;
721    if (isStateFunction(initialState)) {
722        getInitialState = function () { return freezeDraftable(initialState()); };
723    }
724    else {
725        var frozenInitialState_1 = freezeDraftable(initialState);
726        getInitialState = function () { return frozenInitialState_1; };
727    }
728    function reducer(state, action) {
729        if (state === void 0) { state = getInitialState(); }
730        var caseReducers = __spreadArray([
731            actionsMap[action.type]
732        ], finalActionMatchers.filter(function (_c) {
733            var matcher = _c.matcher;
734            return matcher(action);
735        }).map(function (_c) {
736            var reducer2 = _c.reducer;
737            return reducer2;
738        }));
739        if (caseReducers.filter(function (cr) { return !!cr; }).length === 0) {
740            caseReducers = [finalDefaultCaseReducer];
741        }
742        return caseReducers.reduce(function (previousState, caseReducer) {
743            if (caseReducer) {
744                if ((0,immer_esm/* isDraft */.mv)(previousState)) {
745                    var draft = previousState;
746                    var result = caseReducer(draft, action);
747                    if (result === void 0) {
748                        return previousState;
749                    }
750                    return result;
751                }
752                else if (!(0,immer_esm/* isDraftable */.o$)(previousState)) {
753                    var result = caseReducer(previousState, action);
754                    if (result === void 0) {
755                        if (previousState === null) {
756                            return previousState;
757                        }
758                        throw Error("A case reducer on a non-draftable value must not return undefined");
759                    }
760                    return result;
761                }
762                else {
763                    return (0,immer_esm/* default */.ZP)(previousState, function (draft) {
764                        return caseReducer(draft, action);
765                    });
766                }
767            }
768            return previousState;
769        }, state);
770    }
771    reducer.getInitialState = getInitialState;
772    return reducer;
773}
774// src/createSlice.ts
775var hasWarnedAboutObjectNotation2 = false;
776function getType2(slice, actionKey) {
777    return slice + "/" + actionKey;
778}
779function createSlice(options) {
780    var name = options.name;
781    if (!name) {
782        throw new Error("`name` is a required option for createSlice");
783    }
784    if (typeof process !== "undefined" && "production" === "development") {}
785    var initialState = typeof options.initialState == "function" ? options.initialState : freezeDraftable(options.initialState);
786    var reducers = options.reducers || {};
787    var reducerNames = Object.keys(reducers);
788    var sliceCaseReducersByName = {};
789    var sliceCaseReducersByType = {};
790    var actionCreators = {};
791    reducerNames.forEach(function (reducerName) {
792        var maybeReducerWithPrepare = reducers[reducerName];
793        var type = getType2(name, reducerName);
794        var caseReducer;
795        var prepareCallback;
796        if ("reducer" in maybeReducerWithPrepare) {
797            caseReducer = maybeReducerWithPrepare.reducer;
798            prepareCallback = maybeReducerWithPrepare.prepare;
799        }
800        else {
801            caseReducer = maybeReducerWithPrepare;
802        }
803        sliceCaseReducersByName[reducerName] = caseReducer;
804        sliceCaseReducersByType[type] = caseReducer;
805        actionCreators[reducerName] = prepareCallback ? createAction(type, prepareCallback) : createAction(type);
806    });
807    function buildReducer() {
808        if (false) {}
809        var _c = typeof options.extraReducers === "function" ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers], _d = _c[0], extraReducers = _d === void 0 ? {} : _d, _e = _c[1], actionMatchers = _e === void 0 ? [] : _e, _f = _c[2], defaultCaseReducer = _f === void 0 ? void 0 : _f;
810        var finalCaseReducers = __spreadValues(__spreadValues({}, extraReducers), sliceCaseReducersByType);
811        return createReducer(initialState, function (builder) {
812            for (var key in finalCaseReducers) {
813                builder.addCase(key, finalCaseReducers[key]);
814            }
815            for (var _i = 0, actionMatchers_1 = actionMatchers; _i < actionMatchers_1.length; _i++) {
816                var m = actionMatchers_1[_i];
817                builder.addMatcher(m.matcher, m.reducer);
818            }
819            if (defaultCaseReducer) {
820                builder.addDefaultCase(defaultCaseReducer);
821            }
822        });
823    }
824    var _reducer;
825    return {
826        name: name,
827        reducer: function (state, action) {
828            if (!_reducer)
829                _reducer = buildReducer();
830            return _reducer(state, action);
831        },
832        actions: actionCreators,
833        caseReducers: sliceCaseReducersByName,
834        getInitialState: function () {
835            if (!_reducer)
836                _reducer = buildReducer();
837            return _reducer.getInitialState();
838        }
839    };
840}
841// src/entities/entity_state.ts
842function getInitialEntityState() {
843    return {
844        ids: [],
845        entities: {}
846    };
847}
848function createInitialStateFactory() {
849    function getInitialState(additionalState) {
850        if (additionalState === void 0) { additionalState = {}; }
851        return Object.assign(getInitialEntityState(), additionalState);
852    }
853    return { getInitialState: getInitialState };
854}
855// src/entities/state_selectors.ts
856function createSelectorsFactory() {
857    function getSelectors(selectState) {
858        var selectIds = function (state) { return state.ids; };
859        var selectEntities = function (state) { return state.entities; };
860        var selectAll = createDraftSafeSelector(selectIds, selectEntities, function (ids, entities) { return ids.map(function (id) { return entities[id]; }); });
861        var selectId = function (_, id) { return id; };
862        var selectById = function (entities, id) { return entities[id]; };
863        var selectTotal = createDraftSafeSelector(selectIds, function (ids) { return ids.length; });
864        if (!selectState) {
865            return {
866                selectIds: selectIds,
867                selectEntities: selectEntities,
868                selectAll: selectAll,
869                selectTotal: selectTotal,
870                selectById: createDraftSafeSelector(selectEntities, selectId, selectById)
871            };
872        }
873        var selectGlobalizedEntities = createDraftSafeSelector(selectState, selectEntities);
874        return {
875            selectIds: createDraftSafeSelector(selectState, selectIds),
876            selectEntities: selectGlobalizedEntities,
877            selectAll: createDraftSafeSelector(selectState, selectAll),
878            selectTotal: createDraftSafeSelector(selectState, selectTotal),
879            selectById: createDraftSafeSelector(selectGlobalizedEntities, selectId, selectById)
880        };
881    }
882    return { getSelectors: getSelectors };
883}
884// src/entities/state_adapter.ts
885
886function createSingleArgumentStateOperator(mutator) {
887    var operator = createStateOperator(function (_, state) { return mutator(state); });
888    return function operation(state) {
889        return operator(state, void 0);
890    };
891}
892function createStateOperator(mutator) {
893    return function operation(state, arg) {
894        function isPayloadActionArgument(arg2) {
895            return isFSA(arg2);
896        }
897        var runMutator = function (draft) {
898            if (isPayloadActionArgument(arg)) {
899                mutator(arg.payload, draft);
900            }
901            else {
902                mutator(arg, draft);
903            }
904        };
905        if (isDraft3(state)) {
906            runMutator(state);
907            return state;
908        }
909        else {
910            return createNextState3(state, runMutator);
911        }
912    };
913}
914// src/entities/utils.ts
915function selectIdValue(entity, selectId) {
916    var key = selectId(entity);
917    if (false) {}
918    return key;
919}
920function ensureEntitiesArray(entities) {
921    if (!Array.isArray(entities)) {
922        entities = Object.values(entities);
923    }
924    return entities;
925}
926function splitAddedUpdatedEntities(newEntities, selectId, state) {
927    newEntities = ensureEntitiesArray(newEntities);
928    var added = [];
929    var updated = [];
930    for (var _i = 0, newEntities_1 = newEntities; _i < newEntities_1.length; _i++) {
931        var entity = newEntities_1[_i];
932        var id = selectIdValue(entity, selectId);
933        if (id in state.entities) {
934            updated.push({ id: id, changes: entity });
935        }
936        else {
937            added.push(entity);
938        }
939    }
940    return [added, updated];
941}
942// src/entities/unsorted_state_adapter.ts
943function createUnsortedStateAdapter(selectId) {
944    function addOneMutably(entity, state) {
945        var key = selectIdValue(entity, selectId);
946        if (key in state.entities) {
947            return;
948        }
949        state.ids.push(key);
950        state.entities[key] = entity;
951    }
952    function addManyMutably(newEntities, state) {
953        newEntities = ensureEntitiesArray(newEntities);
954        for (var _i = 0, newEntities_2 = newEntities; _i < newEntities_2.length; _i++) {
955            var entity = newEntities_2[_i];
956            addOneMutably(entity, state);
957        }
958    }
959    function setOneMutably(entity, state) {
960        var key = selectIdValue(entity, selectId);
961        if (!(key in state.entities)) {
962            state.ids.push(key);
963        }
964        state.entities[key] = entity;
965    }
966    function setManyMutably(newEntities, state) {
967        newEntities = ensureEntitiesArray(newEntities);
968        for (var _i = 0, newEntities_3 = newEntities; _i < newEntities_3.length; _i++) {
969            var entity = newEntities_3[_i];
970            setOneMutably(entity, state);
971        }
972    }
973    function setAllMutably(newEntities, state) {
974        newEntities = ensureEntitiesArray(newEntities);
975        state.ids = [];
976        state.entities = {};
977        addManyMutably(newEntities, state);
978    }
979    function removeOneMutably(key, state) {
980        return removeManyMutably([key], state);
981    }
982    function removeManyMutably(keys, state) {
983        var didMutate = false;
984        keys.forEach(function (key) {
985            if (key in state.entities) {
986                delete state.entities[key];
987                didMutate = true;
988            }
989        });
990        if (didMutate) {
991            state.ids = state.ids.filter(function (id) { return id in state.entities; });
992        }
993    }
994    function removeAllMutably(state) {
995        Object.assign(state, {
996            ids: [],
997            entities: {}
998        });
999    }
1000    function takeNewKey(keys, update, state) {
1001        var original2 = state.entities[update.id];
1002        var updated = Object.assign({}, original2, update.changes);
1003        var newKey = selectIdValue(updated, selectId);
1004        var hasNewKey = newKey !== update.id;
1005        if (hasNewKey) {
1006            keys[update.id] = newKey;
1007            delete state.entities[update.id];
1008        }
1009        state.entities[newKey] = updated;
1010        return hasNewKey;
1011    }
1012    function updateOneMutably(update, state) {
1013        return updateManyMutably([update], state);
1014    }
1015    function updateManyMutably(updates, state) {
1016        var newKeys = {};
1017        var updatesPerEntity = {};
1018        updates.forEach(function (update) {
1019            if (update.id in state.entities) {
1020                updatesPerEntity[update.id] = {
1021                    id: update.id,
1022                    changes: __spreadValues(__spreadValues({}, updatesPerEntity[update.id] ? updatesPerEntity[update.id].changes : null), update.changes)
1023                };
1024            }
1025        });
1026        updates = Object.values(updatesPerEntity);
1027        var didMutateEntities = updates.length > 0;
1028        if (didMutateEntities) {
1029            var didMutateIds = updates.filter(function (update) { return takeNewKey(newKeys, update, state); }).length > 0;
1030            if (didMutateIds) {
1031                state.ids = Object.keys(state.entities);
1032            }
1033        }
1034    }
1035    function upsertOneMutably(entity, state) {
1036        return upsertManyMutably([entity], state);
1037    }
1038    function upsertManyMutably(newEntities, state) {
1039        var _c = splitAddedUpdatedEntities(newEntities, selectId, state), added = _c[0], updated = _c[1];
1040        updateManyMutably(updated, state);
1041        addManyMutably(added, state);
1042    }
1043    return {
1044        removeAll: createSingleArgumentStateOperator(removeAllMutably),
1045        addOne: createStateOperator(addOneMutably),
1046        addMany: createStateOperator(addManyMutably),
1047        setOne: createStateOperator(setOneMutably),
1048        setMany: createStateOperator(setManyMutably),
1049        setAll: createStateOperator(setAllMutably),
1050        updateOne: createStateOperator(updateOneMutably),
1051        updateMany: createStateOperator(updateManyMutably),
1052        upsertOne: createStateOperator(upsertOneMutably),
1053        upsertMany: createStateOperator(upsertManyMutably),
1054        removeOne: createStateOperator(removeOneMutably),
1055        removeMany: createStateOperator(removeManyMutably)
1056    };
1057}
1058// src/entities/sorted_state_adapter.ts
1059function createSortedStateAdapter(selectId, sort) {
1060    var _c = createUnsortedStateAdapter(selectId), removeOne = _c.removeOne, removeMany = _c.removeMany, removeAll = _c.removeAll;
1061    function addOneMutably(entity, state) {
1062        return addManyMutably([entity], state);
1063    }
1064    function addManyMutably(newEntities, state) {
1065        newEntities = ensureEntitiesArray(newEntities);
1066        var models = newEntities.filter(function (model) { return !(selectIdValue(model, selectId) in state.entities); });
1067        if (models.length !== 0) {
1068            merge(models, state);
1069        }
1070    }
1071    function setOneMutably(entity, state) {
1072        return setManyMutably([entity], state);
1073    }
1074    function setManyMutably(newEntities, state) {
1075        newEntities = ensureEntitiesArray(newEntities);
1076        if (newEntities.length !== 0) {
1077            merge(newEntities, state);
1078        }
1079    }
1080    function setAllMutably(newEntities, state) {
1081        newEntities = ensureEntitiesArray(newEntities);
1082        state.entities = {};
1083        state.ids = [];
1084        addManyMutably(newEntities, state);
1085    }
1086    function updateOneMutably(update, state) {
1087        return updateManyMutably([update], state);
1088    }
1089    function updateManyMutably(updates, state) {
1090        var appliedUpdates = false;
1091        for (var _i = 0, updates_1 = updates; _i < updates_1.length; _i++) {
1092            var update = updates_1[_i];
1093            var entity = state.entities[update.id];
1094            if (!entity) {
1095                continue;
1096            }
1097            appliedUpdates = true;
1098            Object.assign(entity, update.changes);
1099            var newId = selectId(entity);
1100            if (update.id !== newId) {
1101                delete state.entities[update.id];
1102                state.entities[newId] = entity;
1103            }
1104        }
1105        if (appliedUpdates) {
1106            resortEntities(state);
1107        }
1108    }
1109    function upsertOneMutably(entity, state) {
1110        return upsertManyMutably([entity], state);
1111    }
1112    function upsertManyMutably(newEntities, state) {
1113        var _c = splitAddedUpdatedEntities(newEntities, selectId, state), added = _c[0], updated = _c[1];
1114        updateManyMutably(updated, state);
1115        addManyMutably(added, state);
1116    }
1117    function areArraysEqual(a, b) {
1118        if (a.length !== b.length) {
1119            return false;
1120        }
1121        for (var i = 0; i < a.length && i < b.length; i++) {
1122            if (a[i] === b[i]) {
1123                continue;
1124            }
1125            return false;
1126        }
1127        return true;
1128    }
1129    function merge(models, state) {
1130        models.forEach(function (model) {
1131            state.entities[selectId(model)] = model;
1132        });
1133        resortEntities(state);
1134    }
1135    function resortEntities(state) {
1136        var allEntities = Object.values(state.entities);
1137        allEntities.sort(sort);
1138        var newSortedIds = allEntities.map(selectId);
1139        var ids = state.ids;
1140        if (!areArraysEqual(ids, newSortedIds)) {
1141            state.ids = newSortedIds;
1142        }
1143    }
1144    return {
1145        removeOne: removeOne,
1146        removeMany: removeMany,
1147        removeAll: removeAll,
1148        addOne: createStateOperator(addOneMutably),
1149        updateOne: createStateOperator(updateOneMutably),
1150        upsertOne: createStateOperator(upsertOneMutably),
1151        setOne: createStateOperator(setOneMutably),
1152        setMany: createStateOperator(setManyMutably),
1153        setAll: createStateOperator(setAllMutably),
1154        addMany: createStateOperator(addManyMutably),
1155        updateMany: createStateOperator(updateManyMutably),
1156        upsertMany: createStateOperator(upsertManyMutably)
1157    };
1158}
1159// src/entities/create_adapter.ts
1160function createEntityAdapter(options) {
1161    if (options === void 0) { options = {}; }
1162    var _c = __spreadValues({
1163        sortComparer: false,
1164        selectId: function (instance) { return instance.id; }
1165    }, options), selectId = _c.selectId, sortComparer = _c.sortComparer;
1166    var stateFactory = createInitialStateFactory();
1167    var selectorsFactory = createSelectorsFactory();
1168    var stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);
1169    return __spreadValues(__spreadValues(__spreadValues({
1170        selectId: selectId,
1171        sortComparer: sortComparer
1172    }, stateFactory), selectorsFactory), stateAdapter);
1173}
1174// src/nanoid.ts
1175var urlAlphabet = "ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW";
1176var nanoid = function (size) {
1177    if (size === void 0) { size = 21; }
1178    var id = "";
1179    var i = size;
1180    while (i--) {
1181        id += urlAlphabet[Math.random() * 64 | 0];
1182    }
1183    return id;
1184};
1185// src/createAsyncThunk.ts
1186var commonProperties = [
1187    "name",
1188    "message",
1189    "stack",
1190    "code"
1191];
1192var RejectWithValue = /** @class */ (function () {
1193    function RejectWithValue(payload, meta) {
1194        this.payload = payload;
1195        this.meta = meta;
1196    }
1197    return RejectWithValue;
1198}());
1199var FulfillWithMeta = /** @class */ (function () {
1200    function FulfillWithMeta(payload, meta) {
1201        this.payload = payload;
1202        this.meta = meta;
1203    }
1204    return FulfillWithMeta;
1205}());
1206var miniSerializeError = function (value) {
1207    if (typeof value === "object" && value !== null) {
1208        var simpleError = {};
1209        for (var _i = 0, commonProperties_1 = commonProperties; _i < commonProperties_1.length; _i++) {
1210            var property = commonProperties_1[_i];
1211            if (typeof value[property] === "string") {
1212                simpleError[property] = value[property];
1213            }
1214        }
1215        return simpleError;
1216    }
1217    return { message: String(value) };
1218};
1219var createAsyncThunk = (function () {
1220    function createAsyncThunk2(typePrefix, payloadCreator, options) {
1221        var fulfilled = createAction(typePrefix + "/fulfilled", function (payload, requestId, arg, meta) { return ({
1222            payload: payload,
1223            meta: __spreadProps(__spreadValues({}, meta || {}), {
1224                arg: arg,
1225                requestId: requestId,
1226                requestStatus: "fulfilled"
1227            })
1228        }); });
1229        var pending = createAction(typePrefix + "/pending", function (requestId, arg, meta) { return ({
1230            payload: void 0,
1231            meta: __spreadProps(__spreadValues({}, meta || {}), {
1232                arg: arg,
1233                requestId: requestId,
1234                requestStatus: "pending"
1235            })
1236        }); });
1237        var rejected = createAction(typePrefix + "/rejected", function (error, requestId, arg, payload, meta) { return ({
1238            payload: payload,
1239            error: (options && options.serializeError || miniSerializeError)(error || "Rejected"),
1240            meta: __spreadProps(__spreadValues({}, meta || {}), {
1241                arg: arg,
1242                requestId: requestId,
1243                rejectedWithValue: !!payload,
1244                requestStatus: "rejected",
1245                aborted: (error == null ? void 0 : error.name) === "AbortError",
1246                condition: (error == null ? void 0 : error.name) === "ConditionError"
1247            })
1248        }); });
1249        var displayedWarning = false;
1250        var AC = typeof AbortController !== "undefined" ? AbortController : /** @class */ (function () {
1251            function class_1() {
1252                this.signal = {
1253                    aborted: false,
1254                    addEventListener: function () {
1255                    },
1256                    dispatchEvent: function () {
1257                        return false;
1258                    },
1259                    onabort: function () {
1260                    },
1261                    removeEventListener: function () {
1262                    },
1263                    reason: void 0,
1264                    throwIfAborted: function () {
1265                    }
1266                };
1267            }
1268            class_1.prototype.abort = function () {
1269                if (false) {}
1270            };
1271            return class_1;
1272        }());
1273        function actionCreator(arg) {
1274            return function (dispatch, getState, extra) {
1275                var requestId = (options == null ? void 0 : options.idGenerator) ? options.idGenerator(arg) : nanoid();
1276                var abortController = new AC();
1277                var abortReason;
1278                var started = false;
1279                function abort(reason) {
1280                    abortReason = reason;
1281                    abortController.abort();
1282                }
1283                var promise2 = function () {
1284                    return __async(this, null, function () {
1285                        var _a, _b, finalAction, conditionResult, abortedPromise, err_1, skipDispatch;
1286                        return __generator(this, function (_c) {
1287                            switch (_c.label) {
1288                                case 0:
1289                                    _c.trys.push([0, 4, , 5]);
1290                                    conditionResult = (_a = options == null ? void 0 : options.condition) == null ? void 0 : _a.call(options, arg, { getState: getState, extra: extra });
1291                                    if (!isThenable(conditionResult)) return [3 /*break*/, 2];
1292                                    return [4 /*yield*/, conditionResult];
1293                                case 1:
1294                                    conditionResult = _c.sent();
1295                                    _c.label = 2;
1296                                case 2:
1297                                    if (conditionResult === false || abortController.signal.aborted) {
1298                                        throw {
1299                                            name: "ConditionError",
1300                                            message: "Aborted due to condition callback returning false."
1301                                        };
1302                                    }
1303                                    started = true;
1304                                    abortedPromise = new Promise(function (_, reject) { return abortController.signal.addEventListener("abort", function () { return reject({
1305                                        name: "AbortError",
1306                                        message: abortReason || "Aborted"
1307                                    }); }); });
1308                                    dispatch(pending(requestId, arg, (_b = options == null ? void 0 : options.getPendingMeta) == null ? void 0 : _b.call(options, { requestId: requestId, arg: arg }, { getState: getState, extra: extra })));
1309                                    return [4 /*yield*/, Promise.race([
1310                                            abortedPromise,
1311                                            Promise.resolve(payloadCreator(arg, {
1312                                                dispatch: dispatch,
1313                                                getState: getState,
1314                                                extra: extra,
1315                                                requestId: requestId,
1316                                                signal: abortController.signal,
1317                                                abort: abort,
1318                                                rejectWithValue: function (value, meta) {
1319                                                    return new RejectWithValue(value, meta);
1320                                                },
1321                                                fulfillWithValue: function (value, meta) {
1322                                                    return new FulfillWithMeta(value, meta);
1323                                                }
1324                                            })).then(function (result) {
1325                                                if (result instanceof RejectWithValue) {
1326                                                    throw result;
1327                                                }
1328                                                if (result instanceof FulfillWithMeta) {
1329                                                    return fulfilled(result.payload, requestId, arg, result.meta);
1330                                                }
1331                                                return fulfilled(result, requestId, arg);
1332                                            })
1333                                        ])];
1334                                case 3:
1335                                    finalAction = _c.sent();
1336                                    return [3 /*break*/, 5];
1337                                case 4:
1338                                    err_1 = _c.sent();
1339                                    finalAction = err_1 instanceof RejectWithValue ? rejected(null, requestId, arg, err_1.payload, err_1.meta) : rejected(err_1, requestId, arg);
1340                                    return [3 /*break*/, 5];
1341                                case 5:
1342                                    skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && finalAction.meta.condition;
1343                                    if (!skipDispatch) {
1344                                        dispatch(finalAction);
1345                                    }
1346                                    return [2 /*return*/, finalAction];
1347                            }
1348                        });
1349                    });
1350                }();
1351                return Object.assign(promise2, {
1352                    abort: abort,
1353                    requestId: requestId,
1354                    arg: arg,
1355                    unwrap: function () {
1356                        return promise2.then(unwrapResult);
1357                    }
1358                });
1359            };
1360        }
1361        return Object.assign(actionCreator, {
1362            pending: pending,
1363            rejected: rejected,
1364            fulfilled: fulfilled,
1365            typePrefix: typePrefix
1366        });
1367    }
1368    createAsyncThunk2.withTypes = function () { return createAsyncThunk2; };
1369    return createAsyncThunk2;
1370})();
1371function unwrapResult(action) {
1372    if (action.meta && action.meta.rejectedWithValue) {
1373        throw action.payload;
1374    }
1375    if (action.error) {
1376        throw action.error;
1377    }
1378    return action.payload;
1379}
1380function isThenable(value) {
1381    return value !== null && typeof value === "object" && typeof value.then === "function";
1382}
1383// src/matchers.ts
1384var matches = function (matcher, action) {
1385    if (hasMatchFunction(matcher)) {
1386        return matcher.match(action);
1387    }
1388    else {
1389        return matcher(action);
1390    }
1391};
1392function isAnyOf() {
1393    var matchers = [];
1394    for (var _i = 0; _i < arguments.length; _i++) {
1395        matchers[_i] = arguments[_i];
1396    }
1397    return function (action) {
1398        return matchers.some(function (matcher) { return matches(matcher, action); });
1399    };
1400}
1401function isAllOf() {
1402    var matchers = [];
1403    for (var _i = 0; _i < arguments.length; _i++) {
1404        matchers[_i] = arguments[_i];
1405    }
1406    return function (action) {
1407        return matchers.every(function (matcher) { return matches(matcher, action); });
1408    };
1409}
1410function hasExpectedRequestMetadata(action, validStatus) {
1411    if (!action || !action.meta)
1412        return false;
1413    var hasValidRequestId = typeof action.meta.requestId === "string";
1414    var hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;
1415    return hasValidRequestId && hasValidRequestStatus;
1416}
1417function isAsyncThunkArray(a) {
1418    return typeof a[0] === "function" && "pending" in a[0] && "fulfilled" in a[0] && "rejected" in a[0];
1419}
1420function isPending() {
1421    var asyncThunks = [];
1422    for (var _i = 0; _i < arguments.length; _i++) {
1423        asyncThunks[_i] = arguments[_i];
1424    }
1425    if (asyncThunks.length === 0) {
1426        return function (action) { return hasExpectedRequestMetadata(action, ["pending"]); };
1427    }
1428    if (!isAsyncThunkArray(asyncThunks)) {
1429        return isPending()(asyncThunks[0]);
1430    }
1431    return function (action) {
1432        var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.pending; });
1433        var combinedMatcher = isAnyOf.apply(void 0, matchers);
1434        return combinedMatcher(action);
1435    };
1436}
1437function isRejected() {
1438    var asyncThunks = [];
1439    for (var _i = 0; _i < arguments.length; _i++) {
1440        asyncThunks[_i] = arguments[_i];
1441    }
1442    if (asyncThunks.length === 0) {
1443        return function (action) { return hasExpectedRequestMetadata(action, ["rejected"]); };
1444    }
1445    if (!isAsyncThunkArray(asyncThunks)) {
1446        return isRejected()(asyncThunks[0]);
1447    }
1448    return function (action) {
1449        var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.rejected; });
1450        var combinedMatcher = isAnyOf.apply(void 0, matchers);
1451        return combinedMatcher(action);
1452    };
1453}
1454function isRejectedWithValue() {
1455    var asyncThunks = [];
1456    for (var _i = 0; _i < arguments.length; _i++) {
1457        asyncThunks[_i] = arguments[_i];
1458    }
1459    var hasFlag = function (action) {
1460        return action && action.meta && action.meta.rejectedWithValue;
1461    };
1462    if (asyncThunks.length === 0) {
1463        return function (action) {
1464            var combinedMatcher = isAllOf(isRejected.apply(void 0, asyncThunks), hasFlag);
1465            return combinedMatcher(action);
1466        };
1467    }
1468    if (!isAsyncThunkArray(asyncThunks)) {
1469        return isRejectedWithValue()(asyncThunks[0]);
1470    }
1471    return function (action) {
1472        var combinedMatcher = isAllOf(isRejected.apply(void 0, asyncThunks), hasFlag);
1473        return combinedMatcher(action);
1474    };
1475}
1476function isFulfilled() {
1477    var asyncThunks = [];
1478    for (var _i = 0; _i < arguments.length; _i++) {
1479        asyncThunks[_i] = arguments[_i];
1480    }
1481    if (asyncThunks.length === 0) {
1482        return function (action) { return hasExpectedRequestMetadata(action, ["fulfilled"]); };
1483    }
1484    if (!isAsyncThunkArray(asyncThunks)) {
1485        return isFulfilled()(asyncThunks[0]);
1486    }
1487    return function (action) {
1488        var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.fulfilled; });
1489        var combinedMatcher = isAnyOf.apply(void 0, matchers);
1490        return combinedMatcher(action);
1491    };
1492}
1493function isAsyncThunkAction() {
1494    var asyncThunks = [];
1495    for (var _i = 0; _i < arguments.length; _i++) {
1496        asyncThunks[_i] = arguments[_i];
1497    }
1498    if (asyncThunks.length === 0) {
1499        return function (action) { return hasExpectedRequestMetadata(action, ["pending", "fulfilled", "rejected"]); };
1500    }
1501    if (!isAsyncThunkArray(asyncThunks)) {
1502        return isAsyncThunkAction()(asyncThunks[0]);
1503    }
1504    return function (action) {
1505        var matchers = [];
1506        for (var _i = 0, asyncThunks_1 = asyncThunks; _i < asyncThunks_1.length; _i++) {
1507            var asyncThunk = asyncThunks_1[_i];
1508            matchers.push(asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled);
1509        }
1510        var combinedMatcher = isAnyOf.apply(void 0, matchers);
1511        return combinedMatcher(action);
1512    };
1513}
1514// src/listenerMiddleware/utils.ts
1515var assertFunction = function (func, expected) {
1516    if (typeof func !== "function") {
1517        throw new TypeError(expected + " is not a function");
1518    }
1519};
1520var noop = function () {
1521};
1522var catchRejection = function (promise2, onError) {
1523    if (onError === void 0) { onError = noop; }
1524    promise2.catch(onError);
1525    return promise2;
1526};
1527var addAbortSignalListener = function (abortSignal, callback) {
1528    abortSignal.addEventListener("abort", callback, { once: true });
1529    return function () { return abortSignal.removeEventListener("abort", callback); };
1530};
1531var abortControllerWithReason = function (abortController, reason) {
1532    var signal = abortController.signal;
1533    if (signal.aborted) {
1534        return;
1535    }
1536    if (!("reason" in signal)) {
1537        Object.defineProperty(signal, "reason", {
1538            enumerable: true,
1539            value: reason,
1540            configurable: true,
1541            writable: true
1542        });
1543    }
1544    ;
1545    abortController.abort(reason);
1546};
1547// src/listenerMiddleware/exceptions.ts
1548var task = "task";
1549var listener = "listener";
1550var completed = "completed";
1551var cancelled = "cancelled";
1552var taskCancelled = "task-" + cancelled;
1553var taskCompleted = "task-" + completed;
1554var listenerCancelled = listener + "-" + cancelled;
1555var listenerCompleted = listener + "-" + completed;
1556var TaskAbortError = /** @class */ (function () {
1557    function TaskAbortError(code) {
1558        this.code = code;
1559        this.name = "TaskAbortError";
1560        this.message = task + " " + cancelled + " (reason: " + code + ")";
1561    }
1562    return TaskAbortError;
1563}());
1564// src/listenerMiddleware/task.ts
1565var validateActive = function (signal) {
1566    if (signal.aborted) {
1567        throw new TaskAbortError(signal.reason);
1568    }
1569};
1570function raceWithSignal(signal, promise2) {
1571    var cleanup = noop;
1572    return new Promise(function (resolve, reject) {
1573        var notifyRejection = function () { return reject(new TaskAbortError(signal.reason)); };
1574        if (signal.aborted) {
1575            notifyRejection();
1576            return;
1577        }
1578        cleanup = addAbortSignalListener(signal, notifyRejection);
1579        promise2.finally(function () { return cleanup(); }).then(resolve, reject);
1580    }).finally(function () {
1581        cleanup = noop;
1582    });
1583}
1584var runTask = function (task2, cleanUp) { return __async(void 0, null, function () {
1585    var value, error_1;
1586    return __generator(this, function (_c) {
1587        switch (_c.label) {
1588            case 0:
1589                _c.trys.push([0, 3, 4, 5]);
1590                return [4 /*yield*/, Promise.resolve()];
1591            case 1:
1592                _c.sent();
1593                return [4 /*yield*/, task2()];
1594            case 2:
1595                value = _c.sent();
1596                return [2 /*return*/, {
1597                        status: "ok",
1598                        value: value
1599                    }];
1600            case 3:
1601                error_1 = _c.sent();
1602                return [2 /*return*/, {
1603                        status: error_1 instanceof TaskAbortError ? "cancelled" : "rejected",
1604                        error: error_1
1605                    }];
1606            case 4:
1607                cleanUp == null ? void 0 : cleanUp();
1608                return [7 /*endfinally*/];
1609            case 5: return [2 /*return*/];
1610        }
1611    });
1612}); };
1613var createPause = function (signal) {
1614    return function (promise2) {
1615        return catchRejection(raceWithSignal(signal, promise2).then(function (output) {
1616            validateActive(signal);
1617            return output;
1618        }));
1619    };
1620};
1621var createDelay = function (signal) {
1622    var pause = createPause(signal);
1623    return function (timeoutMs) {
1624        return pause(new Promise(function (resolve) { return setTimeout(resolve, timeoutMs); }));
1625    };
1626};
1627// src/listenerMiddleware/index.ts
1628var redux_toolkit_esm_assign = Object.assign;
1629var INTERNAL_NIL_TOKEN = {};
1630var alm = "listenerMiddleware";
1631var createFork = function (parentAbortSignal, parentBlockingPromises) {
1632    var linkControllers = function (controller) { return addAbortSignalListener(parentAbortSignal, function () { return abortControllerWithReason(controller, parentAbortSignal.reason); }); };
1633    return function (taskExecutor, opts) {
1634        assertFunction(taskExecutor, "taskExecutor");
1635        var childAbortController = new AbortController();
1636        linkControllers(childAbortController);
1637        var result = runTask(function () { return __async(void 0, null, function () {
1638            var result2;
1639            return __generator(this, function (_c) {
1640                switch (_c.label) {
1641                    case 0:
1642                        validateActive(parentAbortSignal);
1643                        validateActive(childAbortController.signal);
1644                        return [4 /*yield*/, taskExecutor({
1645                                pause: createPause(childAbortController.signal),
1646                                delay: createDelay(childAbortController.signal),
1647                                signal: childAbortController.signal
1648                            })];
1649                    case 1:
1650                        result2 = _c.sent();
1651                        validateActive(childAbortController.signal);
1652                        return [2 /*return*/, result2];
1653                }
1654            });
1655        }); }, function () { return abortControllerWithReason(childAbortController, taskCompleted); });
1656        if (opts == null ? void 0 : opts.autoJoin) {
1657            parentBlockingPromises.push(result);
1658        }
1659        return {
1660            result: createPause(parentAbortSignal)(result),
1661            cancel: function () {
1662                abortControllerWithReason(childAbortController, taskCancelled);
1663            }
1664        };
1665    };
1666};
1667var createTakePattern = function (startListening, signal) {
1668    var take = function (predicate, timeout) { return __async(void 0, null, function () {
1669        var unsubscribe, tuplePromise, promises, output;
1670        return __generator(this, function (_c) {
1671            switch (_c.label) {
1672                case 0:
1673                    validateActive(signal);
1674                    unsubscribe = function () {
1675                    };
1676                    tuplePromise = new Promise(function (resolve, reject) {
1677                        var stopListening = startListening({
1678                            predicate: predicate,
1679                            effect: function (action, listenerApi) {
1680                                listenerApi.unsubscribe();
1681                                resolve([
1682                                    action,
1683                                    listenerApi.getState(),
1684                                    listenerApi.getOriginalState()
1685                                ]);
1686                            }
1687                        });
1688                        unsubscribe = function () {
1689                            stopListening();
1690                            reject();
1691                        };
1692                    });
1693                    promises = [
1694                        tuplePromise
1695                    ];
1696                    if (timeout != null) {
1697                        promises.push(new Promise(function (resolve) { return setTimeout(resolve, timeout, null); }));
1698                    }
1699                    _c.label = 1;
1700                case 1:
1701                    _c.trys.push([1, , 3, 4]);
1702                    return [4 /*yield*/, raceWithSignal(signal, Promise.race(promises))];
1703                case 2:
1704                    output = _c.sent();
1705                    validateActive(signal);
1706                    return [2 /*return*/, output];
1707                case 3:
1708                    unsubscribe();
1709                    return [7 /*endfinally*/];
1710                case 4: return [2 /*return*/];
1711            }
1712        });
1713    }); };
1714    return function (predicate, timeout) { return catchRejection(take(predicate, timeout)); };
1715};
1716var getListenerEntryPropsFrom = function (options) {
1717    var type = options.type, actionCreator = options.actionCreator, matcher = options.matcher, predicate = options.predicate, effect = options.effect;
1718    if (type) {
1719        predicate = createAction(type).match;
1720    }
1721    else if (actionCreator) {
1722        type = actionCreator.type;
1723        predicate = actionCreator.match;
1724    }
1725    else if (matcher) {
1726        predicate = matcher;
1727    }
1728    else if (predicate) {
1729    }
1730    else {
1731        throw new Error("Creating or removing a listener requires one of the known fields for matching an action");
1732    }
1733    assertFunction(effect, "options.listener");
1734    return { predicate: predicate, type: type, effect: effect };
1735};
1736var createListenerEntry = function (options) {
1737    var _c = getListenerEntryPropsFrom(options), type = _c.type, predicate = _c.predicate, effect = _c.effect;
1738    var id = nanoid();
1739    var entry = {
1740        id: id,
1741        effect: effect,
1742        type: type,
1743        predicate: predicate,
1744        pending: new Set(),
1745        unsubscribe: function () {
1746            throw new Error("Unsubscribe not initialized");
1747        }
1748    };
1749    return entry;
1750};
1751var cancelActiveListeners = function (entry) {
1752    entry.pending.forEach(function (controller) {
1753        abortControllerWithReason(controller, listenerCancelled);
1754    });
1755};
1756var createClearListenerMiddleware = function (listenerMap) {
1757    return function () {
1758        listenerMap.forEach(cancelActiveListeners);
1759        listenerMap.clear();
1760    };
1761};
1762var safelyNotifyError = function (errorHandler, errorToNotify, errorInfo) {
1763    try {
1764        errorHandler(errorToNotify, errorInfo);
1765    }
1766    catch (errorHandlerError) {
1767        setTimeout(function () {
1768            throw errorHandlerError;
1769        }, 0);
1770    }
1771};
1772var addListener = createAction(alm + "/add");
1773var clearAllListeners = createAction(alm + "/removeAll");
1774var removeListener = createAction(alm + "/remove");
1775var defaultErrorHandler = function () {
1776    var args = [];
1777    for (var _i = 0; _i < arguments.length; _i++) {
1778        args[_i] = arguments[_i];
1779    }
1780    console.error.apply(console, __spreadArray([alm + "/error"], args));
1781};
1782function createListenerMiddleware(middlewareOptions) {
1783    var _this = this;
1784    if (middlewareOptions === void 0) { middlewareOptions = {}; }
1785    var listenerMap = new Map();
1786    var extra = middlewareOptions.extra, _c = middlewareOptions.onError, onError = _c === void 0 ? defaultErrorHandler : _c;
1787    assertFunction(onError, "onError");
1788    var insertEntry = function (entry) {
1789        entry.unsubscribe = function () { return listenerMap.delete(entry.id); };
1790        listenerMap.set(entry.id, entry);
1791        return function (cancelOptions) {
1792            entry.unsubscribe();
1793            if (cancelOptions == null ? void 0 : cancelOptions.cancelActive) {
1794                cancelActiveListeners(entry);
1795            }
1796        };
1797    };
1798    var findListenerEntry = function (comparator) {
1799        for (var _i = 0, _c = Array.from(listenerMap.values()); _i < _c.length; _i++) {
1800            var entry = _c[_i];
1801            if (comparator(entry)) {
1802                return entry;
1803            }
1804        }
1805        return void 0;
1806    };
1807    var startListening = function (options) {
1808        var entry = findListenerEntry(function (existingEntry) { return existingEntry.effect === options.effect; });
1809        if (!entry) {
1810            entry = createListenerEntry(options);
1811        }
1812        return insertEntry(entry);
1813    };
1814    var stopListening = function (options) {
1815        var _c = getListenerEntryPropsFrom(options), type = _c.type, effect = _c.effect, predicate = _c.predicate;
1816        var entry = findListenerEntry(function (entry2) {
1817            var matchPredicateOrType = typeof type === "string" ? entry2.type === type : entry2.predicate === predicate;
1818            return matchPredicateOrType && entry2.effect === effect;
1819        });
1820        if (entry) {
1821            entry.unsubscribe();
1822            if (options.cancelActive) {
1823                cancelActiveListeners(entry);
1824            }
1825        }
1826        return !!entry;
1827    };
1828    var notifyListener = function (entry, action, api, getOriginalState) { return __async(_this, null, function () {
1829        var internalTaskController, take, autoJoinPromises, listenerError_1;
1830        return __generator(this, function (_c) {
1831            switch (_c.label) {
1832                case 0:
1833                    internalTaskController = new AbortController();
1834                    take = createTakePattern(startListening, internalTaskController.signal);
1835                    autoJoinPromises = [];
1836                    _c.label = 1;
1837                case 1:
1838                    _c.trys.push([1, 3, 4, 6]);
1839                    entry.pending.add(internalTaskController);
1840                    return [4 /*yield*/, Promise.resolve(entry.effect(action, redux_toolkit_esm_assign({}, api, {
1841                            getOriginalState: getOriginalState,
1842                            condition: function (predicate, timeout) { return take(predicate, timeout).then(Boolean); },
1843                            take: take,
1844                            delay: createDelay(internalTaskController.signal),
1845                            pause: createPause(internalTaskController.signal),
1846                            extra: extra,
1847                            signal: internalTaskController.signal,
1848                            fork: createFork(internalTaskController.signal, autoJoinPromises),
1849                            unsubscribe: entry.unsubscribe,
1850                            subscribe: function () {
1851                                listenerMap.set(entry.id, entry);
1852                            },
1853                            cancelActiveListeners: function () {
1854                                entry.pending.forEach(function (controller, _, set) {
1855                                    if (controller !== internalTaskController) {
1856                                        abortControllerWithReason(controller, listenerCancelled);
1857                                        set.delete(controller);
1858                                    }
1859                                });
1860                            }
1861                        })))];
1862                case 2:
1863                    _c.sent();
1864                    return [3 /*break*/, 6];
1865                case 3:
1866                    listenerError_1 = _c.sent();
1867                    if (!(listenerError_1 instanceof TaskAbortError)) {
1868                        safelyNotifyError(onError, listenerError_1, {
1869                            raisedBy: "effect"
1870                        });
1871                    }
1872                    return [3 /*break*/, 6];
1873                case 4: return [4 /*yield*/, Promise.allSettled(autoJoinPromises)];
1874                case 5:
1875                    _c.sent();
1876                    abortControllerWithReason(internalTaskController, listenerCompleted);
1877                    entry.pending.delete(internalTaskController);
1878                    return [7 /*endfinally*/];
1879                case 6: return [2 /*return*/];
1880            }
1881        });
1882    }); };
1883    var clearListenerMiddleware = createClearListenerMiddleware(listenerMap);
1884    var middleware = function (api) { return function (next) { return function (action) {
1885        if (!isAction(action)) {
1886            return next(action);
1887        }
1888        if (addListener.match(action)) {
1889            return startListening(action.payload);
1890        }
1891        if (clearAllListeners.match(action)) {
1892            clearListenerMiddleware();
1893            return;
1894        }
1895        if (removeListener.match(action)) {
1896            return stopListening(action.payload);
1897        }
1898        var originalState = api.getState();
1899        var getOriginalState = function () {
1900            if (originalState === INTERNAL_NIL_TOKEN) {
1901                throw new Error(alm + ": getOriginalState can only be called synchronously");
1902            }
1903            return originalState;
1904        };
1905        var result;
1906        try {
1907            result = next(action);
1908            if (listenerMap.size > 0) {
1909                var currentState = api.getState();
1910                var listenerEntries = Array.from(listenerMap.values());
1911                for (var _i = 0, listenerEntries_1 = listenerEntries; _i < listenerEntries_1.length; _i++) {
1912                    var entry = listenerEntries_1[_i];
1913                    var runListener = false;
1914                    try {
1915                        runListener = entry.predicate(action, currentState, originalState);
1916                    }
1917                    catch (predicateError) {
1918                        runListener = false;
1919                        safelyNotifyError(onError, predicateError, {
1920                            raisedBy: "predicate"
1921                        });
1922                    }
1923                    if (!runListener) {
1924                        continue;
1925                    }
1926                    notifyListener(entry, action, api, getOriginalState);
1927                }
1928            }
1929        }
1930        finally {
1931            originalState = INTERNAL_NIL_TOKEN;
1932        }
1933        return result;
1934    }; }; };
1935    return {
1936        middleware: middleware,
1937        startListening: startListening,
1938        stopListening: stopListening,
1939        clearListeners: clearListenerMiddleware
1940    };
1941}
1942// src/autoBatchEnhancer.ts
1943var SHOULD_AUTOBATCH = "RTK_autoBatch";
1944var prepareAutoBatched = function () { return function (payload) {
1945    var _c;
1946    return ({
1947        payload: payload,
1948        meta: (_c = {}, _c[SHOULD_AUTOBATCH] = true, _c)
1949    });
1950}; };
1951var promise;
1952var queueMicrotaskShim = typeof queueMicrotask === "function" ? queueMicrotask.bind(typeof window !== "undefined" ? window : typeof __webpack_require__.g !== "undefined" ? __webpack_require__.g : globalThis) : function (cb) { return (promise || (promise = Promise.resolve())).then(cb).catch(function (err) { return setTimeout(function () {
1953    throw err;
1954}, 0); }); };
1955var createQueueWithTimer = function (timeout) {
1956    return function (notify) {
1957        setTimeout(notify, timeout);
1958    };
1959};
1960var rAF = typeof window !== "undefined" && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10);
1961var autoBatchEnhancer = function (options) {
1962    if (options === void 0) { options = { type: "raf" }; }
1963    return function (next) { return function () {
1964        var args = [];
1965        for (var _i = 0; _i < arguments.length; _i++) {
1966            args[_i] = arguments[_i];
1967        }
1968        var store = next.apply(void 0, args);
1969        var notifying = true;
1970        var shouldNotifyAtEndOfTick = false;
1971        var notificationQueued = false;
1972        var listeners = new Set();
1973        var queueCallback = options.type === "tick" ? queueMicrotaskShim : options.type === "raf" ? rAF : options.type === "callback" ? options.queueNotification : createQueueWithTimer(options.timeout);
1974        var notifyListeners = function () {
1975            notificationQueued = false;
1976            if (shouldNotifyAtEndOfTick) {
1977                shouldNotifyAtEndOfTick = false;
1978                listeners.forEach(function (l) { return l(); });
1979            }
1980        };
1981        return Object.assign({}, store, {
1982            subscribe: function (listener2) {
1983                var wrappedListener = function () { return notifying && listener2(); };
1984                var unsubscribe = store.subscribe(wrappedListener);
1985                listeners.add(listener2);
1986                return function () {
1987                    unsubscribe();
1988                    listeners.delete(listener2);
1989                };
1990            },
1991            dispatch: function (action) {
1992                var _a;
1993                try {
1994                    notifying = !((_a = action == null ? void 0 : action.meta) == null ? void 0 : _a[SHOULD_AUTOBATCH]);
1995                    shouldNotifyAtEndOfTick = !notifying;
1996                    if (shouldNotifyAtEndOfTick) {
1997                        if (!notificationQueued) {
1998                            notificationQueued = true;
1999                            queueCallback(notifyListeners);
2000                        }
2001                    }
2002                    return store.dispatch(action);
2003                }
2004                finally {
2005                    notifying = true;
2006                }
2007            }
2008        });
2009    }; };
2010};
2011// src/index.ts
2012(0,immer_esm/* enableES5 */.pV)();
2013
2014//# sourceMappingURL=redux-toolkit.esm.js.map
2015
2016/***/ }),
2017
2018/***/ 882074:
2019/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2020
2021"use strict";
2022
2023Object.defineProperty(exports, "__esModule", ({ value: true }));
2024exports.Icon = void 0;
2025const jsx_runtime_1 = __webpack_require__(785893);
2026const icons_1 = __webpack_require__(456673);
2027const getIconByName = (iconName) => {
2028    switch (iconName) {
2029        case 'amex':
2030            return icons_1.ICONS.AMEX;
2031        case 'arrow-down':
2032            return icons_1.ICONS.ARROW_DOWN;
2033        case 'arrow-down-flexible':
2034            return icons_1.ICONS.ARROW_DOWN_FLEXIBLE;
2035        case 'arrow-down-thin':
2036            return icons_1.ICONS.ARROW_DOWN_THIN;
2037        case 'arrow-left-thin':
2038            return icons_1.ICONS.ARROW_LEFT_THIN;
2039        case 'arrow-left':
2040            return icons_1.ICONS.ARROW_LEFT;
2041        case 'arrow-right-thin':
2042            return icons_1.ICONS.ARROW_RIGHT_THIN;
2043        case 'arrow-right':
2044            return icons_1.ICONS.ARROW_RIGHT;
2045        case 'arrow-up':
2046            return icons_1.ICONS.ARROW_UP;
2047        case 'arrow-up-grey':
2048            return icons_1.ICONS.ARROW_UP_GREY;
2049        case 'attributes':
2050            return icons_1.ICONS.ATTRIBUTES;
2051        case 'basket':
2052            return icons_1.ICONS.BASKET;
2053        case 'beef-steaks':
2054            return icons_1.ICONS.BEEF_STEAKS;
2055        case 'beef-and-steaks':
2056            return icons_1.ICONS.BEEF_AND_STEAKS;
2057        case 'bold-DownwardChevron':
2058            return icons_1.ICONS.BOLD_DOWNWARD_CHEVRON;
2059        case 'bowl-hot':
2060            return icons_1.ICONS.BOWL_HOT;
2061        case 'box-outlined':
2062            return icons_1.ICONS.BOX_OUTLINED;
2063        case 'chevron':
2064            return icons_1.ICONS.CHEVRON;
2065        case 'chicken-poultry':
2066            return icons_1.ICONS.CHICKEN_POULTRY;
2067        case 'clock':
2068            return icons_1.ICONS.CLOCK;
2069        case 'clock-single-outline':
2070            return icons_1.ICONS.CLOCK_SINGLE_OUTLINE;
2071        case 'close-wider':
2072            return icons_1.ICONS.CLOSE_WIDER;
2073        case 'close':
2074            return icons_1.ICONS.CLOSE;
2075        case 'desserts-breads':
2076            return icons_1.ICONS.DESSERTS_BREADS;
2077        case 'diners':
2078            return icons_1.ICONS.DINERS;
2079        case 'discover':
2080            return icons_1.ICONS.DISCOVER;
2081        case 'DownwardChevron':
2082            return icons_1.ICONS.DOWNWARD_CHEVRON;
2083        case 'eye-cross':
2084            return icons_1.ICONS.EYE_CROSS;
2085        case 'eye':
2086            return icons_1.ICONS.EYE;
2087        case 'female':
2088            return icons_1.ICONS.FEMALE;
2089        case 'filter':
2090            return icons_1.ICONS.FILTER;
2091        case 'find-store':
2092            return icons_1.ICONS.FIND_STORE;
2093        case 'flame':
2094            return icons_1.ICONS.FLAME;
2095        case 'free':
2096            return icons_1.ICONS.FREE;
2097        case 'fruits-vegetables':
2098            return icons_1.ICONS.FRUITS_AND_VEGETABLES;
2099        case 'gifting':
2100            return icons_1.ICONS.GIFTING;
2101        case 'hamburguer':
2102            return icons_1.ICONS.HAMBURGUER;
2103        case 'heart':
2104            return icons_1.ICONS.HEART;
2105        case 'heart-outlined':
2106            return icons_1.ICONS.HEART_OUTLINED;
2107        case 'heart-filled':
2108            return icons_1.ICONS.HEART_FILLED;
2109        case 'heart-outlined-white':
2110            return icons_1.ICONS.HEART_OUTLINED_WHITE;
2111        case 'kid':
2112            return icons_1.ICONS.KID;
2113        case 'lamb':
2114            return icons_1.ICONS.LAMB;
2115        case 'leaf':
2116            return icons_1.ICONS.LEAF;
2117        case 'loader':
2118            return icons_1.ICONS.LOADER;
2119        case 'location-red':
2120            return icons_1.ICONS.LOCATION_RED;
2121        case 'location-white':
2122            return icons_1.ICONS.LOCATION_WHITE;
2123        case 'location-dark':
2124            return icons_1.ICONS.LOCATION_DARK;
2125        case 'location':
2126            return icons_1.ICONS.LOCATION;
2127        case 'lock':
2128            return icons_1.ICONS.LOCK;
2129        case 'magnifying-glass':
2130            return icons_1.ICONS.MAGNIFYING_GLASS;
2131        case 'male':
2132            return icons_1.ICONS.MALE;
2133        case 'mc':
2134            return icons_1.ICONS.MASTER_CARD;
2135        case 'meat-bbq':
2136            return icons_1.ICONS.MEAT_BBQ;
2137        case 'meat-cleaver':
2138            return icons_1.ICONS.MEAT_CLEAVER;
2139        case 'medal':
2140            return icons_1.ICONS.MEDAL;
2141        case 'message':
2142            return icons_1.ICONS.MESSAGE;
2143        case 'paypal':
2144            return icons_1.ICONS.PAYPAL;
2145        case 'phone':
2146            return icons_1.ICONS.PHONE;
2147        case 'plus-circle':
2148            return icons_1.ICONS.PLUS_CIRCLE;
2149        case 'pork':
2150            return icons_1.ICONS.PORK;
2151        case 'profile':
2152            return icons_1.ICONS.PROFILE;
2153        case 'question-bullet':
2154            return icons_1.ICONS.QUESTION_BULLET;
2155        case 'question':
2156            return icons_1.ICONS.QUESTION;
2157        case 'quick-easy':
2158            return icons_1.ICONS.QUICK_AND_EASY;
2159        case 'recipe':
2160            return icons_1.ICONS.RECIPE;
2161        case 'recipes':
2162            return icons_1.ICONS.RECIPES;
2163        case 'rounded-plus':
2164            return icons_1.ICONS.ROUNDED_PLUS;
2165        case 'rounded-minus':
2166            return icons_1.ICONS.ROUNDED_MINUS;
2167        case 'sauces-spices':
2168            return icons_1.ICONS.SAUCES_AND_SPICES;
2169        case 'sausage-bbq':
2170            return icons_1.ICONS.SAUSAGE_BBQ;
2171        case 'sausage-burguers':
2172            return icons_1.ICONS.SAUSAGE_BURGERS;
2173        case 'seafood':
2174            return icons_1.ICONS.SEAFOOD;
2175        case 'search':
2176            return icons_1.ICONS.SEARCH;
2177        case 'sort':
2178            return icons_1.ICONS.SORT;
2179        case 'specialty-meat':
2180            return icons_1.ICONS.SPECIALTY_MEAT;
2181        case 'subscription-truck':
2182            return icons_1.ICONS.SUBSCRIPTION_TRUCK;
2183        case 'thumbs-up':
2184            return icons_1.ICONS.THUMBS_UP;
2185        case 'tick-circle':
2186            return icons_1.ICONS.TICK_CIRCLE;
2187        case 'truck-fast':
2188            return icons_1.ICONS.TRUCK_FAST;
2189        case 'truck':
2190            return icons_1.ICONS.TRUCK;
2191        case 'UpwardChevron':
2192            return icons_1.ICONS.UPWARD_CHEVRON;
2193        case 'user-welcome':
2194            return icons_1.ICONS.USER_WELCOME;
2195        case 'visa':
2196            return icons_1.ICONS.VISA;
2197        case 'warning-vector':
2198            return icons_1.ICONS.WARNING_VECTOR;
2199        case 'x-hamburger':
2200            return icons_1.ICONS.X_HAMBURGER;
2201        case 'add':
2202            return icons_1.ICONS.ADD;
2203        case 'account-downward-chevron':
2204            return icons_1.ICONS.ACCOUNT_DOWNWARD_CHEVRON;
2205        case 'account-upward-chevron':
2206            return icons_1.ICONS.ACCOUNT_UPWARD_CHEVRON;
2207        case 'googlepay':
2208            return icons_1.ICONS.GOOGLE_PAY;
2209        case 'google-pay-light':
2210            return icons_1.ICONS.GOOGLE_PAY_LIGHT;
2211        case 'applepay':
2212            return icons_1.ICONS.APPLEPAY;
2213        case 'apple-pay-light':
2214            return icons_1.ICONS.APPLE_PAY_LIGHT;
2215        case 'deliveryVan':
2216            return icons_1.ICONS.DELIVERY_VAN;
2217        case 'pickupStore':
2218            return icons_1.ICONS.PICKUP_STORE;
2219        case 'membership':
2220            return icons_1.ICONS.MEMBERSHIP;
2221        case 'caution':
2222            return icons_1.ICONS.CAUTION;
2223        case 'idCard':
2224            return icons_1.ICONS.ID_CARD;
2225        case 'tick-small':
2226            return icons_1.ICONS.TICK_SMALL;
2227        case 'discount-tag':
2228            return icons_1.ICONS.DISCOUNT_TAG;
2229        case 'max-ebt-amount':
2230            return icons_1.ICONS.MAXIMUM_EBT_INFO;
2231        case 'max-ebt-amount-error':
2232            return icons_1.ICONS.MAXIMUM_EBT_AMOUNT_ERROR;
2233        case 'order-confirmation-delivery-van':
2234            return icons_1.ICONS.ORDER_CONFIRMATION_DELIVERY_VAN;
2235        case 'order-confirmation-pickup-store':
2236            return icons_1.ICONS.ORDER_CONFIRMATION_PICKUP_STORE;
2237        case 'order-confirmation-tick-circle':
2238            return icons_1.ICONS.ORDER_CONFIRMATION_TICK_CIRCLE;
2239        default:
2240            break;
2241    }
2242    const iconNameFormatted = iconName.toUpperCase().replace(/-/g, '_');
2243    return icons_1.ICONS?.[iconNameFormatted] || null;
2244};
2245const Icon = (props) => {
2246    const { onClick, iconName, id, className, disabled, ...restProps } = props;
2247    const classes = [
2248        'icon',
2249        onClick ? 'icon-link' : '',
2250        disabled ? 'icon-disabled' : '',
2251        className,
2252    ].join(' ');
2253    return ((0, jsx_runtime_1.jsx)("div", { id: id, className: classes, ...(!disabled && onClick && { onClick: onClick }), ...restProps, children: getIconByName(iconName) }));
2254};
2255exports.Icon = Icon;
2256
2257
2258/***/ }),
2259
2260/***/ 229818:
2261/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2262
2263"use strict";
2264
2265Object.defineProperty(exports, "__esModule", ({ value: true }));
2266const Icon_1 = __webpack_require__(882074);
2267exports["default"] = Icon_1.Icon;
2268
2269
2270/***/ }),
2271
2272/***/ 990598:
2273/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2274
2275"use strict";
2276
2277var __importDefault = (this && this.__importDefault) || function (mod) {
2278    return (mod && mod.__esModule) ? mod : { "default": mod };
2279};
2280Object.defineProperty(exports, "__esModule", ({ value: true }));
2281exports.Snackbar = void 0;
2282const jsx_runtime_1 = __webpack_require__(785893);
2283const Close_1 = __importDefault(__webpack_require__(450594));
2284const Alert_1 = __importDefault(__webpack_require__(413985));
2285const AlertTitle_1 = __importDefault(__webpack_require__(157469));
2286const IconButton_1 = __importDefault(__webpack_require__(574113));
2287const Snackbar_1 = __importDefault(__webpack_require__(147442));
2288const Snackbar = ({ messageInfo, handleClose, handleExited, open, duration, }) => {
2289    return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(Snackbar_1.default, { open: open, autoHideDuration: duration, onClose: handleClose, TransitionProps: { onExited: handleExited }, children: (0, jsx_runtime_1.jsxs)(Alert_1.default, { severity: messageInfo?.type, className: "container", action: (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(IconButton_1.default, { "aria-label": "close", color: "inherit", sx: { p: 0.5 }, onClick: handleClose, children: (0, jsx_runtime_1.jsx)(Close_1.default, {}) }) }), children: [messageInfo?.title && (0, jsx_runtime_1.jsx)(AlertTitle_1.default, { children: messageInfo.title }), messageInfo ? messageInfo.message : ''] }) }, messageInfo ? messageInfo.key : undefined) }));
2290};
2291exports.Snackbar = Snackbar;
2292
2293
2294/***/ }),
2295
2296/***/ 439058:
2297/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2298
2299"use strict";
2300
2301var __importDefault = (this && this.__importDefault) || function (mod) {
2302    return (mod && mod.__esModule) ? mod : { "default": mod };
2303};
2304Object.defineProperty(exports, "__esModule", ({ value: true }));
2305exports.contentTranslationInitialValues = void 0;
2306exports["default"] = ZipCodePopUp;
2307const jsx_runtime_1 = __webpack_require__(785893);
2308const react_1 = __webpack_require__(667294);
2309const storage_1 = __webpack_require__(692521);
2310const zipcode_1 = __webpack_require__(935848);
2311const browserStorage_1 = __webpack_require__(673228);
2312const locale_1 = __webpack_require__(100372);
2313const index_1 = __importDefault(__webpack_require__(229818));
2314const InitialLayout_1 = __importDefault(__webpack_require__(731445));
2315const WeDeliverLayout_1 = __importDefault(__webpack_require__(878575));
2316const WeDontDeliverLayout_1 = __importDefault(__webpack_require__(378659));
2317exports.contentTranslationInitialValues = {
2318    initialTitle: 'Welcome to Wild Fork',
2319    initialMessage: (0, locale_1.t)('header.zip_code_popup.initial_message'),
2320    initialInputPlaceholder: (0, locale_1.t)('header.zip_code_popup.initial_input_place_holder'),
2321    initialButtonLabel: 'Continue',
2322    deliverTitle: 'We deliver to',
2323    deliverMessage: "We hope you're hungry, because an amazing meal is just a few clicks away!",
2324    deliverButtonLabel: 'Start Shopping',
2325    deliverChangePostalCodeText: (0, locale_1.t)('header.zip_code_popup.delivery_change_postal_code_text'),
2326    noDeliverTitle: 'SORRY, WE DON’T DELIVER TO',
2327    noDeliverMessage: 'We only serve select areas right now, but are working hard to expand our coverage',
2328    noDeliverContinueButtonLabel: 'Continue with browsing',
2329    noDeliverNotifyButtonLabel: 'Continue with browsing',
2330    noDeliverChangePostalCodeText: (0, locale_1.t)('header.zip_code_popup.no_delivery_change_postal_code_text'),
2331    weRememberYouTitle: 'Welcome back! We remember you shopped at ',
2332    weRememberYouMessage: (0, locale_1.t)('header.zip_code_popup.we_remember_you_message'),
2333    weRememberYouCTA: 'Yes, continue',
2334};
2335function ZipCodePopUp({ dispatch, setZipCodeHandler, toggleZipCodePopUp, zipcode, zipcodePopupOpen, locale, handleSubmitZipcode, contentTranslation = exports.contentTranslationInitialValues, initialLayout = zipcode_1.ZIPCODE_POPUP_LAYOUT.INITIAL, }) {
2336    const { initialTitle, initialMessage, initialInputPlaceholder, initialButtonLabel, deliverTitle, deliverMessage, deliverButtonLabel, deliverLocationIcon, deliverChangePostalCodeText, noDeliverTitle, noDeliverMessage, noDeliverContinueButtonLabel, noDeliverNotifyButtonLabel, noDeliverLocationIcon, noDeliverChangePostalCodeText, weRememberYouTitle, weRememberYouMessage, weRememberYouCTA, } = contentTranslation;
2337    const [currentLayout, setCurrentLayout] = (0, react_1.useState)(initialLayout);
2338    const isCanadianUser = false;
2339    const workerContextForCA = null;
2340    const isTwoMintsPasssedForCA = null;
2341    const isTwoMintsPasssedFromStorageForCA = null;
2342    const handleToggle = () => {
2343        setCurrentLayout(zipcode_1.ZIPCODE_POPUP_LAYOUT.INITIAL);
2344        const zipCodeAvailabilityInLocalStorageForCA = null;
2345        /**
2346         * Popup model will NOT availble for CA users when enters to the app first-time
2347         */
2348        if (!isCanadianUser ||
2349            (isCanadianUser &&
2350                workerContextForCA &&
2351                (isTwoMintsPasssedForCA ||
2352                    isTwoMintsPasssedFromStorageForCA === 'true')) ||
2353            zipCodeAvailabilityInLocalStorageForCA) {
2354            dispatch(toggleZipCodePopUp());
2355        }
2356    };
2357    const handleLayoutSwitchInitial = () => {
2358        setCurrentLayout(zipcode_1.ZIPCODE_POPUP_LAYOUT.INITIAL);
2359        (0, browserStorage_1.removeItem)(storage_1.STORAGE_KEYS.CUSTOMER_ZIP, storage_1.STORAGE_TYPES.LOCAL);
2360        saveZipcode({ inputZipcode: '', availability: false });
2361    };
2362    const saveZipcode = ({ inputZipcode, availability, }) => {
2363        const zipcodeInfo = { zipcode: inputZipcode, availability };
2364        dispatch(setZipCodeHandler(zipcodeInfo));
2365    };
2366    const initialLayoutProps = {
2367        initialTitle,
2368        initialMessage,
2369        initialInputPlaceholder,
2370        initialButtonLabel,
2371        zipcode,
2372        isTwoMintsPasssedForCA,
2373        workerContextForCA,
2374        initialLayout,
2375        saveZipcode,
2376        switchLayout: setCurrentLayout,
2377        locale,
2378        handleSubmitZipcode,
2379    };
2380    const weDeliverProps = {
2381        deliverTitle,
2382        deliverMessage,
2383        deliverButtonLabel,
2384        deliverLocationIcon,
2385        deliverChangePostalCodeText,
2386        zipcode,
2387        handleToggle,
2388        switchLayout: handleLayoutSwitchInitial,
2389    };
2390    const weDontDeliverProps = {
2391        noDeliverTitle,
2392        noDeliverMessage,
2393        noDeliverContinueButtonLabel,
2394        noDeliverNotifyButtonLabel,
2395        noDeliverLocationIcon,
2396        noDeliverChangePostalCodeText,
2397        zipcode,
2398        handleToggle,
2399        switchLayout: handleLayoutSwitchInitial,
2400        locale,
2401    };
2402    const WeRememberYouLayout = {
2403        deliverTitle: weRememberYouTitle,
2404        deliverMessage: weRememberYouMessage,
2405        deliverButtonLabel: weRememberYouCTA,
2406        deliverLocationIcon,
2407        deliverChangePostalCodeText,
2408        zipcode,
2409        handleToggle,
2410        switchLayout: handleLayoutSwitchInitial,
2411    };
2412    const layouts = {
2413        initial: (0, jsx_runtime_1.jsx)(InitialLayout_1.default, { ...initialLayoutProps }),
2414        weDeliver: (0, jsx_runtime_1.jsx)(WeDeliverLayout_1.default, { ...weDeliverProps }),
2415        weDontDeliver: (0, jsx_runtime_1.jsx)(WeDontDeliverLayout_1.default, { ...weDontDeliverProps }),
2416        weRememberYou: (0, jsx_runtime_1.jsx)(WeDeliverLayout_1.default, { ...WeRememberYouLayout }),
2417    };
2418    const activeLayout = layouts[currentLayout];
2419    return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: zipcodePopupOpen ? ((0, jsx_runtime_1.jsx)("div", { className: `zip-code-pop-up__modal`, role: "dialog", children: (0, jsx_runtime_1.jsx)("div", { className: "zip-code-pop-up__modal__overlay", children: (0, jsx_runtime_1.jsx)("div", { className: "zip-code-pop-up__modal__content", children: (0, jsx_runtime_1.jsxs)("section", { className: "trade-area", "data-testid": "zipcode-popup", children: [(0, jsx_runtime_1.jsx)(PopUpCloseBtn, { isCanadianUser: isCanadianUser, currentLayout: currentLayout, handleToggle: handleToggle }), activeLayout] }) }) }) })) : ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {})) }));
2420}
2421const PopUpCloseBtn = ({ isCanadianUser, currentLayout, handleToggle, }) => {
2422    if (isCanadianUser && currentLayout === zipcode_1.ZIPCODE_POPUP_LAYOUT.INITIAL)
2423        return null;
2424    return ((0, jsx_runtime_1.jsx)("button", { "data-testid": "zipcode-popup--close", className: "trade-area__close-modal-button", onClick: handleToggle, children: (0, jsx_runtime_1.jsx)(index_1.default, { iconName: "close" }) }));
2425};
2426
2427
2428/***/ }),
2429
2430/***/ 731445:
2431/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2432
2433"use strict";
2434
2435var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2436    if (k2 === undefined) k2 = k;
2437    var desc = Object.getOwnPropertyDescriptor(m, k);
2438    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
2439      desc = { enumerable: true, get: function() { return m[k]; } };
2440    }
2441    Object.defineProperty(o, k2, desc);
2442}) : (function(o, m, k, k2) {
2443    if (k2 === undefined) k2 = k;
2444    o[k2] = m[k];
2445}));
2446var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
2447    Object.defineProperty(o, "default", { enumerable: true, value: v });
2448}) : function(o, v) {
2449    o["default"] = v;
2450});
2451var __importStar = (this && this.__importStar) || (function () {
2452    var ownKeys = function(o) {
2453        ownKeys = Object.getOwnPropertyNames || function (o) {
2454            var ar = [];
2455            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
2456            return ar;
2457        };
2458        return ownKeys(o);
2459    };
2460    return function (mod) {
2461        if (mod && mod.__esModule) return mod;
2462        var result = {};
2463        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
2464        __setModuleDefault(result, mod);
2465        return result;
2466    };
2467})();
2468var __importDefault = (this && this.__importDefault) || function (mod) {
2469    return (mod && mod.__esModule) ? mod : { "default": mod };
2470};
2471Object.defineProperty(exports, "__esModule", ({ value: true }));
2472exports["default"] = InitialLayout;
2473const jsx_runtime_1 = __webpack_require__(785893);
2474const react_1 = __webpack_require__(667294);
2475// import { STORAGE_KEYS, STORAGE_TYPES } from '../../../../../../lib/constants/storage.js';
2476// import { getItem, removeItem, setItem } from '../../../../../../lib/utils/browserStorage.js';
2477const noop_1 = __importDefault(__webpack_require__(850308));
2478const react_final_form_1 = __webpack_require__(166688);
2479const commons_1 = __webpack_require__(820523);
2480const locale_1 = __webpack_require__(808439);
2481const context_1 = __webpack_require__(93050);
2482const zipcode_1 = __webpack_require__(935848);
2483const checkout_1 = __webpack_require__(916382);
2484// import { isCanadianLocale } from '@Utils/locale';
2485// import { usePopUpRuleForCA } from '@wff/hooks/usePopUpRuleForCA';
2486const formUtils_1 = __webpack_require__(503499);
2487const Logger_1 = __importDefault(__webpack_require__(101914));
2488const productUtils_1 = __webpack_require__(574909);
2489const Button_1 = __webpack_require__(646252);
2490const FormTextField_1 = __importDefault(__webpack_require__(773587));
2491const FieldValidator_1 = __importStar(__webpack_require__(784870));
2492const FormValidator_1 = __webpack_require__(241972);
2493function InitialLayout({ initialTitle, initialMessage, initialInputPlaceholder, initialButtonLabel, zipcode, switchLayout, locale, handleSubmitZipcode, }) {
2494    const [inputZipcode, setInputZipcode] = (0, react_1.useState)(zipcode);
2495    const [touched, setTouched] = (0, react_1.useState)(zipcode ? true : false); // if zipcode is initialized then setTouched to true
2496    const { countryShort, languageCode } = locale;
2497    const isCanadianUser = false;
2498    // const isCanadianUser = isCanadianLocale(languageCode);
2499    // const dispatch = useDispatch();
2500    // const { availability } = useAppSelector(ZipCodeSelector);
2501    // const workerContextValue = usePopUpRuleForCA();
2502    // const isTwoMintsPasssedForCA =
2503    //   workerContextValue?.fromWorkerCA?.message?.twoMintsPassed;
2504    const setZipHandler = async (e) => {
2505        if (!touched) {
2506            setTouched(true);
2507        }
2508        const formattedZipcode = (0, checkout_1.formatZipcode)(e.target.value.trim(), countryShort).trim();
2509        setInputZipcode(formattedZipcode);
2510    };
2511    //CA-ONLY
2512    //User entered zipcode validate and store the status in the local storage
2513    // useEffect(() => {
2514    //   const userEnteredZipCode =
2515    //     billingAddressFieldValidators.postalCode(inputZipcode);
2516    //   if (userEnteredZipCode) {
2517    //     handleSubmitZipcode(inputZipcode)?.then((result) => {
2518    //       if (result) {
2519    //         setItem(
2520    //           STORAGE_KEYS.CUSTOMER_ZIP_AVAILABILITY_CA,
2521    //           'true',
2522    //           STORAGE_TYPES.LOCAL
2523    //         );
2524    //       } else {
2525    //         setItem(
2526    //           STORAGE_KEYS.CUSTOMER_ZIP_AVAILABILITY_CA,
2527    //           'false',
2528    //           STORAGE_TYPES.LOCAL
2529    //         );
2530    //       }
2531    //     });
2532    //   }
2533    // }, [inputZipcode, handleSubmitZipcode]);
2534    (0, react_1.useEffect)(() => {
2535        if (zipcode) {
2536            setTouched(true);
2537            setInputZipcode(zipcode);
2538        }
2539    }, [zipcode]);
2540    /**
2541     * This method will execute first attemps when user clicks 'continue' button in the PoPUp model
2542     * after clicks Add To Cart button
2543     * After stored zipcode information to the local storage this method will not execute.
2544     */
2545    // const callForAddToCartViaPopUpContinueButtonForCA = () => {
2546    //   const cartId = '';
2547    //   const callback = (fn: Function) => {
2548    //     if (fn) fn();
2549    //   };
2550    //   const payloadFromLocalStorageForCA: any = localStorage.getItem(
2551    //     STORAGE_KEYS.INCREMENT_PAYLOAD_CA
2552    //   );
2553    //   let parsedpayloadFromLocalStorageForCA = JSON.parse(
2554    //     payloadFromLocalStorageForCA
2555    //   );
2556    //   parsedpayloadFromLocalStorageForCA = {
2557    //     ...parsedpayloadFromLocalStorageForCA,
2558    //     availability,
2559    //     dispatch,
2560    //     callback,
2561    //   };
2562    //   if (parsedpayloadFromLocalStorageForCA?.sku && !isTwoMintsPasssedForCA) {
2563    //     cartUtilQtyAdd(cartId, parsedpayloadFromLocalStorageForCA); // TODO from Jared: regionId will need to be passed like in the other cartUtilQtyAdd calls if this gets commented back in
2564    //     const incrementPayload = getItem(
2565    //       STORAGE_KEYS.INCREMENT_PAYLOAD_CA,
2566    //       STORAGE_TYPES.LOCAL
2567    //     );
2568    //     if (incrementPayload) {
2569    //       removeItem(STORAGE_KEYS.INCREMENT_PAYLOAD_CA, STORAGE_TYPES.LOCAL);
2570    //     }
2571    //   }
2572    // };
2573    const { getCartItems } = (0, context_1.useCartContext)();
2574    const { realTimeInventoryCheck } = (0, context_1.useEnvironmentContext)();
2575    const { updatedZipCode } = (0, context_1.useTrackingContext)();
2576    const { email } = (0, context_1.useCustomerContext)();
2577    const handleButtonClickSubmitZipcode = async (e) => {
2578        e.preventDefault();
2579        const result = await handleSubmitZipcode(inputZipcode);
2580        const state = (0, productUtils_1.getStateFromZip)(inputZipcode);
2581        const { storeHasChanged = false, regionHasChanged = false } = result?.data || {};
2582        // The page will reload if the region has changed so we don't need to call getCartItems
2583        // with real time inventory
2584        if (storeHasChanged && realTimeInventoryCheck && !regionHasChanged)
2585            await getCartItems({
2586                checkInventory: true,
2587                checkStateRestrictions: true,
2588                state: state,
2589            });
2590        updatedZipCode(email);
2591        if (result.success) {
2592            switchLayout(zipcode_1.ZIPCODE_POPUP_LAYOUT.WE_DELIVER);
2593            if (isCanadianUser) {
2594                // callForAddToCartViaPopUpContinueButtonForCA();
2595            }
2596        }
2597        else if (!result.success && !result.error) {
2598            switchLayout(zipcode_1.ZIPCODE_POPUP_LAYOUT.WE_DONT_DELIVER);
2599        }
2600        else {
2601            Logger_1.default.error('Error in handleButtonClickSubmitZipcode', result);
2602        }
2603    };
2604    return ((0, jsx_runtime_1.jsxs)("div", { className: "zip-code-pop-up__trade-area__content", "data-testid": "layout--initial-layout", role: "dialog", "aria-labelledby": "dialog-title", "aria-describedby": "dialog-instructions", children: [(0, jsx_runtime_1.jsx)("h2", { id: "dialog-title", className: "trade-area__title", children: initialTitle }), (0, jsx_runtime_1.jsx)("p", { id: "dialog-instructions", className: "trade-area__copy", children: initialMessage }), (0, jsx_runtime_1.jsx)(react_final_form_1.Form, { onSubmit: noop_1.default, render: () => {
2605                    return ((0, jsx_runtime_1.jsxs)("form", { children: [(0, jsx_runtime_1.jsx)(FormTextField_1.default, { name: "postalCode", onChange: setZipHandler, "data-testid": "form_field-zip", type: "text", placeholder: initialInputPlaceholder, maxLength: commons_1.ZIP_CODE_MAX_LENGTH, validate: (0, FieldValidator_1.default)([
2606                                    (0, FieldValidator_1.required)(),
2607                                    (0, FieldValidator_1.isValidZip)(undefined, { langCode: languageCode }),
2608                                    (0, FieldValidator_1.minLength)(5),
2609                                ], languageCode === 'fr-CA' ? 'Code Postal' : 'Postal Code'), value: inputZipcode, className: "trade-area__zip", showTooltipIconOnErrorOnly: true, showToolTip: false, ...(!locale_1.isCALocale && {
2610                                    customFormat: (value) => (0, formUtils_1.sanitizeZipcodeUS)(value),
2611                                }) }), (0, jsx_runtime_1.jsx)(Button_1.Button, { disabled: (touched &&
2612                                    !FormValidator_1.billingAddressFieldValidators.postalCode(inputZipcode, {
2613                                        langCode: locale.languageCode,
2614                                    })) ||
2615                                    !touched, type: "submit", className: "trade-area__action action action--primary", onClick: handleButtonClickSubmitZipcode, children: initialButtonLabel })] }));
2616                } })] }));
2617}
2618
2619
2620/***/ }),
2621
2622/***/ 878575:
2623/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2624
2625"use strict";
2626
2627Object.defineProperty(exports, "__esModule", ({ value: true }));
2628exports["default"] = WeDeliverLayout;
2629const jsx_runtime_1 = __webpack_require__(785893);
2630const Button_1 = __webpack_require__(646252);
2631function WeDeliverLayout({ deliverTitle, deliverMessage, deliverButtonLabel, deliverChangePostalCodeText, zipcode, handleToggle, switchLayout, }) {
2632    return ((0, jsx_runtime_1.jsxs)("div", { className: "zip-code-pop-up__trade-area__content", "data-testid": "layout--we-deliver", children: [(0, jsx_runtime_1.jsx)("h2", { className: "trade-area__title", children: `${deliverTitle} ${zipcode}` }), (0, jsx_runtime_1.jsx)("p", { className: "trade-area__copy", children: deliverMessage }), (0, jsx_runtime_1.jsx)(Button_1.Button, { type: "submit", className: "trade-area__action action action--primary", onClick: handleToggle, children: deliverButtonLabel }), (0, jsx_runtime_1.jsx)("div", { className: "trade-area__change-location-wrapper", children: (0, jsx_runtime_1.jsx)(Button_1.Button, { className: "action action--secondary", onClick: switchLayout, children: deliverChangePostalCodeText }) })] }));
2633}
2634
2635
2636/***/ }),
2637
2638/***/ 378659:
2639/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2640
2641"use strict";
2642
2643Object.defineProperty(exports, "__esModule", ({ value: true }));
2644exports["default"] = WeDontDeliverLayout;
2645const jsx_runtime_1 = __webpack_require__(785893);
2646const Button_1 = __webpack_require__(646252);
2647function WeDontDeliverLayout({ noDeliverTitle, noDeliverMessage, noDeliverContinueButtonLabel, noDeliverChangePostalCodeText, zipcode, handleToggle, switchLayout, }) {
2648    return ((0, jsx_runtime_1.jsxs)("div", { className: "zip-code-pop-up__trade-area__content", "data-testid": "layout--we-dont-deliver", children: [(0, jsx_runtime_1.jsx)("h2", { className: "trade-area__title", children: `${noDeliverTitle} ${zipcode}` }), (0, jsx_runtime_1.jsx)("p", { className: "trade-area__copy", children: noDeliverMessage }), (0, jsx_runtime_1.jsx)(Button_1.Button, { type: "submit", className: "trade-area__action action action--primary", onClick: handleToggle, children: noDeliverContinueButtonLabel }), (0, jsx_runtime_1.jsx)("div", { className: "trade-area__change-location-wrapper", children: (0, jsx_runtime_1.jsx)(Button_1.Button, { className: "action action--secondary", onClick: switchLayout, children: noDeliverChangePostalCodeText }) })] }));
2649}
2650
2651
2652/***/ }),
2653
2654/***/ 63425:
2655/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2656
2657"use strict";
2658
2659Object.defineProperty(exports, "__esModule", ({ value: true }));
2660exports.DEFAULT_ERROR_BOUNDARY_CONTENT_TRANSLATION_US = void 0;
2661const jsx_runtime_1 = __webpack_require__(785893);
2662const react_1 = __webpack_require__(667294);
2663const GenericError_1 = __webpack_require__(627804);
2664exports.DEFAULT_ERROR_BOUNDARY_CONTENT_TRANSLATION_US = {
2665    errorHeading: 'Error',
2666    errorMessage: 'An Uncaught Error Occurred',
2667    errorDetails: 'We are very sorry for the inconvenience. Something bad happened and a particular request could not be completed. Please try again or contact us for assistance.',
2668    errorLog: 'The following uncaught error was captured in the ErrorBoundary component',
2669};
2670class ErrorBoundary extends react_1.Component {
2671    constructor(props) {
2672        super(props);
2673        this.state = { hasError: false, error: null, errorInfo: null };
2674    }
2675    static getDerivedStateFromError(error) {
2676        return { hasError: true, error, errorInfo: null };
2677    }
2678    componentDidCatch(error, errorInfo) {
2679        const contentTranslation = this.props?.contentTranslation ??
2680            exports.DEFAULT_ERROR_BOUNDARY_CONTENT_TRANSLATION_US;
2681        console.error(contentTranslation.errorLog, { error, errorInfo });
2682        const cartId = getCookie('cart_id');
2683        this.setState({
2684            error,
2685            errorInfo,
2686            hasError: true,
2687            ...(!!cartId && { cartId }),
2688        });
2689    }
2690    render() {
2691        const contentTranslation = this.props?.contentTranslation ??
2692            exports.DEFAULT_ERROR_BOUNDARY_CONTENT_TRANSLATION_US;
2693        if (this.state.hasError) {
2694            return ((0, jsx_runtime_1.jsx)(GenericError_1.GenericError, { heading: contentTranslation.errorHeading, message: contentTranslation.errorMessage, details: contentTranslation.errorDetails, children: (0, jsx_runtime_1.jsxs)("pre", { children: [this.state?.cartId && `Cart ID: ${this.state.cartId}`, (0, jsx_runtime_1.jsx)("br", {}), this.state?.error?.toString(), (0, jsx_runtime_1.jsx)("br", {}), this.state.errorInfo?.componentStack] }) }));
2695        }
2696        return this.props.children;
2697    }
2698}
2699exports["default"] = ErrorBoundary;
2700function getCookie(name = '') {
2701    try {
2702        const value = `; ${document.cookie}`;
2703        const parts = value.split(`; ${name}=`);
2704        if (parts.length === 2)
2705            return parts?.pop()?.split(';')?.shift();
2706    }
2707    catch (error) { }
2708}
2709
2710
2711/***/ }),
2712
2713/***/ 627804:
2714/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2715
2716"use strict";
2717
2718Object.defineProperty(exports, "__esModule", ({ value: true }));
2719exports.GenericError = void 0;
2720const jsx_runtime_1 = __webpack_require__(785893);
2721const GenericError = ({ heading = 'Error', message = 'A General Error Occurred', details, DetailComponent, children, }) => {
2722    return ((0, jsx_runtime_1.jsxs)("div", { className: "generic-error__container", children: [(0, jsx_runtime_1.jsx)("h2", { className: "generic-error__container__heading", children: heading }), message && ((0, jsx_runtime_1.jsx)("h5", { className: "generic-error__container__message", children: message })), details && ((0, jsx_runtime_1.jsx)("p", { className: "generic-error__container__details", children: details })), DetailComponent && (0, jsx_runtime_1.jsx)(DetailComponent, {}), children] }));
2723};
2724exports.GenericError = GenericError;
2725
2726
2727/***/ }),
2728
2729/***/ 696935:
2730/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2731
2732"use strict";
2733
2734var __importDefault = (this && this.__importDefault) || function (mod) {
2735    return (mod && mod.__esModule) ? mod : { "default": mod };
2736};
2737Object.defineProperty(exports, "__esModule", ({ value: true }));
2738exports.customLoader = void 0;
2739exports["default"] = Image;
2740const jsx_runtime_1 = __webpack_require__(785893);
2741// components/Image.js
2742const image_1 = __importDefault(__webpack_require__(425675));
2743// opt-out of image optimization, no-op
2744const customLoader = ({ src }) => {
2745    return src;
2746};
2747exports.customLoader = customLoader;
2748function Image(props) {
2749    if (!props.src) {
2750        return null;
2751    }
2752    /**
2753     * @NOTE The next image component doesn't accept a style attribute, but some
2754     * consumers of this component aren't following the rules!
2755     *
2756     * @Ref https://github.com/akiran/react-slick/blob/master/src/slider.js#L175
2757     * In this particular 3rd party component (react-slick), note the use of
2758     * cloneElement and the addition of a `style` property. This allows a 3rd party
2759     * component to add any properties they like. In this case, it is an error
2760     * because the component react-slick is cloning does not accept a `style`
2761     * property.
2762     *
2763     * The fix below removes any overidden style property that may have been added
2764     * using a technique like the one above.
2765     */
2766    const { style, src, ...remaining } = props;
2767    const finalSrc = typeof src === 'string' ? generateSrc(src, props.formatOptions) : src;
2768    return ((0, jsx_runtime_1.jsx)(image_1.default, { ...remaining, unoptimized: true, loader: exp
2768orts.customLoader, src: finalSrc }));
2769}
2770const generateSrc = (src, formatOptions) => {
2771    if (!formatOptions)
2772        return src;
2773    const params = new URLSearchParams();
2774    Object.entries(formatOptions).forEach(([key, value]) => {
2775        if (!!value) {
2776            params.append(key, value.toString());
2777        }
2778    });
2779    if (!params.has('fm') && !params.has('fl')) {
2780        params.append('fm', 'webp');
2781    }
2782    const queryString = params.toString();
2783    const separator = src.includes('?') ? '&' : '?';
2784    return queryString ? `${src}${separator}${queryString}` : src;
2785};
2786
2787
2788/***/ }),
2789
2790/***/ 939708:
2791/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2792
2793"use strict";
2794
2795var __importDefault = (this && this.__importDefault) || function (mod) {
2796    return (mod && mod.__esModule) ? mod : { "default": mod };
2797};
2798Object.defineProperty(exports, "__esModule", ({ value: true }));
2799exports.IconTooltip = void 0;
2800const jsx_runtime_1 = __webpack_require__(785893);
2801const react_1 = __webpack_require__(667294);
2802const Image_1 = __importDefault(__webpack_require__(696935));
2803const IconTooltip = ({ data, icon = 'questionMark', height = 20, width = 20, id = 'tooltip-icon', }) => {
2804    const iconLinks = {
2805        lock: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABmJLR0QA/wD/AP+gvaeTAAABSUlEQVRIie3TvUrDYBTG8f8JhC51cKmDdZLeh85+TO5uaZauegtKB4XSYhrMBThVKoj3oKObW7s4iOAHGdL0uEQo2vq29K2D5lkSXk6eXw4k8N8iswz7vl9K07QmIttABXgH7oFuoVA4bzQaL9bharW6p6oRsDRh5FFV98MwvJmmz5kBvcjQjqpuxHFcjOO46DjOpqpeAisicuV53tY0ncaNfd8vDYfDhww9aLfb9Qkvd6iqR8Cz67qVZrP59FOvceM0TWsZ2pmEAgRBcAx0geUkSWqmXiMsIjsAqnpqmgVOsuvu3DCwDuC67p1pcDAY3Ga3FRtwEaDVar2ZBqMoeh19Zl54Ifn2VWe/QwCsWjL6quqFYXg9ejhu4zOLKEBZRIKvh+PgskX0M2vTwL+SHM7hHM7hvwH3F+D0jLCqepbxnoh4FvvyzJYP8RhrounhCHMAAAAASUVORK5CYII=',
2806        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=',
2807    };
2808    const imageSRC = icon ? iconLinks[icon] : iconLinks['lock'];
2809    const [isMounted, setIsMounted] = (0, react_1.useState)(false);
2810    (0, react_1.useEffect)(() => {
2811        setIsMounted(true);
2812    }, []);
2813    if (!isMounted) {
2814        return null;
2815    }
2816    return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Image_1.default, { id: id, src: imageSRC, height: height, width: width, alt: "tooltip icon", "data-tip": data }), (0, jsx_runtime_1.jsx)("div", { dangerouslySetInnerHTML: { __html: data } })] }));
2817};
2818exports.IconTooltip = IconTooltip;
2819
2820
2821/***/ }),
2822
2823/***/ 646252:
2824/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2825
2826"use strict";
2827
2828Object.defineProperty(exports, "__esModule", ({ value: true }));
2829exports.Button = void 0;
2830const jsx_runtime_1 = __webpack_require__(785893);
2831const locale_1 = __webpack_require__(808439);
2832const Button = ({ children, className = '', type = 'button', value, disabled = false, onClick, ...restProps }) => {
2833    // const { languageCode } = useAppSelector((state) => state.locale);
2834    const languageCode = locale_1.LANGUAGE_CODE; // TODO from Jared: we will need to get the languageCode in here some other way since redux will not live in core-ui
2835    let styles = {};
2836    if (!languageCode.includes('CA')) {
2837        // squared corners for US, rounded for CA
2838        styles = { borderRadius: 0 };
2839    }
2840    else {
2841        styles = { borderRadius: '10rem' }; // squared corners for US, rounded for CA
2842    }
2843    if (restProps?.style) {
2844        styles = { ...styles, ...restProps.style }; // overrides
2845    }
2846    return ((0, jsx_runtime_1.jsx)("button", { className: `standard-button__btn ${className}`, value: value, type: type, disabled: disabled, onClick: onClick, ...restProps, style: { ...styles }, children: children }));
2847};
2848exports.Button = Button;
2849
2850
2851/***/ }),
2852
2853/***/ 773587:
2854/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2855
2856"use strict";
2857
2858Object.defineProperty(exports, "__esModule", ({ value: true }));
2859const jsx_runtime_1 = __webpack_require__(785893);
2860const react_1 = __webpack_require__(667294);
2861const react_final_form_1 = __webpack_require__(166688);
2862const locale_1 = __webpack_require__(100372);
2863const index_1 = __webpack_require__(809795);
2864const FormTextField = ({ name = '', type = 'text', outlined = false, validate = undefined, showToolTip = true, toolTipData, onChange, inputProps, withPreview = false, value, customFormat, ...restProps }) => {
2865    const classNames = ['form-text-field__text__field', restProps.className || '']
2866        .join(' ')
2867        .trim();
2868    const tooltipIcon = type === 'password' ? 'lock' : undefined;
2869    const [touched, setTouched] = (0, react_1.useState)(false);
2870    return ((0, jsx_runtime_1.jsx)(react_final_form_1.Field, { name: name, validate: validate, formatOnBlur: true, type: type, format: (value) => value?.trim(), children: ({ input, meta }) => {
2871            const inputValue = customFormat
2872                ? customFormat(input.value)
2873                : input.value;
2874            return ((0, jsx_runtime_1.jsx)("div", { className: classNames, children: (0, jsx_runtime_1.jsx)(index_1.TextField, { ...restProps, ...input, ...inputProps, autoFocus: true, value: value || inputValue || '', "aria-label": (0, locale_1.t)('forms.form_fields.form_text_field.aria_label'), onChange: (event) => {
2875                        if (!touched)
2876                            setTouched(true);
2877                        input.onChange?.(event);
2878                        if (onChange) {
2879                            onChange(event);
2880                        }
2881                    }, withPreview: withPreview, tooltipData: toolTipData ?? (showToolTip && touched && meta.error), tooltipIcon: showToolTip && tooltipIcon, className: `${outlined && 'form-text-field__standard_outlined'}`, validate: validate, touched: touched, supressErrorStylesOnFocus: true, formTextFieldValidation: true }) }));
2882        } }));
2883};
2884exports["default"] = FormTextField;
2885
2886
2887/***/ }),
2888
2889/***/ 809795:
2890/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2891
2892"use strict";
2893
2894var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2895    if (k2 === undefined) k2 = k;
2896    var desc = Object.getOwnPropertyDescriptor(m, k);
2897    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
2898      desc = { enumerable: true, get: function() { return m[k]; } };
2899    }
2900    Object.defineProperty(o, k2, desc);
2901}) : (function(o, m, k, k2) {
2902    if (k2 === undefined) k2 = k;
2903    o[k2] = m[k];
2904}));
2905var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
2906    Object.defineProperty(o, "default", { enumerable: true, value: v });
2907}) : function(o, v) {
2908    o["default"] = v;
2909});
2910var __importStar = (this && this.__importStar) || (function () {
2911    var ownKeys = function(o) {
2912        ownKeys = Object.getOwnPropertyNames || function (o) {
2913            var ar = [];
2914            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
2915            return ar;
2916        };
2917        return ownKeys(o);
2918    };
2919    return function (mod) {
2920        if (mod && mod.__esModule) return mod;
2921        var result = {};
2922        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
2923        __setModuleDefault(result, mod);
2924        return result;
2925    };
2926})();
2927var __importDefault = (this && this.__importDefault) || function (mod) {
2928    return (mod && mod.__esModule) ? mod : { "default": mod };
2929};
2930Object.defineProperty(exports, "__esModule", ({ value: true }));
2931exports.TextField = void 0;
2932const jsx_runtime_1 = __webpack_require__(785893);
2933const react_1 = __importStar(__webpack_require__(667294));
2934const Icon_1 = __importDefault(__webpack_require__(229818));
2935const IconToolTip_1 = __webpack_require__(939708);
2936// FormTextField validation logic returns undefined when valid and returns an error string when invalid
2937const validateFormTextField = ({ isValid, validate, value, }) => {
2938    isValid =
2939        validate && typeof validate === 'function'
2940            ? validate(value) === undefined || validate(value) === null
2941            : validate === null || validate === undefined
2942                ? true
2943                : validate; // else just use whatever truthy/falsey value is passed to directly represent valid/invalid
2944    return isValid;
2945};
2946// The standard TextField validation logic returns true when valid and returns false when invalid
2947const validateTextField = ({ isValid, validate, value, }) => {
2948    isValid =
2949        validate && typeof validate === 'function'
2950            ? validate(value)
2951            : validate === null || validate === undefined || validate; // else just use whatever truthy/falsey value is passed to directly represent valid/invalid
2952    return isValid;
2953};
2954exports.TextField = react_1.default.forwardRef(({ label = '', type = 'text', style, tooltipIcon, tooltipData = '', color = 'blue', className, validate, supressErrorStylesOnFocus = false, formTextFieldValidation = false, touched = true, showTooltipIconOnErrorOnly, inputProps = {}, withPreview = false, ...rest }, ref) => {
2955    const [inputType, setInputType] = (0, react_1.useState)(type);
2956    let value = rest?.value;
2957    if (!value && ref != null && typeof ref !== 'function') {
2958        value = ref?.current?.value;
2959    }
2960    let isValid = true;
2961    // if TextField is wrapped by FormTextField (or another wrapper component with similar validation needs)
2962    if (formTextFieldValidation && touched) {
2963        isValid = validateFormTextField({ isValid, validate, value }); // see declaration for definition notes
2964    }
2965    else if (!formTextFieldValidation && touched) {
2966        isValid = validateTextField({ isValid, validate, value }); // see declaration for definition notes
2967    }
2968    const classNames = [
2969        'text-field__input-container',
2970        className,
2971        !isValid && 'text-field__error',
2972        color &&
2973            (isValid || supressErrorStylesOnFocus) &&
2974            `text-field__input-${color}`,
2975    ]
2976        .join(' ')
2977        .trim();
2978    const handleIconClick = () => {
2979        if (withPreview) {
2980            setInputType(inputType === 'password' ? 'text' : 'password');
2981        }
2982    };
2983    return ((0, jsx_runtime_1.jsxs)("div", { className: classNames, style: style, children: [(0, jsx_runtime_1.jsx)("label", { className: value && 'filled', htmlFor: rest.id, children: label }), (0, jsx_runtime_1.jsx)("input", { ...rest, type: inputType, ref: ref, ...inputProps }), withPreview && ((0, jsx_runtime_1.jsx)(Icon_1.default, { iconName: inputType === 'password' ? 'eye-cross' : 'eye', className: "text-field__previewicon", "aria-label": "Password Preview", onClick: handleIconClick })), (0, jsx_runtime_1.jsx)("div", { className: "tooltip", children: tooltipData &&
2984                    (!showTooltipIconOnErrorOnly ||
2985                        (showTooltipIconOnErrorOnly && !isValid)) && ((0, jsx_runtime_1.jsx)(IconToolTip_1.IconTooltip, { data: tooltipData, icon: tooltipIcon })) })] }));
2986});
2987exports.TextField.displayName = 'TextField';
2988
2989
2990/***/ }),
2991
2992/***/ 784870:
2993/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2994
2995"use strict";
2996
2997var __importDefault = (this && this.__importDefault) || function (mod) {
2998    return (mod && mod.__esModule) ? mod : { "default": mod };
2999};
3000Object.defineProperty(exports, "__esModule", ({ value: true }));
3001exports.maxLength = exports.minLength = exports.phoneNumber = exports.isValidZip = exports.isValidZip_enCA = exports.isValidZip_frCA = exports.isValidZip_MX = exports.isValidZip_US = exports.isValidCity = exp
3001orts.isValidAddress = exports.name = exports.confirmPassword = exports.strongPassword = exports.password = exports.email = exports.required = exports.forceFailure = exports.minLengthCurrier = exports.validCoupon = exports.validPhone = exports.validZip = exports.validZip_CA = exports.validZip_MX = exports.validZip_US = exports.validCity = exports.validAddress = exports.validName = exports.validStrongPassword = exports.validPassword = exports.validEmail = exports.composeValidators = exports.EMAIL_MAX_LENGTH = void 0;
3002const locale_1 = __webpack_require__(808439);
3003const patterns_1 = __importDefault(__webpack_require__(405016));
3004/* Email Max Length
3005    email string size limit is a maximum of 64 characters (octets) in the "local part" (before the "@")
3006    and a maximum of 255 characters (octets) in the domain part (after the "@")
3007    for a total length of 320 characters.
3008*/
3009exports.EMAIL_MAX_LENGTH = 320;
3010/** Boolean Returning Validators
3011 *
3012 * @param string to validate
3013 * @returns boolean
3014 *
3015 */
3016/***************** Begin Boolean Returning Validators *****************/
3017const composeValidators = (value, validators, options) => {
3018    return validators.every((validator) => {
3019        return validator(value, options);
3020    });
3021};
3022exports.composeValidators = composeValidators;
3023const validEmail = (email) => {
3024    const regex = new RegExp(patterns_1.default.EMAIL);
3025    return regex.test(email);
3026};
3027exports.validEmail = validEmail;
3028const validPassword = (password) => {
3029    const regex = new RegExp(patterns_1.default.PASSWORD);
3030    return regex.test(password);
3031};
3032exports.validPassword = validPassword;
3033const validStrongPassword = (password) => {
3034    const regex = new RegExp(patterns_1.default.STRONG_PASSWORD);
3035    return regex.test(password);
3036};
3037exports.validStrongPassword = validStrongPassword;
3038const validName = (name) => {
3039    const regex = new RegExp(patterns_1.default.NAME);
3040    return regex.test(name);
3041};
3042exports.validName = validName;
3043const validAddress = (address) => {
3044    const regex = new RegExp(patterns_1.default.ADDRESS);
3045    return regex.test(address);
3046};
3047exports.validAddress = validAddress;
3048const validCity = (city) => {
3049    const regex = new RegExp(patterns_1.default.CITY);
3050    return regex.test(city);
3051};
3052exports.validCity = validCity;
3053const validZip_US = (zip) => {
3054    const regex = new RegExp(patterns_1.default.ZIP_US);
3055    return regex.test(zip);
3056};
3057exports.validZip_US = validZip_US;
3058const validZip_MX = (zip) => {
3059    const regex = new RegExp(patterns_1.default.ZIP_MX);
3060    return regex.test(zip);
3061};
3062exports.validZip_MX = validZip_MX;
3063const validZip_CA = (zip) => {
3064    const regex = new RegExp(patterns_1.default.ZIP_CA);
3065    return regex.test(zip);
3066};
3067exports.validZip_CA = validZip_CA;
3068const validZip = (zip, options) => {
3069    const languageCode = options?.langCode ?? locale_1.CURRENT_LOCALE.languageCode;
3070    let zipValidatorByLocale;
3071    switch (languageCode) {
3072        case locale_1.LOCALE.EN_CA:
3073        case locale_1.LOCALE.FR_CA:
3074            zipValidatorByLocale = exports.validZip_CA;
3075            break;
3076        case locale_1.LOCALE.ES_MX:
3077            zipValidatorByLocale = exports.validZip_MX;
3078            break;
3079        case locale_1.LOCALE.EN_US:
3080        default:
3081            zipValidatorByLocale = exports.validZip_US;
3082            break;
3083    }
3084    return zipValidatorByLocale(zip);
3085};
3086exports.validZip = validZip;
3087const validPhone = (phone) => {
3088    const regex = new RegExp(patterns_1.default.PHONE);
3089    return regex.test(phone);
3090};
3091exports.validPhone = validPhone;
3092const validCoupon = (value) => {
3093    const regex = new RegExp(patterns_1.default.COUPON);
3094    return regex.test(value);
3095};
3096exports.validCoupon = validCoupon;
3097const minLengthCurrier = (length) => {
3098    return (value) => {
3099        return value?.length >= length;
3100    };
3101};
3102exports.minLengthCurrier = minLengthCurrier;
3103/**
3104 * Function to immediately force validation failure
3105 * @param {string} customError - Custom error message to displays
3106 * @returns validating function that returns an error string
3107 */
3108const forceFailure = (customError) => (_value, field) => customError ? customError : `Please enter a valid ${field ?? 'input'}`;
3109exports.forceFailure = forceFailure;
3110/**
3111 * Function to check value is present
3112 * @param {string} customError - Custom error message to display
3113 * @returns
3114 */
3115const required = (customError) => (value, field) => value
3116    ? undefined
3117    : customError ?? `Please enter a valid ${field ?? 'input'}`;
3118exports.required = required;
3119/**
3120 * Function to validate email address
3121 * @param {string} customError - Custom error message to display
3122 * @returns
3123 */
3124const email = (customError) => (value, field) => value && patterns_1.default.EMAIL.test(value)
3125    ? undefined
3126    : customError ?? `Please enter ${field ?? 'Input'} in valid format`;
3127exports.email = email;
3128/**
3129 * Function to validate password
3130 *   - 8 Characters Long
3131 *   - Uppercase Required
3132 *   - Lowercase Required
3133 *   - Number Required
3134 *   - Special Character Required
3135 * @param {string} customError - Custom error message to display
3136 * @returns
3137 */
3138const password = (customError) => (value, field) => value && patterns_1.default.PASSWORD.test(value)
3139    ? undefined
3140    : customError ?? `Please enter ${field ?? 'Input'} in valid format`;
3141exports.password = password;
3142const strongPassword = (customError) => (value, field) => value && patterns_1.default.STRONG_PASSWORD.test(value)
3143    ? undefined
3144    : customError ?? `Please enter ${field ?? 'Input'} in valid format`;
3145exports.strongPassword = strongPassword;
3146/**
3147 * Function to verify password and confirm password
3148 * @param {string} customError - Custom error message to display
3149 * @returns
3150 */
3151const confirmPassword = (password, customError) => (value, field) => !value || value !== password
3152    ? customError ??
3153        `Password and ${field ?? 'Confirm Password'} should match`
3154    : undefined;
3155exports.confirmPassword = confirmPassword;
3156/**
3157 * Function to validate name
3158 * @param {string} customError - Custom error message to display
3159 * @returns
3160 */
3161const name = (customError) => (value, field) => patterns_1.default.NAME.test(value)
3162    ? undefined
3163    : customError ?? `Please enter a valid ${field ?? 'Input'}`;
3164exports.name = name;
3165/**
3166 * Function to validate address
3167 * @param {string} customError - Custom error message to display
3168 * @returns
3169 */
3170const isValidAddress = (customError) => (value, field) => patterns_1.default.ADDRESS.test(value)
3171    ? undefined
3172    : customError ?? `Please enter ${field ?? 'Input'} in valid format`;
3173exports.isValidAddress = isValidAddress;
3174/**
3175 * Function to validate city
3176 * @param {string} customError - Custom error message to display
3177 * @returns
3178 */
3179const isValidCity = (customError) => (value, field) => patterns_1.default.CITY.test(value)
3180    ? undefined
3181    : customError ?? `Please enter ${field ?? 'Input'} in valid format`;
3182exports.isValidCity = isValidCity;
3183/**
3184 * Function to validate zip
3185 * @param {string} customError - Custom error message to display
3186 * @returns
3187 */
3188const isValidZip_US = (customError) => (value, field) => patterns_1.default.ZIP_US.test(value)
3189    ? undefined
3190    : customError ?? `Please enter ${field ?? 'Input'} in valid format`;
3191exports.isValidZip_US = isValidZip_US;
3192/**
3193 * Function to validate zip
3194 * @param {string} customError - Custom error message to display
3195 * @returns
3196 */
3197const isValidZip_MX = (customError) => (value, field) => patterns_1.default.ZIP_MX.test(value)
3198    ? undefined
3199    : customError ??
3200        `Ingrese ${field ?? 'la entrada'} en un formato válido  in valid format`;
3201exports.isValidZip_MX = isValidZip_MX;
3202/**
3203 * Function to validate zip
3204 * @param {string} customError - Custom error message to display
3205 * @returns
3206 */
3207const isValidZip_frCA = (customError) => (value, field) => patterns_1.default.ZIP_CA.test(value)
3208    ? undefined
3209    : customError ??
3210        `veuillez entrer ${field ?? "l'entrée"} dans un format valide`;
3211exports.isValidZip_frCA = isValidZip_frCA;
3212/**
3213 * Function to validate zip
3214 * @param {string} customError - Custom error message to display
3215 * @returns
3216 */
3217const isValidZip_enCA = (customError) => (value, field) => patterns_1.default.ZIP_CA.test(value)
3218    ? undefined
3219    : customError ?? `Please enter ${field ?? 'Input'} in valid format`;
3220exports.isValidZip_enCA = isValidZip_enCA;
3221/**
3222 * Function to validate zip
3223 * @param {string} customError - Custom error message to display
3224 * @returns
3225 */
3226const isValidZip = (customError, options) => {
3227    const languageCode = options?.langCode ?? locale_1.LOCALE.EN_US;
3228    let zipValidatorByLocale;
3229    switch (languageCode) {
3230        case locale_1.LOCALE.FR_CA:
3231            zipValidatorByLocale = exports.isValidZip_frCA;
3232            break;
3233        case locale_1.LOCALE.EN_CA:
3234            zipValidatorByLocale = exports.isValidZip_enCA;
3235            break;
3236        case locale_1.LOCALE.ES_MX:
3237            zipValidatorByLocale = exports.isValidZip_MX;
3238            break;
3239        case locale_1.LOCALE.EN_US:
3240        default:
3241            zipValidatorByLocale = exports.isValidZip_US;
3242            break;
3243    }
3244    return zipValidatorByLocale(customError);
3245};
3246exports.isValidZip = isValidZip;
3247/**
3248 * Function to validate phone
3249 * @param {string} customError - Custom error message to display
3250 * @returns
3251 */
3252const phoneNumber = (customError) => (value, field) => patterns_1.default.PHONE.test(value)
3253    ? undefined
3254    : customError ?? `Please enter ${field ?? 'Input'} in valid format`;
3255exports.phoneNumber = phoneNumber;
3256/**
3257 * Function to validate min length
3258 * @param {string} customError - Custom error message to display
3259 * @returns
3260 */
3261const minLength = (min, customError) => (value, field) => value?.toString()?.length >= min
3262    ? undefined
3263    : customError ?? `${field ?? 'Input'} should be greater than ${min - 1}`;
3264exports.minLength = minLength;
3265/**
3266 * Function to validate max length
3267 * @param {string} customError - Custom error message to display
3268 * @returns
3269 */
3270const maxLength = (max, customError) => (value, field) => value?.toString()?.length <= max
3271    ? undefined
3272    : customError ?? `${field ?? 'Input'} should be less than ${max + 1}`;
3273exports.maxLength = maxLength;
3274/**
3275 * Function to Compose multiple validation functions
3276 * @param  {function} validators - validation functions
3277 * @returns
3278 */
3279const CTFieldValidator = ([...validators], field) => (value) => validators.reduce((error, validator) => {
3280    return error || validator(value, field);
3281}, undefined);
3282// named CTFieldValidator (CT for Commerce Tools) to avoid collisions with third party libraries using a common name
3283exports["default"] = CTFieldValidator;
3284
3285
3286/***/ }),
3287
3288/***/ 241972:
3289/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3290
3291"use strict";
3292
3293Object.defineProperty(exports, "__esModule", ({ value: true }));
3294exports.validateAllTheThings = exports.couponCodeFieldValidator = exports.validateBillingAddressFields = exports.billingAddressFieldValidators = void 0;
3295const validation_1 = __webpack_require__(848316);
3296const FieldValidator_1 = __webpack_require__(784870);
3297exports.billingAddressFieldValidators = {
3298    email: (value) => {
3299        return (0, FieldValidator_1.composeValidators)(value, [FieldValidator_1.validEmail, (0, FieldValidator_1.minLengthCurrier)(2)]);
3300    },
3301    firstName: (value) => {
3302        return (0, FieldValidator_1.composeValidators)(value, [FieldValidator_1.validName, (0, FieldValidator_1.minLengthCurrier)(2)]);
3303    },
3304    lastName: (value) => {
3305        return (0, FieldValidator_1.composeValidators)(value, [FieldValidator_1.validName, (0, FieldValidator_1.minLengthCurrier)(2)]);
3306    },
3307    address1: (value) => {
3308        return (0, FieldValidator_1.composeValidators)(value, [FieldValidator_1.validAddress, (0, FieldValidator_1.minLengthCurrier)(2)]);
3309    },
3310    address2: (value) => {
3311        // optional text field: only validate if it has a length
3312        return !value?.length
3313            ? true
3314            : (0, FieldValidator_1.composeValidators)(value, [FieldValidator_1.validAddress, (0, FieldValidator_1.minLengthCurrier)(1)]);
3315    },
3316    city: (value) => {
3317        return (0, FieldValidator_1.composeValidators)(value, [FieldValidator_1.validCity, (0, FieldValidator_1.minLengthCurrier)(2)]);
3318    },
3319    postalCode: (value, options) => {
3320        return (0, FieldValidator_1.composeValidators)(value, [FieldValidator_1.validZip, (0, FieldValidator_1.minLengthCurrier)(2)], options);
3321    },
3322    phone: (value) => {
3323        return (0, FieldValidator_1.composeValidators)(value, [
3324            FieldValidator_1.validPhone,
3325            (0, FieldValidator_1.minLengthCurrier)(2),
3326        ]);
3327    },
3328    state: (value) => {
3329        return (0, FieldValidator_1.composeValidators)(value, [(0, FieldValidator_1.minLengthCurrier)(1)]); // defaulted select field / just confirm that it has a value
3330    },
3331    country: (value) => {
3332        return (0, FieldValidator_1.composeValidators)(value, [(0, FieldValidator_1.minLengthCurrier)(1)]); // defaulted select field / just confirm that it has a value
3333    },
3334    dialCode: (value) => {
3335        return (0, FieldValidator_1.composeValidators)(value, [(0, FieldValidator_1.minLengthCurrier)(2)]);
3336    },
3337};
3338const validateBillingAddressFields = (userData, options) => {
3339    if (!Object.keys(userData).length) {
3340        return false;
3341    }
3342    return Object.keys(userData).every((key) => {
3343        if ((0, validation_1.keyIsNotIgnored)(key, options?.ignoreKeys) &&
3344            exports.billingAddressFieldValidators[key]) {
3345            return exports.billingAddressFieldValidators[key](userData[key], options);
3346        }
3347        else {
3348            return true;
3349        }
3350    });
3351};
3352exports.validateBillingAddressFields = validateBillingAddressFields;
3353const couponCodeFieldValidator = (value) => {
3354    return !value.length
3355        ? true
3356        : (0, FieldValidator_1.composeValidators)(value, [FieldValidator_1.validCoupon, (0, FieldValidator_1.minLengthCurrier)(2)]);
3357};
3358exports.couponCodeFieldValidator = couponCodeFieldValidator;
3359const validateAllTheThings = (stateObj, validationobj, options) => {
3360    return Object.keys(stateObj).every((key) => {
3361        if (validationobj[key] &&
3362            (0, validation_1.keyIsNotIgnored)(key, options?.ignoreKeys)) {
3363            return validationobj[key](stateObj[key], options);
3364        }
3365        else {
3366            return true;
3367        }
3368    });
3369};
3370exports.validateAllTheThings = validateAllTheThings;
3371
3372
3373/***/ }),
3374
3375/***/ 903921:
3376/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3377
3378"use strict";
3379
3380Object.defineProperty(exports, "__esModule", ({ value: true }));
3381// Set different base URL based on the environment
3382const environment_1 = __webpack_require__(671126);
3383const baseURL = environment_1.appEnv.api.baseUri;
3384const RestEndpoints = {
3385    CUSTOMER: {
3386        ACCOUNT_RESET: `${baseURL}customer/password/reset`,
3387        CONTACT: `${baseURL}customer/contact`,
3388        FORGOT_PASSWORD: `${baseURL}customer/password/forgot`,
3389        GET_DETAILS: `${baseURL}customer`,
3390        LOGIN: `${baseURL}customer/login`,
3391        LOGOUT: `${baseURL}customer/logout`,
3392        SIGNUP: `${baseURL}customer/`,
3393        SUBSCRIBE_TO_EMARSYS_NOTIFICATION_LIST: `${baseURL}customer/product/notification`,
3394        SUBSCRIBE_TO_KLAVIYO_LIST: `${baseURL}customer/klaviyo/list`,
3395        UPDATE_DETAILS: `${baseURL}customer`,
3396    },
3397    CART: {
3398        ADD_SHIPPING_ADDRESS: `${baseURL}cart/address/shipping`,
3399        ADD_BILLING_ADDRESS: `${baseURL}cart/address/billing`,
3400        ADD_ITEM: `${baseURL}cart/item`,
3401        APPLY_DISCOUNT: `${baseURL}cart/discount`,
3402        FULFILLMENT: `${baseURL}cart/fulfillment`,
3403        REMOVE_CART_ITEM: `${baseURL}cart/item`,
3404        REMOVE_DISCOUNT: `${baseURL}cart/discount`,
3405        TRANSITION: `${baseURL}cart/transition`,
3406        UPDATE_ITEM: `${baseURL}cart/item`,
3407        GET_CART_ITEMS: `${baseURL}cart`,
3408        PREVIOUS_ORDER: `${baseURL}cart/reorder`,
3409        SUBSCRIPTION: {
3410            PUT: `${baseURL}cart/subscription`,
3411            DELETE: `${baseURL}cart/subscription`,
3412        },
3413    },
3414    CHECKOUT: {
3415        DELIVERY_WINDOWS: `${baseURL}store/available/windows`,
3416        FULFILLMENT_WINDOW: `${baseURL}cart/available/windows`,
3417        ORDER_SUBMIT: `${baseURL}order/submit`,
3418        ORDER_SUBMIT_ADD_DETAILS: `${baseURL}
3418order/submit?step=details`,
3419        VALIDATE_PHONE_NUMBER: `${baseURL}customer/phoneNumberLookup`,
3420        VERIFY_ADDRESS: `${baseURL}cart/address/shipping?verification=true`,
3421    },
3422    PAYMENT: {
3423        GET_ADYEN_PAYMENT_METHODS: `${baseURL}payment/methods`,
3424        GET_ADYEN_PAYMENT: `${baseURL}payment/auth`,
3425        POST_ADYEN_METHODS_DISABLE: `${baseURL}payment/methods/disable`,
3426    },
3427    PICKUP_STORES: `${baseURL}store`,
3428    ZIPCODE: `${baseURL}store/fulfillment`,
3429    GOOGLE_MAPS: 'https://maps.googleapis.com/maps/api/js',
3430    CONTENTFUL: `${environment_1.appEnv.contentful.url}/spaces/${environment_1.appEnv.contentful.spaceId}/environments/${environment_1.appEnv.contentful.environment}`,
3431    KLAVIYO: {
3432        TRACK: 'track',
3433        IDENTIFY: 'identify',
3434        SCRIPT_URL: 'https://static.klaviyo.com/onsite/js/klaviyo.js',
3435    },
3436    ORDER: {
3437        ORDER_HISTORY: `${baseURL}order/history`,
3438    },
3439    YOTPO: {
3440        PRODUCTS: 'products',
3441        STAR_RATING: 'bottomline',
3442    },
3443    DELIVERY_PICKUP_WINDOWS: `${baseURL}store/fulfillment/home?`,
3444    CORPORATE_GIFT: {
3445        VALIDATE_VOUCHER: `${baseURL}customer/corporate-gifting/voucher/validate`,
3446    },
3447};
3448exports["default"] = RestEndpoints;
3449
3450
3451/***/ }),
3452
3453/***/ 820847:
3454/***/ (function(__unused_webpack_module, exports) {
3455
3456"use strict";
3457
3458Object.defineProperty(exports, "__esModule", ({ value: true }));
3459const logConfig = {
3460    error: true,
3461    warn: true,
3462    info: true,
3463    log: true,
3464};
3465exports["default"] = logConfig;
3466
3467
3468/***/ }),
3469
3470/***/ 937103:
3471/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3472
3473"use strict";
3474
3475Object.defineProperty(exports, "__esModule", ({ value: true }));
3476exports.isEbtSnapPaymentEnabledWithUrlOverride = void 0;
3477const storage_1 = __webpack_require__(692521);
3478const browserStorage_1 = __webpack_require__(673228);
3479const SNAP_PAYMENT_OVERRIDE_KEY = 'wildfork-snap';
3480const SNAP_PAYMENT_OVERRIDE_VALUE = 'nursingthebetter';
3481const SNAP_PAYMENT_OVERRIDE_STORAGE_KEY = `${SNAP_PAYMENT_OVERRIDE_KEY}-${SNAP_PAYMENT_OVERRIDE_VALUE}`;
3482const SNAP_PAYMENT_OVERRIDE_STORAGE_VALUE = '1';
3483const isEbtSnapPaymentEnabledFromEnv = "enabled"?.toLocaleLowerCase() ===
3484    'enabled';
3485/**
3486 * When present, `?{SNAP_PAYMENT_OVERRIDE_KEY}={SNAP_PAYMENT_OVERRIDE_VALUE}` forces EBT SNAP payment UI/API behavior on
3487 * (browser only) and persists for the rest of the tab session via sessionStorage.
3488 * Shares the same key/value contract as the consuming app so the override is honored across packages.
3489 */
3490const isEbtSnapPaymentEnabledWithUrlOverride = () => {
3491    if (globalThis.window === undefined) {
3492        // URL/session override is browser-only; SSR must match env so hydration stays consistent.
3493        return isEbtSnapPaymentEnabledFromEnv;
3494    }
3495    try {
3496        const params = new URLSearchParams(globalThis.window.location.search);
3497        if (params.get(SNAP_PAYMENT_OVERRIDE_KEY) === SNAP_PAYMENT_OVERRIDE_VALUE &&
3498            !isEbtSnapPaymentEnabledFromEnv) {
3499            (0, browserStorage_1.setItem)(SNAP_PAYMENT_OVERRIDE_STORAGE_KEY, SNAP_PAYMENT_OVERRIDE_STORAGE_VALUE, storage_1.STORAGE_TYPES.SESSION);
3500            return true;
3501        }
3502        if ((0, browserStorage_1.getItem)(SNAP_PAYMENT_OVERRIDE_STORAGE_KEY, storage_1.STORAGE_TYPES.SESSION) ===
3503            SNAP_PAYMENT_OVERRIDE_STORAGE_VALUE) {
3504            return true;
3505        }
3506    }
3507    catch (error) {
3508        console.error('Error checking SNAP payment override:', error);
3509        return isEbtSnapPaymentEnabledFromEnv;
3510    }
3511    return isEbtSnapPaymentEnabledFromEnv;
3512};
3513exports.isEbtSnapPaymentEnabledWithUrlOverride = isEbtSnapPaymentEnabledWithUrlOverride;
3514
3515
3516/***/ }),
3517
3518/***/ 676864:
3519/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3520
3521"use strict";
3522/* provided dependency */ var process = __webpack_require__(683454);
3523
3524// TODO: Think about bringing all Next US env variables here.
3525Object.defineProperty(exports, "__esModule", ({ value: true }));
3526exports.nextAppEnv = void 0;
3527const envFlagsOverrideConfig_1 = __webpack_require__(937103);
3528const numbers_1 = __webpack_require__(560555);
3529exports.nextAppEnv = {
3530    feature_toggle: {
3531        US: {
3532            isPromotionEnabled: "enabled" === 'enabled',
3533            showDiscountedPricing: process.env.NEXT_PUBLIC_SHOW_DISCOUNTED_PRICING === 'enabled',
3534            get isEbtSnapPaymentEnabled() {
3535                return (0, envFlagsOverrideConfig_1.isEbtSnapPaymentEnabledWithUrlOverride)();
3536            },
3537            twilioPhoneLookupProxy: "disabled"?.toLocaleLowerCase() ===
3538                'enabled',
3539            isGiftCardPaymentEnabled: "enabled",
3540        },
3541    },
3542    application: {
3543        protocol: 'http',
3544        domain: 'andre',
3545        port: '3000',
3546        locale: "en-US" || 0,
3547        monthlyMembershipRate: "9.99",
3548        environment: "prod" || 0,
3549        publicUrl: "https://wildforkfoods.com" || 0,
3550        annualMembershipRate: "29.00",
3551        annualMembershipSku: "MEMBERSHIP_YEARLY",
3552    },
3553    corporateGifting: {
3554        recipientBudgetPercentage: (0, numbers_1.toNumber)("0.75") || 0.75,
3555        recipientAmountRounding: (0, numbers_1.toNumber)("5") || 5,
3556    },
3557    searchIgnoreProductCategory: "Dry Goods" || 0,
3558    yotpo: {
3559        instanceId: process.env.NEXT_PUBLIC_YOTPO_INSTANCE_ID || '',
3560    },
3561};
3562
3563
3564/***/ }),
3565
3566/***/ 172271:
3567/***/ (function(__unused_webpack_module, exports) {
3568
3569"use strict";
3570var __webpack_unused_export__;
3571
3572__webpack_unused_export__ = ({ value: true });
3573exports.b = void 0;
3574exports.b = {
3575    BADGE: 'badge',
3576    BRAND: 'brand',
3577    BUNDLE_BADGE: 'bundleBadge',
3578    BUNDLE_LINE_ITEMS: 'bundleLineItems',
3579    COOKING_METHOD: 'cookingMethod',
3580    COUNTRY_OF_ORIGIN: 'countryOfOrigin',
3581    CURRENT_PRICE: 'currentPrice',
3582    DISPLAY_UNIT_PRICE_FLAG: 'displayUnitPriceFlag',
3583    FIRST_PUBLISH_DATE: 'firstPublishDate',
3584    GENERIC_ARTICLE_TITLE: 'genericArticleTitle',
3585    GIFT_ICON_OPTION: 'giftIcon',
3586    GLOBAL_CATEGORY: 'globalCategory',
3587    INGREDIENTS: 'ingredients',
3588    LINE_QUANTITY: 'lineQuantity',
3589    MAX_QTY: 'maxQty',
3590    NET_WEIGHT: 'netWeight',
3591    PRIMARY_CATEGORY: 'primaryCategory',
3592    PRODUCT_SET_LINE_QUANTITY: 'productSetLineQty',
3593    PRODUCT_SUBTEXT: 'productSubtext',
3594    PROP_65_WARN: 'prop65warn',
3595    QTY_PER_PACKAGE: 'qtyPerPackage',
3596    RESTRICTED_STATES: 'restrictedStates',
3597    SET_ITEMS: 'setItems',
3598    UNIT_PRICE: 'unitPrice',
3599    WEB_TITLE: 'webTitle',
3600    WEIGHT_UOM: 'weightUOM',
3601    LINE_PRODUCT_REFERENCE: 'lineProductReference',
3602    LINE_PRODUCT_REFERENCE_EXPANDED: 'lineProductReferenceExpanded',
3603    EDUCATIONAL_POINTS: 'educationalPoints',
3604    EDUCATIONAL_POINT_DISPLAY_TEXT: 'educationalPointDisplayText',
3605    EDUCATIONAL_POINT_IMAGE: 'educationalPointImage',
3606    PROMOTION_TEXT: 'promotionText',
3607    KOSHER_ICONS: 'KosherIcons',
3608    AVAILABLE_GROUND_DELIVERY: 'availableForGround',
3609    AVAILABLE_LOCAL_DELIVERY: 'availableForLocal',
3610    CUSTOMER_REVIEW_SUMMARY: 'customerReviewSummary',
3611    VARIABLE_MIN_WEIGHT: 'variableMinWeight',
3612    VARIABLE_MAX_WEIGHT: 'variableMaxWeight',
3613    EBT_ELIGIBLE: 'ebt_eligible', //NOTE: FE team Suggested BE team to change this to camelCase but, BE team pushed back and asked FE team to use this snake case instead of camel case
3614};
3615
3616
3617/***/ }),
3618
3619/***/ 820523:
3620/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3621
3622"use strict";
3623
3624Object.defineProperty(exports, "__esModule", ({ value: true }));
3625exports.BADGE_KEYS = exports.BADGE_LABELS = exports.UNIT_OF_MEASURE = exports.NEXT_I18_NEXT_CONFIG = exports.SHIPPING_TYPES = exports.PAGE_RECOMMENDATION_IDS = exports.NO_REGION_SET = exports.ZIP_CODE_MAX_LENGTH = exports.LANGUAGE_SUBDOMAINS = exports.SEARCH_PARAMS = exports.PATHS = exports.MEMBERSHIP_CONSTANTS = exports.GROUPS_WITH_SCHEDULED_CANCELLATION = exports.MEMBER_GROUPS = exports.ENVIRONMENTS = exports.GRILLMETER = exports.MAX_AGE = exports.memberOptions = exports.contactReasons = exports.TextAlignmentType = exports.REMEMBER_ME = exports.NOT_AVAILABLE = void 0;
3626const environment_1 = __webpack_require__(676864);
3627const locale_1 = __webpack_require__(808439);
3628const { annualMembershipRate, annualMembershipSku } = environment_1.nextAppEnv.application;
3629exports.NOT_AVAILABLE = 'N/A';
3630exports.REMEMBER_ME = '__rememberMe';
3631var TextAlignmentType;
3632(function (TextAlignmentType) {
3633    TextAlignmentType["CENTER"] = "Center";
3634    TextAlignmentType["LEFT"] = "Left";
3635    TextAlignmentType["RIGHT"] = "Right";
3636})(TextAlignmentType || (exports.TextAlignmentType = TextAlignmentType = {}));
3637exports.contactReasons = [
3638    { text: 'I have a question about shipping', value: 'SHIPPING_ISSUE' },
3639    { text: 'Issue with a box (i.e, thawed/damaged)', value: 'BOX_ISSUE' },
3640    { text: 'Issue with a product(s)', value: 'PRODUCT_ISSUE' },
3641    { text: `I'm missing an item(s)`, value: 'ITEM_MISSING' },
3642    {
3643        text: 'Issues logging in or resetting password',
3644        value: 'LOGIN_PASSWORD_RESET',
3645    },
3646    { text: 'Billing', value: 'BILLING_ISSUE' },
3647    { text: 'Promotions', value: 'PROMOTIONS_ISSUE' },
3648    { text: 'Other', value: 'OTHER' },
3649];
3650exports.memberOptions = [
3651    { text: 'Yes', value: 'yes' },
3652    { text: 'No', value: 'no' },
3653];
3654exports.MAX_AGE = 'max-age';
3655exports.GRILLMETER = {
3656    LABELS: {
3657        MEN: 'Hombres',
3658        WOMEN: 'Mujeres',
3659        CHILDREN: 'Niños',
3660    },
3661    RESULTS: {
3662        LABELS: {
3663            MEAT_QTY: 'de Carne',
3664            SIDE_DISHES_QTY: 'de Acompañamientos',
3665        },
3666    },
3667};
3668exports.ENVIRONMENTS = {
3669    LOCAL: 'local',
3670    DEV: 'dev',
3671    QA: 'qa',
3672    STAGE: 'staging',
3673    PROD: 'prod',
3674};
3675exports.MEMBER_GROUPS = {
3676    GROUND_MEMBERS_EXPIRING_2025: 'ground_members_expiring2025',
3677    GRANDFATHERED_MEMBERS: 'Grand_Members',
3678    MEMBER: 'member',
3679};
3680exports.GROUPS_WITH_SCHEDULED_CANCELLATION = [
3681    exports.MEMBER_GROUPS.GRANDFATHERED_MEMBERS,
3682    exports.MEMBER_GROUPS.GROUND_MEMBERS_EXPIRING_2025,
3683];
3684exports.MEMBERSHIP_CONSTANTS = {
3685    MEMBERSHIP: 'MEMBERSHIP',
3686    SKU: {
3687        ANNUAL: annualMembershipSku,
3688        MONTHLY: 'MEMBERSHIP_MONTHLY',
3689    },
3690    TYPES: {
3691        ANNUAL: 'annual',
3692        MONTHLY: 'monthly',
3693    },
3694    PRICES: {
3695        ANNUAL: Number(annualMembershipRate) * 100,
3696        MONTHLY: 290,
3697    },
3698};
3699exports.PATHS = {
3700    ACCOUNT: (tab) => `/account?tab=${tab}`,
3701    BECOME_A_MEMBER: '/become-a-member',
3702    CART: '/cart',
3703    CHECKOUT_AUTH: '/checkout?step=0',
3704    CHECKOUT_CONFIRMATION: '/checkout/confirmation',
3705    CHECKOUT_DELIVERY: '/checkout?step=1',
3706    CHECKOUT_PAYMENT: '/checkout?step=2',
3707    CHECKOUT: '/checkout',
3708    FIND_A_STORE: '/find-a-store',
3709    REFER_A_FRIEND: '/refer-a-friend',
3710    HOME_KIOSK: '/jbs-kiosk',
3711    HOME: '/',
3712    LOGIN: '/account/login',
3713    MEMBERS_TABLE: '/members-table',
3714    MY_ACCOUNT: '/account',
3715    PRE_CHECKOUT: '/pre-checkout',
3716    PRODUCTS: '/products',
3717    RECIPES: '/recipes',
3718    RESET_PASSWORD: '/account/reset-password',
3719    ONE_PAGE_CHECKOUT: '/one-page-checkout',
3720    ONE_PAGE_CHECKOUT_CONFIRMATION: '/one-page-checkout/confirmation',
3721    NEW_CHECKOUT: (step) => `/checkout/${step}`,
3722};
3723exports.SEARCH_PARAMS = {
3724    CART_ID: 'cartId',
3725    CHECKOUT_STEP: 'step',
3726    REDIRECT_SUBDOMAIN: 'redirect_subdomain',
3727    REGION_ID: 'region_id',
3728    VENUE_PLANT_ADDRESS: 'plant_address',
3729    VENUE: 'venue',
3730    EXCLUSSIVE_OFFER: 'exclusive_offer',
3731};
3732exports.LANGUAGE_SUBDOMAINS = {
3733    ES: 'es',
3734};
3735exports.ZIP_CODE_MAX_LENGTH = locale_1.isCALocale ? 7 : 5;
3736exports.NO_REGION_SET = 'NO_REGION_SET';
3737exports.PAGE_RECOMMENDATION_IDS = {
3738    CART: 'Cart',
3739    PDP: 'PDP',
3740};
3741exports.SHIPPING_TYPES = {
3742    AIR: 'air',
3743    LOCAL: 'local',
3744    GROUND: 'ground',
3745    IN_STORE_PICKUP: 'in_store_pickup',
3746};
3747exports.NEXT_I18_NEXT_CONFIG = {
3748    i18n: {
3749        locales: ['en-US'],
3750        defaultLocale: 'en-US',
3751        localeDetection: false,
3752    },
3753};
3754exports.UNIT_OF_MEASURE = {
3755    KG: 'KG',
3756    LB: 'LB',
3757};
3758exports.BADGE_LABELS = {
3759    COMING_SOON: 'COMING SOON',
3760    OUT_OF_STOCK: 'OUT OF STOCK',
3761};
3762exports.BADGE_KEYS = {
3763    NEW: 'New',
3764};
3765
3766
3767/***/ }),
3768
3769/***/ 147718:
3770/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3771
3772"use strict";
3773
3774var __importDefault = (this && this.__importDefault) || function (mod) {
3775    return (mod && mod.__esModule) ? mod : { "default": mod };
3776};
3777Object.defineProperty(exports, "__esModule", ({ value: true }));
3778exports.nextAppEnvCommon = void 0;
3779const toNumber_1 = __importDefault(__webpack_require__(14841));
3780exports.nextAppEnvCommon = {
3781    application: {
3782        locale: "en-US" || 0,
3783        publicUrl: "https://wildforkfoods.com" || 0,
3784    },
3785    roughStock: {
3786        low: (0, toNumber_1.default)("2") || 2,
3787        high: (0, toNumber_1.default)("100") || 100,
3788    },
3789};
3790
3791
3792/***/ }),
3793
3794/***/ 808439:
3795/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3796
3797"use strict";
3798
3799Object.defineProperty(exports, "__esModule", ({ value: true }));
3800exports.COUNTRY_DIAL_CODE = exports.isFrench = exports.CURRENT_COUNTRY_SHORT_CODE = exports.CURRENCY_CODE = exports.LANGUAGE_CODE = exports.CURRENT_LOCALE = exports.isMXLocale = exports.isCALocale = exports.isUSLocale = exports.COUNTRY_CURRENCY_RULES = exports.COUNTRY_LONG = exports.COUNTRY_SHORT = exports.CURRENCY = exports.LOCALE = void 0;
3801const environment_1 = __webpack_require__(676864);
3802exports.LOCALE = {
3803    EN_US: 'en-US',
3804    EN_CA: 'en-CA',
3805    FR_CA: 'fr-CA',
3806    ES_MX: 'es-MX',
3807};
3808exports.CURRENCY = {
3809    USD: 'USD',
3810    CAD: 'CAD',
3811    MXN: 'MXN',
3812};
3813exports.COUNTRY_SHORT = {
3814    US: 'US',
3815    CA: 'CA',
3816    MX: 'MX',
3817};
3818exports.COUNTRY_LONG = {
3819    US: 'United States',
3820    CA: 'Canada',
3821    MX: 'Mexico',
3822};
3823/** Country → currency for price filtering; add entries here for new country-specific rules. */
3824exports.COUNTRY_CURRENCY_RULES = {
3825    [exports.COUNTRY_SHORT.US]: exports.CURRENCY.USD,
3826    [exports.COUNTRY_SHORT.CA]: exports.CURRENCY.CAD,
3827    [exports.COUNTRY_SHORT.MX]: exports.CURRENCY.MXN,
3828};
3829const US_LOCALE = {
3830    languageCode: exports.LOCALE.EN_US,
3831    currency: exports.CURRENCY.USD,
3832    countryShort: exports.COUNTRY_SHORT.US,
3833    countryLong: exports.COUNTRY_LONG.US,
3834};
3835const CA_LOCALE = {
3836    languageCode: exports.LOCALE.EN_CA,
3837    currency: exports.CURRENCY.CAD,
3838    countryShort: exports.COUNTRY_SHORT.CA,
3839    countryLong: exports.COUNTRY_LONG.CA,
3840};
3841const MX_LOCALE = {
3842    languageCode: exports.LOCALE.ES_MX,
3843    currency: exports.CURRENCY.MXN,
3844    countryShort: exports.COUNTRY_SHORT.MX,
3845    countryLong: exports.COUNTRY_LONG.MX,
3846};
3847exports.isUSLocale = environment_1.nextAppEnv.application.locale === exports.LOCALE.EN_US;
3848exports.isCALocale = environment_1.nextAppEnv.application.locale === exports.LOCALE.EN_CA;
3849exports.isMXLocale = environment_1.nextAppEnv.application.locale === exports.LOCALE.ES_MX;
3850exports.CURRENT_LOCALE = exports.isCALocale
3851    ? CA_LOCALE
3852    : exports.isMXLocale
3853        ? MX_LOCALE
3854        : US_LOCALE;
3855exports.LANGUAGE_CODE = exports.CURRENT_LOCALE.languageCode;
3856exports.CURRENCY_CODE = exports.CURRENT_LOCALE.currency;
3857exports.CURRENT_COUNTRY_SHORT_CODE = exports.CURRENT_LOCALE.countryShort;
3858const isFrench = () => false;
3859exports.isFrench = isFrench;
3860exports.COUNTRY_DIAL_CODE = {
3861    [exports.COUNTRY_SHORT.US]: '1',
3862    [exports.COUNTRY_SHORT.CA]: '1',
3863    [exports.COUNTRY_SHORT.MX]: '52',
3864};
3865
3866
3867/***/ }),
3868
3869/***/ 381341:
3870/***/ (function(__unused_webpack_module, exports) {
3871
3872"use strict";
3873
3874Object.defineProperty(exports, "__esModule", ({ value: true }));
3875exports.PLU_PROMOTION_QUANTITY_LOWER_LIMIT = exports.DEFAULT_PRICE_CHANNEL_KEY_VALUE = void 0;
3876exports.DEFAULT_PRICE_CHANNEL_KEY_VALUE = '99';
3877exports.PLU_PROMOTION_QUANTITY_LOWER_LIMIT = 1;
3878
3879
3880/***/ }),
3881
3882/***/ 864973:
3883/***/ (function(__unused_webpack_module, exports) {
3884
3885"use strict";
3886
3887Object.defineProperty(exports, "__esModule", ({ value: true }));
3888exports.CA_STATES = exports.MX_STATES = exports.US_STATES = void 0;
3889exports.US_STATES = [
3890    {
3891        value: 'AL',
3892        text: 'Alabama',
3893    },
3894    {
3895        value: 'AK',
3896        text: 'Alaska',
3897    },
3898    {
3899        value: 'AS',
3900        text: 'American Samoa',
3901    },
3902    {
3903        value: 'AZ',
3904        text: 'Arizona',
3905    },
3906    {
3907        value: 'AR',
3908        text: 'Arkansas',
3909    },
3910    {
3911        value: 'CA',
3912        text: 'California',
3913    },
3914    {
3915        value: 'CO',
3916        text: 'Colorado',
3917    },
3918    {
3919        value: 'CT',
3920        text: 'Connecticut',
3921    },
3922    {
3923        value: 'DE',
3924        text: 'Delaware',
3925    },
3926    {
3927        value: 'FL',
3928        text: 'Florida',
3929    },
3930    {
3931        value: 'GA',
3932        text: 'Georgia',
3933    },
3934    {
3935        value: 'GU',
3936        text: 'Guam',
3937    },
3938    {
3939        value: 'HI',
3940        text: 'Hawaii',
3941    },
3942    {
3943        value: 'ID',
3944        text: 'Idaho',
3945    },
3946    {
3947        value: 'IL',
3948        text: 'Illinois',
3949    },
3950    {
3951        value: 'IN',
3952        text: 'Indiana',
3953    },
3954    {
3955        value: 'IA',
3956        text: 'Iowa',
3957    },
3958    {
3959        value: 'KS',
3960        text: 'Kansas',
3961    },
3962    {
3963        value: 'KY',
3964        text: 'Kentucky',
3965    },
3966    {
3967        value: 'LA',
3968        text: 'Louisiana',
3969    },
3970    {
3971        value: 'ME',
3972        text: 'Maine',
3973    },
3974    {
3975        value: 'MH',
3976        text: 'Marshall Islands',
3977    },
3978    {
3979        value: 'MD',
3980        text: 'Maryland',
3981    },
3982    {
3983        value: 'MA',
3984        text: 'Massachusetts',
3985    },
3986    {
3987        value: 'MI',
3988        text: 'Michigan',
3989    },
3990    {
3991        value: 'FM',
3992        text: 'Micronesia',
3993    },
3994    {
3995        value: 'MN',
3996        text: 'Minnesota',
3997    },
3998    {
3999        value: 'MS',
4000        text: 'Mississippi',
4001    },
4002    {
4003        value: 'MO',
4004        text: 'Missouri',
4005    },
4006    {
4007        value: 'MT',
4008        text: 'Montana',
4009    },
4010    {
4011        value: 'NE',
4012        text: 'Nebraska',
4013    },
4014    {
4015        value: 'NV',
4016        text: 'Nevada',
4017    },
4018    {
4019        value: 'NH',
4020        text: 'New Hampshire',
4021    },
4022    {
4023        value: 'NJ',
4024        text: 'New Jersey',
4025    },
4026    {
4027        value: 'NM',
4028        text: 'New Mexico',
4029    },
4030    {
4031        value: 'NY',
4032        text: 'New York',
4033    },
4034    {
4035        value: 'NC',
4036        text: 'North Carolina',
4037    },
4038    {
4039        value: 'ND',
4040        text: 'North Dakota',
4041    },
4042    {
4043        value: 'MP',
4044        text: 'Northern Mariana Islands',
4045    },
4046    {
4047        value: 'OH',
4048        text: 'Ohio',
4049    },
4050    {
4051        value: 'OK',
4052        text: 'Oklahoma',
4053    },
4054    {
4055        value: 'OR',
4056        text: 'Oregon',
4057    },
4058    {
4059        value: 'PW',
4060        text: 'Palau',
4061    },
4062    {
4063        value: 'PA',
4064        text: 'Pennsylvania',
4065    },
4066    {
4067        value: 'PR',
4068        text: 'Puerto Rico',
4069    },
4070    {
4071        value: 'RI',
4072        text: 'Rhode Island',
4073    },
4074    {
4075        value: 'SC',
4076        text: 'South Carolina',
4077    },
4078    {
4079        value: 'SD',
4080        text: 'South Dakota',
4081    },
4082    {
4083        value: 'TN',
4084        text: 'Tennessee',
4085    },
4086    {
4087        value: 'TX',
4088        text: 'Texas',
4089    },
4090    {
4091        value: 'VI',
4092        text: 'U.S. Virgin Islands',
4093    },
4094    {
4095        value: 'UT',
4096        text: 'Utah',
4097    },
4098    {
4099        value: 'VT',
4100        text: 'Vermont',
4101    },
4102    {
4103        value: 'VA',
4104        text: 'Virginia',
4105    },
4106    {
4107        value: 'WA',
4108        text: 'Washington',
4109    },
4110    {
4111        value: 'DC',
4112        text: 'Washington DC',
4113    },
4114    {
4115        value: 'WV',
4116        text: 'West Virginia',
4117    },
4118    {
4119        value: 'WI',
4120        text: 'Wisconsin',
4121    },
4122    {
4123        value: 'WY',
4124        text: 'Wyoming',
4125    },
4126];
4127exports.MX_STATES = [
4128    {
4129        value: 'AGS',
4130        text: 'Aguascalientes',
4131    },
4132    {
4133        value: 'BC',
4134        text: 'Baja California',
4135    },
4136    {
4137        value: 'BCS',
4138        text: 'Baja California Sur',
4139    },
4140    {
4141        value: 'CAMP',
4142        text: 'Campeche',
4143    },
4144    {
4145        value: 'CHIS',
4146        text: 'Chiapas',
4147    },
4148    {
4149        value: 'CHIH',
4150        text: 'Chihuahua',
4151    },
4152    {
4153        value: 'DF',
4154        text: 'Ciudad de Mexico',
4155    },
4156    {
4157        value: 'COAH',
4158        text: 'Coahuila',
4159    },
4160    {
4161        value: 'COL',
4162        text: 'Colima',
4163    },
4164    {
4165        value: 'DGO',
4166        text: 'Durango',
4167    },
4168    {
4169        value: 'GTO',
4170        text: 'Guanajuato',
4171    },
4172    {
4173        value: 'GRO',
4174        text: 'Guerrero',
4175    },
4176    {
4177        value: 'HGO',
4178        text: 'Hidalgo',
4179    },
4180    {
4181        value: 'JAL',
4182        text: 'Jalisco',
4183    },
4184    {
4185        value: 'MEX',
4186        text: 'Mexico State',
4187    },
4188    {
4189        value: 'MICH',
4190        text: 'Michoacán',
4191    },
4192    {
4193        value: 'MOR',
4194        text: 'Morelos',
4195    },
4196    {
4197        value: 'NAY',
4198        text: 'Nayarit',
4199    },
4200    {
4201        value: 'NL',
4202        text: 'Nuevo León',
4203    },
4204    {
4205        value: 'OAX',
4206        text: 'Oaxaca',
4207    },
4208    {
4209        value: 'PUE',
4210        text: 'Puebla',
4211    },
4212    {
4213        value: 'QRO',
4214        text: 'Querétaro',
4215    },
4216    {
4217        value: 'Q ROO',
4218        text: 'Quintana Roo',
4219    },
4220    {
4221        value: 'SLP',
4222        text: 'San Luis Potosí',
4223    },
4224    {
4225        value: 'SIN',
4226        text: 'Sinaloa',
4227    },
4228    {
4229        value: 'SON',
4230        text: 'Sonora',
4231    },
4232    {
4233        value: 'TAB',
4234        text: 'Tabasco',
4235    },
4236    {
4237        value: 'TAMPS',
4238        text: 'Tamaulipas',
4239    },
4240    {
4241        value: 'TLAX',
4242        text: 'Tlaxcala',
4243    },
4244    {
4245        value: 'VER',
4246        text: 'Veracruz',
4247    },
4248    {
4249        value: 'YUC',
4250        text: 'Yucatán',
4251    },
4252    {
4253        value: 'ZAC',
4254        text: 'Zacatecas',
4255    },
4256];
4257exports.CA_STATES = [
4258    {
4259        value: 'AB',
4260        text: 'Alberta',
4261    },
4262    {
4263        value: 'BC',
4264        text: 'British Columbia',
4265    },
4266    {
4267        value: 'MB',
4268        text: 'Manitoba',
4269    },
4270    {
4271        value: 'NB',
4272        text: 'New Brunswick',
4273    },
4274    {
4275        value: 'NL',
4276        text: 'Newfoundland and Labrador',
4277    },
4278    {
4279        value: 'NT',
4280        text: 'Northwest Territories',
4281    },
4282    {
4283        value: 'NS',
4284        text: 'Nova Scotia',
4285    },
4286    {
4287        value: 'NU',
4288        text: 'Nunavut',
4289    },
4290    {
4291        value: 'ON',
4292        text: 'Ontario',
4293    },
4294    {
4295        value: 'PE',
4296        text: 'Prince Edward Island',
4297    },
4298    {
4299        value: 'QC',
4300        text: 'Québec',
4301    },
4302    {
4303        value: 'SK',
4304        text: 'Saskatchewan',
4305    },
4306    {
4307        value: 'YT',
4308        text: 'Yukon',
4309    },
4310];
4311
4312
4313/***/ }),
4314
4315/***/ 692521:
4316/***/ (function(__unused_webpack_module, exports) {
4317
4318"use strict";
4319
4320Object.defineProperty(exports, "__esModule", ({ value: true }));
4321exports.COOKIE_KEYS = exports.STORAGE_KEYS = exports.STORAGE_TYPES = void 0;
4322exports.STORAGE_TYPES = {
4323    SESSION: 'session',
4324    LOCAL: 'local',
4325};
4326exports.STORAGE_KEYS = {
4327    STORE_ID: 'wf-store-id',
4328    DELIVERY_WINDOW: 'deliveryWindow',
4329    CUSTOMER_ZIP: 'wf-customer-zipcode',
4330    VENUE: 'wf-venue',
4331    SUBSCRIBED_EMAIL: 'wf-subscribed-email',
4332    PAGE_VIEW_COUNTER: 'wf-page-view-counter',
4333    EXCLUSIVE_OFFER_DISMISS_DATE: 'wf-exclusive-offer-dismiss-date',
4334    CART_FULFILLMENT_STORE_ID: 'wf-cart-fulfillment-store-id',
4335    CUSTOMER_FASTLANE_CONFIG: 'wf-customer-fastlane-config',
4336    CUSTOMER_STORE_DETAILS: 'wf-customer-store-details',
4337    EBT_SNAP_SESSION_OVERRIDE: 'wf-ebt-snap-override',
4338    ADYEN_REDIRECT_CONTEXT: 'wf-adyen-redirect-context',
4339};
4340exports.COOKIE_KEYS = {
4341    CART_ID: 'cart_id',
4342    DY_MEMBER_REDIRECT: 'dyMemberRedirect',
4343    DYID_SERVER: '_dyid_server',
4344    DYID: '_dyid',
4345    REGION_ID: 'region_key',
4346    WEBSITE_COOKIE: 'website_cookie',
4347    GIFT_CARD_PAYMENT_AVAILABLE: 'gift_card_payment_enabled',
4348    GTM_AD_USER_DATA: 'wf_gtm_ad_user_data',
4349    GTM_AD_PERSONALIZATION: 'wf_gtm_ad_personalization',
4350    APP: 'app',
4351};
4352
4353
4354/***/ }),
4355
4356/***/ 771910:
4357/***/ (function(__unused_webpack_module, exports) {
4358
4359"use strict";
4360
4361Object.defineProperty(exports, "__esModule", ({ value: true }));
4362exports.shopifyLoginUrl = exports.ourStoryUrl = exports.wfCustomFoodGiftsYouTubeVideoUrl = exports.quickAndEasyShopUrl = exports.newProductShopUrl = exports.memorialDayShopUrl = exports.membershipTiersUrl = exports.wildForkGiftingUrl = exports.wildForWagyuUrl = exports.classicSurfAndTurfUrl = exports.amazingAppetizersUrl = exports.chefInspiredFlavorUrl = exports.fiveStarFavoritesUrl = exports.exoticSpecialtyUrl = exports.deliciousDessertsUrl = exports.premiumIndulgencesUrl = exports.seafoodPicksUrl = exports.grillingPicksUrl = exports.shopifyQaDomain = exports.commonThreadsHomeWebDomain = exports.commonThreadsWildForkUrl = exports.imagePlaceholder10PxPath = exports.wfBrandmark400Px = exports.wfInstagramUrl = exports.wfFacebookUrl = exports.COMMERCE_TOOLS_DOMAINS = void 0;
4363exports.COMMERCE_TOOLS_DOMAINS = {
4364    LOCAL: 'http://localhost:3000/',
4365    DEV: {
4366        US: 'https://www-dev.wildfork.com/',
4367        CA: 'https://wfretail-dev.wildfork.ca/',
4368    },
4369    QA: {
4370        US: 'https://www-qa.wildfork.com/',
4371        CA: 'https://wfretail-qa.wildfork.ca/',
4372    },
4373    STAGING: {
4374        US: 'https://www-staging.wildfork.com/',
4375    },
4376    PROD: {
4377        US: 'https://wildfork.com/',
4378        CA: 'https://wildfork.ca/',
4379        ORIGINAL: 'https://wildfork.com/',
4380    },
4381};
4382exports.wfFacebookUrl = 'https://www.facebook.com/WildForkFoods/';
4383exports.wfInstagramUrl = 'https://www.instagram.com/wildforkfoods/';
4384exports.wfBrandmark400Px = 'https://images.ctfassets.net/odk340ad2lwh/36o77xKzy4sKl5U6wQhM70/dfe199dcaf2b46377d2c00fa67d0c2e3/WF_Brandmark_FullColor_1665_RGB.jpg';
4385exports.imagePlaceholder10PxPath = '@Assets/images/imagePlaceholder10px.png';
4386exports.commonThreadsWildForkUrl = 'https://www.commonthreads.org/wildfork/';
4387exports.commonThreadsHomeWebDomain = 'https://www.commonthreads.org/';
4388exports.shopifyQaDomain = 'https://wildforkfoodsdev.myshopify.com/';
4389exports.grillingPicksUrl = '/collections/grilling-picks/';
4390exports.seafoodPicksUrl = '/collections/seafood-picks/';
4391exports.premiumIndulgencesUrl = '/collections/premium-products/';
4392exports.deliciousDessertsUrl = '/collections/delicious-desserts/';
4393exports.exoticSpecialtyUrl = '/collections/exotic-specialty/';
4394exports.fiveStarFavoritesUrl = '/collections/five-star-rated-products/';
4395exports.chefInspiredFlavorUrl = '/collections/chef-inspired-gifts/';
4396exports.amazingAppetizersUrl = '/collections/amazing-appetizers/';
4397exports.classicSurfAndTurfUrl = '/products/classic-surf-turf?algoliaHit=true&variant=39335037730882';
4398exports.wildForWagyuUrl = '/products/wild-for-wagyu?algoliaHit=true&variant=32549867880514';
4399exports.wildForkGiftingUrl = '/collections/wild-fork-gifting/';
4400exports.membershipTiersUrl = '/pages/membership-tiers/';
4401exports.memorialDayShopUrl = '/collections/memorial-day/';
4402exports.newProductShopUrl = '/collections/new-products/';
4403exports.quickAndEasyShopUrl = '/collections/quick-easy/';
4404exports.wfCustomFoodGiftsYouTubeVideoUrl = 'https://www.youtube.com/embed/8sKRBmy5HWk?start=0&end=0&autoplay=1&loop=1&mute=1&playlist=8sKRBmy5HWk&version=3&rel=0';
4405exports.ourStoryUrl = '/our-story/';
4406exports.shopifyLoginUrl = 'https://wildforkfoodsdev.myshopify.com/account/login?return_url=%2F';
4407
4408
4409/***/ }),
4410
4411/***/ 462737:
4412/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4413
4414"use strict";
4415
4416Object.defineProperty(exports, "__esModule", ({ value: true }));
4417exports.CartContext = exports.useCartContext = void 0;
4418const contextFactory_1 = __webpack_require__(487023);
4419const [useCartContext, CartContext] = (0, contextFactory_1.contextFactory)();
4420exports.useCartContext = useCartContext;
4421exports.CartContext = CartContext;
4422
4423
4424/***/ }),
4425
4426/***/ 389570:
4427/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4428
4429"use strict";
4430
4431Object.defineProperty(exports, "__esModule", ({ value: true }));
4432exports.CustomerContext = exports.useCustomerContext = void 0;
4433const contextFactory_1 = __webpack_require__(487023);
4434const [useCustomerContext, CustomerContext] = (0, contextFactory_1.contextFactory)();
4435exports.useCustomerContext = useCustomerContext;
4436exports.CustomerContext = CustomerContext;
4437
4438
4439/***/ }),
4440
4441/***/ 584779:
4442/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4443
4444"use strict";
4445
4446Object.defineProperty(exports, "__esModule", ({ value: true }));
4447exports.EnvironmentContext = exports.useEnvironmentContext = void 0;
4448const contextFactory_1 = __webpack_require__(487023);
4449const [useEnvironmentContext, EnvironmentContext] = (0, contextFactory_1.contextFactory)();
4450exports.useEnvironmentContext = useEnvironmentContext;
4451exports.EnvironmentContext = EnvironmentContext;
4452
4453
4454/***/ }),
4455
4456/***/ 714013:
4457/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4458
4459"use strict";
4460
4461Object.defineProperty(exports, "__esModule", ({ value: true }));
4462exports.LocationContext = exports.useLocationContext = void 0;
4463const contextFactory_1 = __webpack_require__(487023);
4464const [useLocationContext, LocationContext] = (0, contextFactory_1.contextFactory)();
4465exports.useLocationContext = useLocationContext;
4466exports.LocationContext = LocationContext;
4467
4468
4469/***/ }),
4470
4471/***/ 67945:
4472/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4473
4474"use strict";
4475
4476Object.defineProperty(exports, "__esModule", ({ value: true }));
4477exports.OpcContext = exports.useOpcContext = void 0;
4478const contextFactory_1 = __webpack_require__(487023);
4479const [useOpcContext, OpcContext] = (0, contextFactory_1.contextFactory)();
4480exports.useOpcContext = useOpcContext;
4481exports.OpcContext = OpcContext;
4482
4483
4484/***/ }),
4485
4486/***/ 765649:
4487/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4488
4489"use strict";
4490
4491Object.defineProperty(exports, "__esModule", ({ value: true }));
4492exports.ServiceContext = exports.useServiceContext = void 0;
4493const contextFactory_1 = __webpack_require__(487023);
4494const [useServiceContext, ServiceContext] = (0, contextFactory_1.contextFactory)();
4495exports.useServiceContext = useServiceContext;
4496exports.ServiceContext = ServiceContext;
4497
4498
4499/***/ }),
4500
4501/***/ 361290:
4502/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4503
4504"use strict";
4505
4506Object.defineProperty(exports, "__esModule", ({ value: true }));
4507exports.TrackingContext = exports.useTrackingContext = void 0;
4508const contextFactory_1 = __webpack_require__(487023);
4509const [useTrackingContext, TrackingContext] = (0, contextFactory_1.contextFactory)();
4510exports.useTrackingContext = useTrackingContext;
4511exports.TrackingContext = TrackingContext;
4512
4513
4514/***/ }),
4515
4516/***/ 223982:
4517/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4518
4519"use strict";
4520
4521Object.defineProperty(exports, "__esModule", ({ value: true }));
4522exports.UIActionsContext = exports.useUIActionsContext = void 0;
4523const contextFactory_1 = __webpack_require__(487023);
4524const [useUIActionsContext, UIActionsContext] = (0, contextFactory_1.contextFactory)();
4525exports.useUIActionsContext = useUIActionsContext;
4526exports.UIActionsContext = UIActionsContext;
4527
4528
4529/***/ }),
4530
4531/***/ 658952:
4532/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4533
4534"use strict";
4535
4536Object.defineProperty(exports, "__esModule", ({ value: true }));
4537exports.UIStateContext = exports.useUIStateContext = void 0;
4538const contextFactory_1 = __webpack_require__(487023);
4539const [useUIStateContext, UIStateContext] = (0, contextFactory_1.contextFactory)();
4540exports.useUIStateContext = useUIStateContext;
4541exports.UIStateContext = UIStateContext;
4542
4543
4544/***/ }),
4545
4546/***/ 487023:
4547/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4548
4549"use strict";
4550
4551Object.defineProperty(exports, "__esModule", ({ value: true }));
4552exports.contextFactory = void 0;
4553const react_1 = __webpack_require__(667294);
4554const contextFactory = () => {
4555    const context = (0, react_1.createContext)(undefined);
4556    const useCtx = () => {
4557        const ctx = (0, react_1.useContext)(context);
4558        if (ctx === undefined) {
4559            throw new Error('useContext must be used inside of a Provider with a value.');
4560        }
4561        return ctx;
4562    };
4563    return [useCtx, context];
4564};
4565exports.contextFactory = contextFactory;
4566
4567
4568/***/ }),
4569
4570/***/ 93050:
4571/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4572
4573"use strict";
4574
4575var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4576    if (k2 === undefined) k2 = k;
4577    var desc = Object.getOwnPropertyDescriptor(m, k);
4578    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
4579      desc = { enumerable: true, get: function() { return m[k]; } };
4580    }
4581    Object.defineProperty(o, k2, desc);
4582}) : (function(o, m, k, k2) {
4583    if (k2 === undefined) k2 = k;
4584    o[k2] = m[k];
4585}));
4586var __exportStar = (this && this.__exportStar) || function(m, exports
4586) {
4587    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
4588};
4589Object.defineProperty(exports, "__esModule", ({ value: true }));
4590__exportStar(__webpack_require__(389570), exports);
4591__exportStar(__webpack_require__(584779), exports);
4592__exportStar(__webpack_require__(714013), exports);
4593__exportStar(__webpack_require__(765649), exports);
4594__exportStar(__webpack_require__(361290), exports);
4595__exportStar(__webpack_require__(223982), exports);
4596__exportStar(__webpack_require__(658952), exports);
4597__exportStar(__webpack_require__(462737), exports);
4598__exportStar(__webpack_require__(67945), exports);
4599
4600
4601/***/ }),
4602
4603/***/ 855174:
4604/***/ (function(__unused_webpack_module, exports) {
4605
4606"use strict";
4607
4608/**
4609 * @file Shared constants for corporate gifting handlers
4610 * @description Centralizes string literals for discriminators and error codes
4611 * to ensure consistency between core-ui and next-us.
4612 */
4613Object.defineProperty(exports, "__esModule", ({ value: true }));
4614exports.SUBMIT_CAMPAIGN_ERROR_CODES_ARRAY = exports.SUBMIT_CAMPAIGN_ERROR_CODES = exports.HANDLER_DISCRIMINATORS = void 0;
4615exports.HANDLER_DISCRIMINATORS = {
4616    IS_VALID: 'isValid',
4617    SUCCESS: 'success',
4618};
4619exports.SUBMIT_CAMPAIGN_ERROR_CODES = {
4620    PAYMENT_FAILED: 'PAYMENT_FAILED',
4621    VALIDATION_ERROR: 'VALIDATION_ERROR',
4622    NETWORK_ERROR: 'NETWORK_ERROR',
4623};
4624// Zod's z.enum requires a non-empty array of strings with at least one element.
4625// This provides a type-safe way to use the error codes object with z.enum.
4626exports.SUBMIT_CAMPAIGN_ERROR_CODES_ARRAY = Object.values(exports.SUBMIT_CAMPAIGN_ERROR_CODES);
4627
4628
4629/***/ }),
4630
4631/***/ 723484:
4632/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4633
4634"use strict";
4635
4636Object.defineProperty(exports, "__esModule", ({ value: true }));
4637exports.useRouteChange = void 0;
4638const react_1 = __webpack_require__(667294);
4639const router_1 = __webpack_require__(811163);
4640const useRouteChange = ({ callback, routeEvent: eventType = 'routeChangeComplete', }) => {
4641    const router = (0, router_1.useRouter)();
4642    (0, react_1.useEffect)(() => {
4643        const handleRouteChange = (url) => {
4644            callback(url);
4645        };
4646        router.events.on(eventType, handleRouteChange);
4647        return () => {
4648            router.events.off(eventType, handleRouteChange);
4649        };
4650    }, [router, callback, eventType]);
4651};
4652exports.useRouteChange = useRouteChange;
4653
4654
4655/***/ }),
4656
4657/***/ 527899:
4658/***/ (function(__unused_webpack_module, exports) {
4659
4660"use strict";
4661
4662Object.defineProperty(exports, "__esModule", ({ value: true }));
4663exports.ERROR_CODES = void 0;
4664exports.ERROR_CODES = {
4665    WF_COMMON_001: 'WF_COMMON_001', // Something Bad Happened; Used for generic service that has become unavailable.
4666    WF_COMMON_002: 'WF_COMMON_002', // Generic Bad Request; Fall through handler for bad requests.
4667    WF_CART_001: 'WF_CART_001', // Invalid Cart ID
4668    WF_CART_002: 'WF_CART_002', // Invalid SKU
4669    WF_CART_003: 'WF_CART_003', // Insufficient Inventory
4670    WF_CART_006: 'WF_CART_006', // Invalid zipcode.
4671    WF_CART_008: 'WF_CART_008', // Error in tax calculation
4672    WF_CART_009: 'WF_CART_009', // Invalid Discount Code
4673    WF_CART_010: 'WF_CART_010', // Error in Processing the Request
4674    WF_CART_029: 'WF_CART_029', // This discount code is no longer valid
4675    WF_CART_030: 'WF_CART_030', // Minimum spend has not been met
4676    WF_CART_031: 'WF_CART_031', // This discount code is not valid on this order
4677    WF_CART_032: 'WF_CART_032', // Discount code is not applicable to this product.
4678    WF_CART_033: 'WF_CART_033', // Discount code is not applicable to these products.
4679    WF_EMARSYS_001: 'WF_EMARSYS_001', // Emarsys Service Error
4680    WF_EMARSYS_005: 'WF_EMARSYS_005', // Contact with the email id already exists
4681    WF_FRESHDESK_001: 'WF_FRESHDESK_001', // Request limit reached, retry after sometime
4682    WF_CUSTOMER_001: 'WF_CUSTOMER_001', // There is already an existing customer with the provided email
4683    WF_CUSTOMER_002: 'WF_CUSTOMER_002', // Email  has wrong format
4684    WF_CUSTOMER_003: 'WF_CUSTOMER_003', // Password does not meet the minimum requirement
4685    WF_CUSTOMER_004: 'WF_CUSTOMER_004', // Customer account with the given credentials not found; This code is used during customer login, If the given credentials are invalid email or wrong password.
4686    WF_CUSTOMER_005: 'WF_CUSTOMER_005', // First name is required; If any mandatory field is missed.
4687    WF_CUSTOMER_006: 'WF_CUSTOMER_006', // No Customer Was Found with the specified Password Token ID
4688    WF_CUSTOMER_007: 'WF_CUSTOMER_007', // Commercial Tool Internal Server Error
4689    WF_CUSTOMER_008: 'WF_CUSTOMER_008', // No Customer was found with that email
4690    WF_CUSTOMER_027: 'WF_CUSTOMER_027', // Error Getting Region from Postal Code
4691    WF_CUSTOMER_028: 'WF_CUSTOMER_028', // Region Not Found
4692    WF_PAYMENT_001: 'WF_PAYMENT_001', // Payment Service call resulted in error; this error is more or less happening when payment service can not reach out Adyen
4693    WF_PAYMENT_002: 'WF_PAYMENT_002', // Payment Service API error occurred;
4693 Payment Service API Call to Adyen failed.
4694    WF_PAYMENT_003: 'WF_PAYMENT_003', // Original pspReference required for this operation; Payment Service API Call to Adyen failed while calling Adyen to do CancelAuth
4695    WF_PAYMENT_004: 'WF_PAYMENT_004', // Field 'countryCode' is not valid; Payment Service API Call to Adyen failed while fetching payment Methods
4696    WF_PAYMENT_005: 'WF_PAYMENT_005', // Invalid OrderNumber; Invalid order number to pull the cart
4697    WF_ORDER_001: 'WF_ORDER_001', // Payment Auth failed; It will be thrown when Payment Auth call to the Payment Service is failed (or refused)
4698    WF_STORE_001: 'WF_STORE_001', // dynamic message from backend error; when API try to fetch stores location and fails
4699    WF_STORE_002: 'WF_STORE_002', // dynamic message from backend error; UNAUTHORIZED to call wildfox
4700    WF_STORE_003: 'WF_STORE_003', // dynamic message from backend error; cart specified delivery window or shipping window service call failed?
4701    WF_STORE_004: 'WF_STORE_004', // dynamic message from backend error; api call to create custom store hours failed
4702    WF_STORE_005: 'WF_STORE_005', // dynamic message from backend error; Server runtime error
4703    WF_ORDER_009: 'WF_ORDER_009', // Expired Cart delivery window after 1 hour
4704    WF_ORDER_025: 'WF_ORDER_025', // Payment Auth Failed due to invalid CVC code
4705    WF_ORDER_026: 'WF_ORDER_026', // Payment Auth Failed due to invalid Billing Address
4706    WF_ORDER_027: 'WF_ORDER_027', // Payment Auth Failed due to invalid card expiration date
4707    WF_ORDER_028: 'WF_ORDER_028', // Payment Auth Failed due to invalid card
4708    WF_CUSTOMER_031: 'WF_CUSTOMER_031', // POS Account not yet corrected from SAP
4709    WF_CUSTOMER_032: 'WF_CUSTOMER_032', // Account not found with POS billing number.
4710    WF_PW_RESET_EMAIL_001: 'WF_PW_RESET_EMAIL_001', // Reset Password required for CA users
4711    WF_EBT_PAYMENT_USER_ERROR: 'WF_EBT_PAYMENT_USER_ERROR', // EBT payment user error; dynamic message from backend (e.g. invalid card number)
4712};
4713
4714
4715/***/ }),
4716
4717/***/ 597707:
4718/***/ (function(__unused_webpack_module, exports) {
4719
4720"use strict";
4721
4722Object.defineProperty(exports, "__esModule", ({ value: true }));
4723exports.SnackBarVariant = exports.SnackBarType = void 0;
4724var SnackBarType;
4725(function (SnackBarType) {
4726    SnackBarType["ERROR"] = "error";
4727    SnackBarType["INFO"] = "info";
4728    SnackBarType["SUCCESS"] = "success";
4729    SnackBarType["WARNING"] = "warning";
4730})(SnackBarType || (exports.SnackBarType = SnackBarType = {}));
4731var SnackBarVariant;
4732(function (SnackBarVariant) {
4733    SnackBarVariant["FILLED"] = "filled";
4734    SnackBarVariant["OUTLINED"] = "outlined";
4735})(SnackBarVariant || (exports.SnackBarVariant = SnackBarVariant = {}));
4736
4737
4738/***/ }),
4739
4740/***/ 969184:
4741/***/ (function(__unused_webpack_module, exports) {
4742
4743"use strict";
4744var __webpack_unused_export__;
4745
4746__webpack_unused_export__ = ({ value: true });
4747exports.AP = __webpack_unused_export__ = void 0;
4748__webpack_unused_export__ = {
4749    Local: 'Local Delivery',
4750    FreeDelivery: 'Free Delivery on First Order',
4751    PickUp: 'In Store Pickup',
4752    OneDayGround: '1 Day Ground Delivery',
4753    TwoDayGround: '2 Day Ground Delivery',
4754    AirDelivery: 'Air Delivery',
4755};
4756exports.AP = {
4757    DELIVERY: 'delivery',
4758    PICKUP: 'pickup',
4759};
4760
4761
4762/***/ }),
4763
4764/***/ 378464:
4765/***/ (function(__unused_webpack_module, exports) {
4766
4767"use strict";
4768var __webpack_unused_export__;
4769
4770__webpack_unused_export__ = ({ value: true });
4771exports.Gl = exports.pN = void 0;
4772var CheckoutStep;
4773(function (CheckoutStep) {
4774    CheckoutStep["DELIVERY_METHOD"] = "delivery-method";
4775    CheckoutStep["SCHEDULE"] = "schedule";
4776    CheckoutStep["PAYMENT"] = "payment";
4777    CheckoutStep["ORDER_CONFIRMATION"] = "order-confirmation";
4778})(CheckoutStep || (exports.pN = CheckoutStep = {}));
4779var DeliveryMethod;
4780(function (DeliveryMethod) {
4781    DeliveryMethod["DELIVERY"] = "delivery";
4782    DeliveryMethod["PICKUP"] = "pickup";
4783})(DeliveryMethod || (exports.Gl = DeliveryMethod = {}));
4784
4785
4786/***/ }),
4787
4788/***/ 935848:
4789/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4790
4791"use strict";
4792
4793Object.defineProperty(exports, "__esModule", ({ value: true }));
4794exports.RegionIDNameMap = exports.RegionIDNameMapMX = exports.RegionIDNameMapCA = exports.RegionIDNameMapUS = exports.REGION_NAME_MX = exports.REGION_NAME_CA = exports.REGION_NAME_US = exports.RegionIdValues = exports.RegionIdValuesMX = exports.RegionIdValuesCA = exports.RegionIdValuesUS = exports.ZIPCODE_POPUP_LAYOUT = exports.STORE_ID_STATUS = exports.TOGGLE_ZIPCODE = void 0;
4795const locale_1 = __webpack_require__(808439);
4796exports.TOGGLE_ZIPCODE = 'TOGGLE_ZIPCODE';
4797var STORE_ID_STATUS;
4798(function (STORE_ID_STATUS) {
4799    STORE_ID_STATUS["VALID"] = "VALID";
4800    STORE_ID_STATUS["INVALID"] = "INVALID";
4801    STORE_ID_STATUS["UNKNOWN"] = "UNKNOWN";
4802})(STORE_ID_STATUS || (exports.STORE_ID_STATUS = STORE_ID_STATUS = {}));
4803var ZIPCODE_POPUP_LAYOUT;
4804(function (ZIPCODE_POPUP_LAYOUT) {
4805    ZIPCODE_POPUP_LAYOUT["INITIAL"] = "initial";
4806    ZIPCODE_POPUP_LAYOUT["WE_DELIVER"] = "weDeliver";
4807    ZIPCODE_POPUP_LAYOUT["WE_DONT_DELIVER"] = "weDontDeliver";
4808    ZIPCODE_POPUP_LAYOUT["WE_REMEMBER_YOU"] = "weRememberYou";
4809})(ZIPCODE_POPUP_LAYOUT || (exports.ZIPCODE_POPUP_LAYOUT = ZIPCODE_POPUP_LAYOUT = {}));
4810exports.RegionIdValuesUS = [
4811    'default',
4812    '1',
4813    '2',
4814    '3',
4815    '4',
4816    '5',
4817    '6',
4818    '11',
4819    '13',
4820    '14',
4821    '15',
4822    '16',
4823    '',
4824]; // the empty string is a FE-specific value to show the intent of no value being assigned for reasons such as (but not exclusive to) an error fetching the regionId
4825// Note By Shubham T: After confirmation, for now only default value is to be used for price of every product in canada.
4826exports.RegionIdValuesCA = ['default', ''];
4827exports.RegionIdValuesMX = ['default', ''];
4828exports.RegionIdValues = locale_1.isCALocale
4829    ? exports.RegionIdValuesCA
4830    : locale_1.isMXLocale
4831        ? exports.RegionIdValuesMX
4832        : exports.RegionIdValuesUS;
4833var REGION_NAME_US;
4834(function (REGION_NAME_US) {
4835    REGION_NAME_US["SOUTH_EAST"] = "Southeast";
4836    REGION_NAME_US["NORTH_EAST"] = "Northeast";
4837    REGION_NAME_US["SOUTH_WEST"] = "Southwest";
4838    REGION_NAME_US["WEST"] = "West";
4839    REGION_NAME_US["MID_WEST"] = "Midwest";
4840    REGION_NAME_US["CANADA"] = "Canada";
4841    REGION_NAME_US["DARK_STORE_LOCAL_NO_LIC"] = "Dark Store Local No Lic";
4842    REGION_NAME_US["PHILADELPHIA"] = "Philadelphia";
4843    REGION_NAME_US["NE_O2O_TEST"] = "NE O2O Test";
4844    REGION_NAME_US["NYC_ROADIE_EXCLUSION"] = "NYC Roadie Exclusion";
4845    REGION_NAME_US["ARIZONA"] = "Arizona";
4846})(REGION_NAME_US || (exports.REGION_NAME_US = REGION_NAME_US = {}));
4847var REGION_NAME_CA;
4848(function (REGION_NAME_CA) {
4849})(REGION_NAME_CA || (exports.REGION_NAME_CA = REGION_NAME_CA = {}));
4850var REGION_NAME_MX;
4851(function (REGION_NAME_MX) {
4852})(REGION_NAME_MX || (exports.REGION_NAME_MX = REGION_NAME_MX = {}));
4853exports.RegionIDNameMapUS = new Map([
4854    ['1', REGION_NAME_US.SOUTH_EAST],
4855    ['2', REGION_NAME_US.NORTH_EAST],
4856    ['3', REGION_NAME_US.SOUTH_WEST],
4857    ['4', REGION_NAME_US.WEST],
4858    ['5', REGION_NAME_US.MID_WEST],
4859    ['6', REGION_NAME_US.CANADA],
4860    ['11', REGION_NAME_US.DARK_STORE_LOCAL_NO_LIC],
4861    ['14', REGION_NAME_US.NE_O2O_TEST],
4862    ['15', REGION_NAME_US.NYC_ROADIE_EXCLUSION],
4863    ['16', REGION_NAME_US.ARIZONA],
4864]);
4865exports.RegionIDNameMapCA = new Map([]);
4866exports.RegionIDNameMapMX = new Map([]);
4867exports.RegionIDNameMap = locale_1.isCALocale
4868    ? exports.RegionIDNameMapCA
4869    : locale_1.isMXLocale
4870        ? exports.RegionIDNameMapMX
4871        : exports.RegionIDNameMapUS;
4872
4873
4874/***/ }),
4875
4876/***/ 101914:
4877/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4878
4879"use strict";
4880/* provided dependency */ var process = __webpack_require__(683454);
4881
4882var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4883    if (k2 === undefined) k2 = k;
4884    var desc = Object.getOwnPropertyDescriptor(m, k);
4885    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
4886      desc = { enumerable: true, get: function() { return m[k]; } };
4887    }
4888    Object.defineProperty(o, k2, desc);
4889}) : (function(o, m, k, k2) {
4890    if (k2 === undefined) k2 = k;
4891    o[k2] = m[k];
4892}));
4893var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
4894    Object.defineProperty(o, "default", { enumerable: true, value: v });
4895}) : function(o, v) {
4896    o["default"] = v;
4897});
4898var __importStar = (this && this.__importStar) || (function () {
4899    var ownKeys = function(o) {
4900        ownKeys = Object.getOwnPropertyNames || function (o) {
4901            var ar = [];
4902            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
4903            return ar;
4904        };
4905        return ownKeys(o);
4906    };
4907    return function (mod) {
4908        if (mod && mod.__esModule) return mod;
4909        var result = {};
4910        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
4911        __setModuleDefault(result, mod);
4912        return result;
4913    };
4914})();
4915Object.defineProperty(exports, "__esModule", ({ value: true }));
4916exports.consoleLevels = exports.standardLog = exports.formatMessage = exports.LOGGER_LEVEL_COLORS = void 0;
4917const defaultConfig = __importStar(__webpack_require__(820847));
4918const url_1 = __webpack_require__(781289);
4919const validation_1 = __webpack_require__(848316);
4920exports.LOGGER_LEVEL_COLORS = {
4921    INFO: 'color:deepskyblue',
4922    WARN: 'color:orange',
4923    ERROR: 'color:lightcoral',
4924};
4925const defaultOptions = {
4926    printAsJson: true,
4927    jsonReplacer: null,
4928    jsonSpacing: 2,
4929};
4930const isDev =  false ||
4931    (0, url_1.amInLocalQaOrDevDomain)();
4932const logConfig = (process.env.LOG_CONFIG ?? defaultConfig);
4933const formatMessage = (val, trace, options) => {
4934    return `${JSON.stringify(val, options?.jsonReplacer, options?.jsonSpacing)}${trace
4935        ? '  =>  ' +
4936            JSON.stringify(trace, options?.jsonReplacer, options?.jsonSpacing)
4937        : ''}`;
4938};
4939exports.formatMessage = formatMessage;
4940const standardLog = (val, trace, options = defaultOptions) => `[WFF-WEB-APP] ${(0, exports.formatMessage)(val, trace, options)}`;
4941exports.standardLog = standardLog;
4942exports.consoleLevels = {
4943    error: (val, trace, options = defaultOptions) => {
4944        const objOrArray = options?.printAsJson && ((0, validation_1.isObject)(trace) || (0, validation_1.isArray)(trace)) ? trace : '';
4945        console.error(`%c${(0, exports.standardLog)(val, trace, {
4946            jsonSpacing: options?.jsonSpacing,
4947            jsonReplacer: options?.jsonReplacer,
4948        })}
4948`, exports.LOGGER_LEVEL_COLORS.ERROR, objOrArray);
4949    },
4950    warn: (val, trace, options = defaultOptions) => {
4951        const objOrArray = options?.printAsJson && ((0, validation_1.isObject)(trace) || (0, validation_1.isArray)(trace)) ? trace : '';
4952        console.warn(`%c${(0, exports.standardLog)(val, trace, {
4953            jsonSpacing: options?.jsonSpacing,
4954            jsonReplacer: options?.jsonReplacer,
4955        })}`, exports.LOGGER_LEVEL_COLORS.WARN, objOrArray);
4956    },
4957    info: (val, trace, options = defaultOptions) => {
4958        const objOrArray = options?.printAsJson && ((0, validation_1.isObject)(trace) || (0, validation_1.isArray)(trace)) ? trace : '';
4959        console.info(`%c${(0, exports.standardLog)(val, trace, {
4960            jsonSpacing: options?.jsonSpacing,
4961            jsonReplacer: options?.jsonReplacer,
4962        })}`, exports.LOGGER_LEVEL_COLORS.INFO, objOrArray);
4963    },
4964};
4965const logger = {
4966    error: (val, trace, options = defaultOptions) => (isDev || logConfig?.error) && exports.consoleLevels.error(val, trace, options),
4967    warn: (val, trace, options = defaultOptions) => (isDev || logConfig?.warn) && exports.consoleLevels.warn(val, trace, options),
4968    info: (val, trace, options = defaultOptions) => (isDev || logConfig?.info) && exports.consoleLevels.info(val, trace, options),
4969};
4970exports["default"] = logger;
4971
4972
4973/***/ }),
4974
4975/***/ 150431:
4976/***/ (function(__unused_webpack_module, exports) {
4977
4978"use strict";
4979
4980Object.defineProperty(exports, "__esModule", ({ value: true }));
4981exports.isCityStatePostalCodeNotMatch = exports.isCityStatePostalCodeEmpty = exports.isExactCityMatch = exports.isExactAddressMatch = void 0;
4982const isExactAddressMatch = (address_1, address_2) => {
4983    if (!address_1 || !address_2)
4984        return false;
4985    return (address_2?.address1?.toLowerCase() === address_1?.address1?.toLowerCase() &&
4986        address_2?.address2?.toLowerCase() === address_1?.address2?.toLowerCase() &&
4987        address_2?.city?.toLowerCase() === address_1?.city?.toLowerCase() &&
4988        address_2?.state === address_1?.state &&
4989        address_2?.postalCode === address_1?.postalCode);
4990};
4991exports.isExactAddressMatch = isExactAddressMatch;
4992const isExactCityMatch = (address_1, address_2) => {
4993    if (!address_1 || !address_2)
4994        return false;
4995    return address_2?.city?.toLowerCase() === address_1?.city?.toLowerCase();
4996};
4997exports.isExactCityMatch = isExactCityMatch;
4998const isCityStatePostalCodeEmpty = (address) => {
4999    if (!address)
5000        return true;
5001    if (address?.city?.toLowerCase() === '' ||
5002        address?.state === '' ||
5003        address?.postalCode === '') {
5004        return true;
5005    }
5006    return false;
5007};
5008exports.isCityStatePostalCodeEmpty = isCityStatePostalCodeEmpty;
5009const isCityStatePostalCodeNotMatch = (address_1, address_2) => {
5010    if (!address_1 || !address_2)
5011        return true;
5012    return (address_2?.city?.toLowerCase() !== address_1?.city?.toLowerCase() ||
5013        address_2?.state !== address_1?.state ||
5014        address_2?.postalCode !== address_1?.postalCode);
5015};
5016exports.isCityStatePostalCodeNotMatch = isCityStatePostalCodeNotMatch;
5017
5018
5019/***/ }),
5020
5021/***/ 505805:
5022/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5023
5024"use strict";
5025
5026Object.defineProperty(exports, "__esModule", ({ value: true }));
5027exports.checkIfResetPasswordRequired = exports.isUnauthorizedError = exports.checkIfCartHasExpired = exports.getErrorCode = void 0;
5028const error_1 = __webpack_require__(527899);
5029const getErrorCode = (error) => error?.response?.data?.errors?.[0]?.code;
5030exports.getErrorCode = getErrorCode;
5031const checkIfCartHasExpired = (error) => (0, exports.getErrorCode)(error) === error_1.ERROR_CODES.WF_ORDER_009;
5032exports.checkIfCartHasExpired = checkIfCartHasExpired;
5033const isUnauthorizedError = (error) => error?.response?.status === 401;
5034exports.isUnauthorizedError = isUnauthorizedError;
5035const checkIfResetPasswordRequired = (error) => (0, exports.getErrorCode)(error) === error_1.ERROR_CODES.WF_PW_RESET_EMAIL_001;
5036exports.checkIfResetPasswordRequired = checkIfResetPasswordRequired;
5037
5038
5039/***/ }),
5040
5041/***/ 673228:
5042/***/ (function(__unused_webpack_module, exports) {
5043
5044"use strict";
5045
5046Object.defineProperty(exports, "__esModule", ({ value: true }));
5047exports.removeItem = exports.setItem = exports.getItem = void 0;
5048const isBrowser = (() => typeof window !== 'undefined')();
5049const getStorageType = (type) => `${type ?? 'session'}Storage`;
5050const getItem = (key, type) => {
5051    if (isBrowser) {
5052        return window[getStorageType(type)].getItem(key) || '';
5053    }
5054    return '';
5055};
5056exports.getItem = getItem;
5057const setItem = (key, value, type) => {
5058    if (isBrowser) {
5059        return window[getStorageType(type)].setItem(key, value);
5060    }
5061};
5062exports.setItem = setItem;
5063const removeItem = (key, type) => {
5064    if (isBrowser) {
5065        return window[getStorageType(type)].removeItem(key);
5066    }
5067};
5068exports.removeItem = removeItem;
5069
5070
5071/***/ }),
5072
5073/***/ 916382:
5074/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5075
5076"use strict";
5077
5078Object.defineProperty(exports, "__esModule", ({ value: true }));
5079exports.formatZipcode = void 0;
5080const formUtils_1 = __webpack_require__(503499);
5081const formatZipcode = (zipcode, country) => {
5082    let newZipcode = zipcode;
5083    if (country?.toUpperCase() === 'CA' && zipcode?.length >= 6) {
5084        const zip = zipcode.match(/^(\w\d\w)\W?(\d\w\d)$/);
5085        newZipcode = [zip?.[1], zip?.[2]].join(' ').toUpperCase();
5086    }
5087    else if (country?.toUpperCase() === 'US') {
5088        const zip = (0, formUtils_1.sanitizeZipcodeUS)(zipcode);
5089        newZipcode = zip;
5090    }
5091    return newZipcode;
5092};
5093exports.formatZipcode = formatZipcode;
5094
5095
5096/***/ }),
5097
5098/***/ 809843:
5099/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5100
5101"use strict";
5102
5103Object.defineProperty(exports, "__esModule", ({ value: true }));
5104exports.formatCentsAsDollars = exports.formatToTwoDecimals = exports.convertToCentsIfANumber = exports.convertToCents = exports.convertToDollarIfANumber = exports.convertToDollar = exports.format = void 0;
5105const locale_1 = __webpack_require__(808439);
5106const validation_1 = __webpack_require__(848316);
5107const format = (value, options) => {
5108    // create formatter
5109    const formatter = new Intl.NumberFormat(options?.languageCode ?? locale_1.LOCALE.EN_US, {
5110        style: 'currency',
5111        currency: options?.currency ?? locale_1.CURRENCY.USD,
5112        minimumFractionDigits: options?.minimumFractionDigits != null
5113            ? options?.minimumFractionDigits
5114            : 2, // null validation is to avoid falsy on 0
5115        maximumFractionDigits: options?.maximumFractionDigits != null
5116            ? options?.maximumFractionDigits
5117            : 2, // null validation is to avoid falsy on 0
5118    });
5119    const notNaNValue = isNaN(value) ? 0 : value;
5120    return formatter.format(notNaNValue);
5121};
5122exports.format = format;
5123const convertToDollar = (value, defaultValue = 0) => {
5124    if ((0, validation_1.isANumber)(value)) {
5125        return parseFloat((value / 100).toFixed(2));
5126    }
5127    return defaultValue;
5128};
5129exports.convertToDollar = convertToDollar;
5130const convertToDollarIfANumber = (value) => {
5131    return (0, exports.convertToDollar)(value, null);
5132};
5133exports.convertToDollarIfANumber = convertToDollarIfANumber;
5134const convertToCents = (value, defaultValue = 0) => {
5135    if ((0, validation_1.isANumber)(value)) {
5136        return Number(value) * 100;
5137    }
5138    return defaultValue;
5139};
5140exports.convertToCents = convertToCents;
5141const convertToCentsIfANumber = (value) => {
5142    return (0, exports.convertToCents)(value, null);
5143};
5144exports.convertToCentsIfANumber = convertToCentsIfANumber;
5145/**
5146 * Safely formats a number to 2 decimal places, defaulting to 0 if NaN
5147 * @param value - Number value to format
5148 * @returns Formatted string with 2 decimal places (e.g., "0.00")
5149 */
5150const formatToTwoDecimals = (value) => {
5151    const safeValue = Number.isNaN(value) ? 0 : value;
5152    return safeValue.toFixed(2);
5153};
5154exports.formatToTwoDecimals = formatToTwoDecimals;
5155const formatCentsAsDollars = (cents) => {
5156    if (!(0, validation_1.isANumber)(cents)) {
5157        return (0, exports.format)(0);
5158    }
5159    const dollars = (0, exports.convertToDollar)(Number(cents));
5160    return (0, exports.format)(dollars);
5161};
5162exports.formatCentsAsDollars = formatCentsAsDollars;
5163
5164
5165/***/ }),
5166
5167/***/ 671126:
5168/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5169
5170"use strict";
5171/* provided dependency */ var process = __webpack_require__(683454);
5172
5173Object.defineProperty(exports, "__esModule", ({ value: true }));
5174exports.appEnv = exports.amInNonProdEnvironment = exports.amInOneOfTheseEnvironments = void 0;
5175const commons_1 = __webpack_require__(820523);
5176const amInOneOfTheseEnvironments = (acceptableEnvList) => {
5177    return acceptableEnvList.some((env) => {
5178        return "prod" === env;
5179    });
5180};
5181exports.amInOneOfTheseEnvironments = amInOneOfTheseEnvironments;
5182const amInNonProdEnvironment = () => {
5183    return (0, exports.amInOneOfTheseEnvironments)([
5184        commons_1.ENVIRONMENTS.LOCAL,
5185        commons_1.ENVIRONMENTS.DEV,
5186        commons_1.ENVIRONMENTS.QA,
5187        commons_1.ENVIRONMENTS.STAGE,
5188    ]);
5189};
5190exports.amInNonProdEnvironment = amInNonProdEnvironment;
5191exports.appEnv = {
5192    application: {
5193        environment: "prod" || 0,
5194        domainRedirect: "false" || 0,
5195        locale: "en-US" || 0,
5196        publicUrl: "https://wildforkfoods.com" || 0,
5197    },
5198    adyen: {
5199        apiKey: process.env.NEXT_PUBLIC_ADY_API_KEY || '',
5200        accountName: process.env.NEXT_PUBLIC_ADY_ACCOUNT_NAME || '',
5201        environment: "live" || 0,
5202        clientKey: "live_DQJTV25HXRDCPBK66MDT7YBBIIB4PAWV" || 0,
5203    },
5204    algolia: {
5205        appId: "AJ4979E5D7" || 0,
5206        apiKey: "d3d0721a7276e4b586a530eaa3c934aa" || 0,
5207        index: "prod_commercetools_products" || 0,
5208        indexProductMostPopular: "prod_commercetools_products_en-us_mostpop" || 0,
5209        indexProductPriceDesc: "prod_commercetools_products_en-us_price_HL" || 0,
5210        indexProductPriceAsc: "prod_commercetools_products_en-us_price_LH" || 0,
5211        indexProductTitleAsc: "prod_commercetools_products_en-us_az_asc" || 0,
5212        indexProductTitleDesc: "prod_commercetools_products_en-us_az_desc" || 0,
5213        indexSuggestions: "prod_commercetools_products_query_suggestions" || 0,
5214        indexRecipes: "prod_contentful_recipes_us" || 0,
5215    },
5216    api: {
5217        baseUri: "/wildfork/v1/" || 0,
5218        apiKey: "d3ee9706648a49ae89555ff9f1cef6ac" || 0,
5219    },
5220    commerceTools: {
5221        baseUrl: process.env.NEXT_PRIVATE_CTP_API_URL || '',
5222        authUrl: process.env.NEXT_PRIVATE_CTP_AUTH_URL || '',
5223        authScopes: process.env.NEXT_PRIVATE_CTP_SCOPES || '',
5224        authProjectKey: process.env.NEXT_PRIVATE_CTP_PROJECT_KEY || '',
5225        authClientId: process.env.NEXT_PRIVATE_CTP_CLIENT_ID || '',
5226        authClientSecret: process.env.NEXT_PRIVATE_CTP_CLIENT_SECRET || '',
5227    },
5228    contentful: {
5229        url: process.env.NEXT_PRIVATE_CONTENTFUL_URL || '',
5230        spaceId: process.env.NEXT_PRIVATE_CONTENTFUL_SPACE || '',
5231        environment: process.env.NEXT_PRIVATE_CONTENTFUL_ENV || '',
5232        deliveryToken: process.env.NEXT_PRIVATE_CONTENTFUL_TOKEN || '',
5233    },
5234    freshDesk: {
5235        token: "dcfdbf46-5249-439f-8762-65844c160c09" || 0,
5236    },
5237    googleMaps: {
5238        apiKey: "AIzaSyCiHJ0aa7VXYJ4oo8hN1fL1jsNwFG2w7oc" || 0,
5239        bypass: process.env.NEXT_PUBLIC_GOOGLE_MAPS_BYPASS || '',
5240    },
5241    googleTagManager: {
5242        scriptId: "GTM-TQVWPVJ" || 0,
5243    },
5244    googleSiteVerification: {
5245        contentId: process.env.NEXT_PUBLIC_GOOGLE_SITE_VERIFICATION_CONTENT_ID || '',
5246    },
5247    klaviyo: {
5248        baseUri: process.env.NEXT_PUBLIC_KLAVIYO_BASE_URI || '',
5249        token: process.env.NEXT_PUBLIC_KLAVIYO_PUBLIC_TOKEN || '',
5250        newsletterListId: process.env.NEXT_PUBLIC_KLAVIYO_NEWSLETTER_LISTID || '',
5251        zipcodeNotifyListId: process.env.NEXT_PUBLIC_KLAVIYO_ZIPCODE_NOTIFY_LISTID || '',
5252    },
5253    pinterest: {
5254        contentId: process.env.NEXT_PUBLIC_PINTEREST_CONTENT_ID || '',
5255    },
5256    twilio: {
5257        baseUrl: "https://lookups.twilio.com/v1/PhoneNumbers/" || 0,
5258        accountSid: "WIP" || 0,
5259        token: "WIP" || 0,
5260    },
5261    yotpo: {
5262        baseUrl: "https://api.yotpo.com/" || 0,
5263        appKey: "u6R1BT7uuR7gM71VstsTHB1tUm0eKn8vJpEvAAp3" || 0,
5264        minAIReviews: process.env.NEXT_PUBLIC_YOTPO_MIN_AI_REVIEWS || '10',
5265    },
5266    algoliaAdvanceSearch: {
5267        advanceSearch: "enabled" || 0,
5268        mostPopularSearch: "enabled" || 0,
5269        trendingCategory: "enabled" || 0,
5270        trendingCategoryData: "wild savings,Holiday,meats,labor day"?.split(',').filter((ele) => ele) || [],
5271        recentSearch: "enabled" || 0,
5272        recentSearchLocalStorageKey: process.env.NEXT_PUBLIC_RECENT_SEARCH_LO
5272CAL_STORAGE_KEY ||
5273            'algolia-recent-searches',
5274        recentSearchHistoryMaintainCount: process.env
5275            .NEXT_PUBLIC_RECENT_SEARCH_HISTORY_MAINTAIN_COUNT
5276            ? +process.env.NEXT_PUBLIC_RECENT_SEARCH_HISTORY_MAINTAIN_COUNT
5277            : 5,
5278    },
5279    feature_toggle: {
5280        US: {
5281            isNewZipCodeFeatureEnabled: "disabled" === 'enabled',
5282            isDeliveryHandlingFeeEnabled: "enabled" ===
5283                'enabled',
5284            isNavigationDropdownEnabled: "disabled" === 'enabled',
5285        },
5286    },
5287    darkStoreDeliveryFees: process.env.NEXT_PUBLIC_DARK_STORE_DELIVERY_FEES || 14.99,
5288    searchIgnoreProductCategory: "Dry Goods" || 0,
5289};
5290
5291
5292/***/ }),
5293
5294/***/ 503499:
5295/***/ (function(__unused_webpack_module, exports) {
5296
5297"use strict";
5298
5299Object.defineProperty(exports, "__esModule", ({ value: true }));
5300exports.sanitizeZipcodeUS = exports.sanitizePhoneNumber = void 0;
5301const sanitizePhoneNumber = (value) => {
5302    return value.replace(/\D/g, '').replace(/^1/, '').slice(0, 10);
5303};
5304exports.sanitizePhoneNumber = sanitizePhoneNumber;
5305const sanitizeZipcodeUS = (value) => {
5306    return value ? value.replace(/[^\d]/g, '') : '';
5307};
5308exports.sanitizeZipcodeUS = sanitizeZipcodeUS;
5309
5310
5311/***/ }),
5312
5313/***/ 305208:
5314/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5315
5316"use strict";
5317
5318var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5319    if (k2 === undefined) k2 = k;
5320    var desc = Object.getOwnPropertyDescriptor(m, k);
5321    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
5322      desc = { enumerable: true, get: function() { return m[k]; } };
5323    }
5324    Object.defineProperty(o, k2, desc);
5325}) : (function(o, m, k, k2) {
5326    if (k2 === undefined) k2 = k;
5327    o[k2] = m[k];
5328}));
5329var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
5330    Object.defineProperty(o, "default", { enumerable: true, value: v });
5331}) : function(o, v) {
5332    o["default"] = v;
5333});
5334var __importStar = (this && this.__importStar) || (function () {
5335    var ownKeys = function(o) {
5336        ownKeys = Object.getOwnPropertyNames || function (o) {
5337            var ar = [];
5338            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
5339            return ar;
5340        };
5341        return ownKeys(o);
5342    };
5343    return function (mod) {
5344        if (mod && mod.__esModule) return mod;
5345        var result = {};
5346        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
5347        __setModuleDefault(result, mod);
5348        return result;
5349    };
5350})();
5351Object.defineProperty(exports, "__esModule", ({ value: true }));
5352exports.addressUtils = exports.lineItemUtils = exports.typeUtils = exports.AxiosErrorUtils = void 0;
5353exports.AxiosErrorUtils = __importStar(__webpack_require__(505805));
5354exports.typeUtils = __importStar(__webpack_require__(681063));
5355exports.lineItemUtils = __importStar(__webpack_require__(230458));
5356exports.addressUtils = __importStar(__webpack_require__(150431));
5357
5358
5359/***/ }),
5360
5361/***/ 230458:
5362/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5363
5364"use strict";
5365
5366var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5367    if (k2 === undefined) k2 = k;
5368    var desc = Object.getOwnPropertyDescriptor(m, k);
5369    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
5370      desc = { enumerable: true, get: function() { return m[k]; } };
5371    }
5372    Object.defineProperty(o, k2, desc);
5373}) : (function(o, m, k, k2) {
5374    if (k2 === undefined) k2 = k;
5375    o[k2] = m[k];
5376}));
5377var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
5378    Object.defineProperty(o, "default", { enumerable: true, value: v });
5379}) : function(o, v) {
5380    o["default"] = v;
5381});
5382var __importStar = (this && this.__importStar) || (function () {
5383    var ownKeys = function(o) {
5384        ownKeys = Object.getOwnPropertyNames || function (o) {
5385            var ar = [];
5386            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
5387            return ar;
5388        };
5389        return ownKeys(o);
5390    };
5391    return function (mod) {
5392        if (mod && mod.__esModule) return mod;
5393        var result = {};
5394        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
5395        __setModuleDefault(result, mod);
5396        return result;
5397    };
5398})();
5399Object.defineProperty(exports, "__esModule", ({ value: true }));
5400exports.isMembershipItem = exports.deriveItemInfo = void 0;
5401const locale_1 = __webpack_require__(808439);
5402const currency = __importStar(__webpack_require__(809843));
5403const deriveItemInfo = (item, contentTranslation = {
5404    approx: 'approx',
5405    pieces: 'pieces',
5406    piece: 'piece',
5407    each: 'each',
5408}) => {
5409    const { weightText = '', isFixedPrice, perUnitPriceText, itemPiecesText, totalPrice, quantity = 1, } = item;
5410    const [, UOM] = weightText.split(' ');
5411    return {
5412        ...item,
5413        weightText,
5414        itemPiecesTextFormatted: itemPiecesText,
5415        perUnitPriceText: perUnitPriceText
5416            ? currency.format(parseFloat(perUnitPriceText))
5417            : '',
5418        totalPriceText: typeof totalPrice === 'number'
5419            ? currency.format(currency.convertToDollar(totalPrice / quantity))
5420            : '',
5421        eachKey: isFixedPrice ? contentTranslation.each : '',
5422        UOM,
5423    };
5424};
5425exports.deriveItemInfo = deriveItemInfo;
5426const isMembershipItem = (sku) => {
5427    return sku.toLocaleLowerCase().includes(locale_1.isUSLocale ? 'membership' : 'member');
5428};
5429exports.isMembershipItem = isMembershipItem;
5430
5431
5432/***/ }),
5433
5434/***/ 100372:
5435/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5436
5437"use strict";
5438
5439var __importDefault = (this && this.__importDefault) || function (mod) {
5440    return (mod && mod.__esModule) ? mod : { "default": mod };
5441};
5442Object.defineProperty(exports, "__esModule", ({ value: true }));
5443exports.t = exports.getCountryCode = exports.getStateList = void 0;
5444const locale_1 = __webpack_require__(808439);
5445const ca_json_1 = __importDefault(__webpack_require__(463792));
5446const us_json_1 = __importDefault(__webpack_require__(746578));
5447const states_1 = __webpack_require__(864973);
5448const Logger_1 = __importDefault(__webpack_require__(101914));
5449const getStateList = (country) => {
5450    let stateList;
5451    switch (country?.toLowerCase()) {
5452        case 'us':
5453        case 'united states':
5454            stateList = states_1.US_STATES;
5455            break;
5456        case 'ca':
5457        case 'canada':
5458            stateList = states_1.CA_STATES;
5459            break;
5460        case 'mx':
5461        case 'mexico':
5462            stateList = states_1.MX_STATES;
5463            break;
5464        default:
5465            stateList = states_1.US_STATES;
5466            break;
5467    }
5468    return stateList;
5469};
5470exports.getStateList = getStateList;
5471const getCountryJson = () => {
5472    switch (locale_1.LANGUAGE_CODE) {
5473        case locale_1.LOCALE.EN_CA:
5474            return ca_json_1.default;
5475        case locale_1.LOCALE.EN_US:
5476            return us_json_1.default;
5477        case locale_1.LOCALE.ES_MX:
5478            return us_json_1.default;
5479        default:
5480            throw new Error('Current Locale is not mapped to any country JSON');
5481    }
5482};
5483/** Country code from the same locale. Use for price/locale logic. */
5484const getCountryCode = () => {
5485    switch (locale_1.LANGUAGE_CODE) {
5486        case locale_1.LOCALE.EN_CA:
5487            return locale_1.COUNTRY_SHORT.CA;
5488        case locale_1.LOCALE.EN_US:
5489            return locale_1.COUNTRY_SHORT.US;
5490        case locale_1.LOCALE.ES_MX:
5491            return locale_1.COUNTRY_SHORT.MX;
5492        default:
5493            return locale_1.COUNTRY_SHORT.US;
5494    }
5495};
5496exports.getCountryCode = getCountryCode;
5497const t = (path) => {
5498    try {
5499        const country = getCountryJson();
5500        const getValue = (obj, path) => {
5501            const keys = path.split('.');
5502            let value = obj;
5503            keys.forEach((key) => {
5504                value = value?.[key];
5505            });
5506            return value;
5507        };
5508        return getValue(country, path);
5509    }
5510    catch (error) {
5511        Logger_1.default.error('Error in t function', error);
5512        return '';
5513    }
5514};
5515exports.t = t;
5516
5517
5518/***/ }),
5519
5520/***/ 560555:
5521/***/ (function(__unused_webpack_module, exports) {
5522
5523"use strict";
5524
5525Object.defineProperty(exports, "__esModule", ({ value: true }));
5526exports.roundToNearestMultiple = exports.toNumber = void 0;
5527const toNumber = (value, defaultValue = 0) => {
5528    if (value === null || value === undefined || typeof value === 'boolean') {
5529        return defaultValue;
5530    }
5531    const number = Number(value);
5532    if (isNaN(number)) {
5533        return defaultValue;
5534    }
5535    return number;
5536};
5537exports.toNumber = toNumber;
5538/**
5539 * Rounds a number to the nearest multiple
5540 * @param value - The number to round
5541 * @param multiple - The multiple to round to (e.g., 5 for rounding to nearest 5)
5542 * @returns The rounded number
5543 * @example
5544 * roundToNearestMultiple(67, 5) // returns 65
5545 * roundToNearestMultiple(68, 5) // returns 70
5546 * roundToNearestMultiple(65, 5) // returns 65
5547 */
5548const roundToNearestMultiple = (value, multiple) => {
5549    return Math.round(value / multiple) * multiple;
5550};
5551exports.roundToNearestMultiple = roundToNearestMultiple;
5552
5553
5554/***/ }),
5555
5556/***/ 525558:
5557/***/ (function(__unused_webpack_module, exports) {
5558
5559"use strict";
5560var __webpack_unused_export__;
5561
5562__webpack_unused_export__ = ({ value: true });
5563exports.i = void 0;
5564const trimStringValuesInObject = (obj) => {
5565    if (obj !== null && typeof obj === 'object') {
5566        for (const key in obj) {
5567            if (Object.prototype.hasOwnProperty.call(obj, key)) {
5568                if (typeof obj[key] === 'string') {
5569                    obj[key] = obj[key].trim();
5570                }
5571                else if (typeof obj[key] === 'object') {
5572                    obj[key] = (0, exports.i)(obj[key]);
5573                }
5574            }
5575        }
5576    }
5577    return obj;
5578};
5579exports.i = trimStringValuesInObject;
5580
5581
5582/***/ }),
5583
5584/***/ 405016:
5585/***/ (function(__unused_webpack_module, exports) {
5586
5587"use strict";
5588
5589// const regexAllSpecialChars =
5590Object.defineProperty(exports, "__esModule", ({ value: true }));
5591const PATTERNS = {
5592    NAME: /^[\p{Letter}\p{Mark}\p{Number}\s"'`'.\-]{2,32}$/u, // allow for unique names (In all Languages) with unordinary characters
5593    EMAIL: /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)?[\.][a-zA-Z0-9]{2,5}$/,
5594    PASSWORD: /^[\p{Letter}\p{Mark}\p{Number}\s"'`'./,()&_\-!@#$%^&*()_+=\[\]\{\};':"<>?,./\\\|~]+$/u,
5595    STRONG_PASSWORD: /^(?=.*[\p{Ll}])(?=.*[\p{Lu}])(?=.*[\p{Number}])(?=.*[!@#$%^&*()_+-.=])[\p{Letter}\p{Number}!@#$%^&*()_+-.=]{8,25}$/u,
5596    EMAIL_ENDS_WITH_AT: /[a-zA-Z0-9]+[\.]?([a-zA-Z0-9]+)?[\@]$/,
5597    ADDRESS: /^[\p{Letter}\p{Mark}\p{Number}\s"'`'./,()&#_\-]+$/u,
5598    CITY: /^[\p{Letter}\p{Mark}\p{Number}\s"'`'./,()&_\-]+$/u,
5599    ZIP_US: /^\p{Number}{5}$/u,
5600    ZIP_MX: /^\p{Number}{5}?$/u,
5601    ZIP_CA: /^[A-Za-z]\d[A-Za-z][ -]?\d[A-Za-z]\d$/,
5602    PHONE: /^[ 0-9\(\)\+\-]+$/i, // allow for +1 (904) 555-5555
5603    COUPON: /^[\p{Letter}\p{Mark}\p{Number}\s\-]+$/u,
5604    NUMBER: /^\p{Number}+$/u,
5605};
5606exports["default"] = PATTERNS;
5607
5608
5609/***/ }),
5610
5611/***/ 574909:
5612/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5613
5614"use strict";
5615
5616Object.defineProperty(exports, "__esModule", ({ value: true }));
5617exports.isProductVisibleForSelectedStore = exports.getPerStoreInventoryFromHit = exports.getStateFromZip = exports.selectRegionalPriceEntity = exports.selectDefaultPrice = exports.selectRegionalPrice = exports.filterPricesByCountryCurrency = void 0;
5618const environment_1 = __webpack_require__(676864);
5619const locale_1 = __webpack_require__(808439);
5620const products_1 = __webpack_require__(381341);
5621const locale_2 = __webpack_require__(100372);
5622const searchIgnoreProductCategory = environment_1.nextAppEnv.searchIgnoreProductCategory || '';
5623/** Filters prices by country/currency using COUNTRY_CURRENCY_RULES. */
5624const filterPricesByCountryCurrency = (prices, country) => {
5625    if (!prices?.length)
5626        return [];
5627    const currency = locale_1.COUNTRY_CURRENCY_RULES[country];
5628    return currency
5629        ? prices.filter((p) => p?.value?.currencyCode === currency)
5630        : [...prices];
5631};
5632exports.filterPricesByCountryCurrency = filterPricesByCountryCurrency;
5633/** Selects the regional price by regionId if present and valid (validFrom/validUntil). */
5634const selectRegionalPrice = (prices, regionId) => {
5635    const match = findPriceEntityByKey(prices, regionId);
5636    return match && isPriceEntityValid({ priceEntity: match }) ? match : null;
5637};
5638exports.selectRegionalPrice = selectRegionalPrice;
5639/** Selects default price: default channel, then no channel, then first. */
5640const selectDefaultPrice = (prices) => {
5641    if (!prices?.length)
5642        return null;
5643    const defaultChannel = findPriceEntityByKey(prices, products_1.DEFAULT_PRICE_CHANNEL_KEY_VALUE);
5644    const noChannel = prices.find((p) => !p?.channel?.obj?.key);
5645    return defaultChannel ?? noChannel ?? prices[0];
5646};
5647exports.selectDefaultPrice = selectDefaultPrice;
5648const selectRegionalPriceEntity = ({ regionId, prices, }) => {
5649    if (!prices || prices.length === 0)
5650        return null;
5651    const filtered = (0, exports.filterPricesByCountryCurrency)(prices, (0, locale_2.getCountryCode)());
5652    if (filtered.length === 0)
5653        return null;
5654    if (filtered.length === 1)
5655        return filtered[0];
5656    const regional = (0, exports.selectRegionalPrice)(filtered, regionId);
5657    if (regional)
5658        return regional;
5659    return (0, exports.selectDefaultPrice)(filtered);
5660};
5661exports.selectRegionalPriceEntity = selectRegionalPriceEntity;
5662const findPriceEntityByKey = (prices = [], key) => prices.find((priceEntity) => priceEntity?.channel?.obj?.key === key);
5663const isPriceEntityValid = ({ priceEntity, }) => {
5664    if (!priceEntity)
5665        return false;
5666    const { validFrom, validUntil } = priceEntity;
5667    if (!validFrom || !validUntil)
5668        return false;
5669    const from = new Date(validFrom);
5670    const until = new Date(validUntil);
5671    const now = new Date();
5672    return now >= from && now <= until;
5673};
5674// gets state by zip
5675// https://stackoverflow.com/questions/28821804/how-can-i-quickly-determine-the-state-for-a-given-zipcode
5676// You can return the state's full name instead of just the two-letter abbreviation by returning state instead of st on the last line.
5677const getStateFromZip = (zipString) => {
5678    /* Ensure we have exactly 5 characters to parse */
5679    if (zipString.length !== 5)
5680        return;
5681    /* Ensure we don't parse strings starting with 0 as octal values */
5682    const zipcode = parseInt(zipString, 10);
5683    let st;
5684    let state;
5685    /* Code cases alphabetized by state */
5686    if (zipcode >= 35000 && zipcode <= 36999) {
5687        st = 'AL';
5688        state = 'Alabama';
5689    }
5690    else if (zipcode >= 99500 && zipcode <= 99999) {
5691        st = 'AK';
5692        state = 'Alaska';
5693    }
5694    else if (zipcode >= 85000 && zipcode <= 86999) {
5695        st = 'AZ';
5696        state = 'Arizona';
5697    }
5698    else if (zipcode >= 71600 && zipcode <= 72999) {
5699        st = 'AR';
5700        state = 'Arkansas';
5701    }
5702    else if (zipcode >= 90000 && zipcode <= 96699) {
5703        st = 'CA';
5704        state = 'California';
5705    }
5706    else if (zipcode >= 80000 && zipcode <= 81999) {
5707        st = 'CO';
5708        state = 'Colorado';
5709    }
5710    else if ((zipcode >= 6000 && zipcode <= 6389) ||
5711        (zipcode >= 6391 && zipcode <= 6999)) {
5712        st = 'CT';
5713        state = 'Connecticut';
5714    }
5715    else if (zipcode >= 19700 && zipcode <= 19999) {
5716        st = 'DE';
5717        state = 'Delaware';
5718    }
5719    else if (zipcode >= 32000 && zipcode <= 34999) {
5720        st = 'FL';
5721        state = 'Florida';
5722    }
5723    else if ((zipcode >= 30000 && zipcode <= 31999) ||
5724        (zipcode >= 39800 && zipcode <= 39999)) {
5725        st = 'GA';
5726        state = 'Georgia';
5727    }
5728    else if (zipcode >= 96700 && zipcode <= 96999) {
5729        st = 'HI';
5730        state = 'Hawaii';
5731    }
5732    else if (zipcode >= 83200 && zipcode <= 83999 && zipcode != 83414) {
5733        st = 'ID';
5734        state = 'Idaho';
5735    }
5736    else if (zipcode >= 60000 && zipcode <= 62999) {
5737        st = 'IL';
5738        state = 'Illinois';
5739    }
5740    else if (zipcode >= 46000 && zipcode <= 47999) {
5741        st = 'IN';
5742        state = 'Indiana';
5743    }
5744    else if (zipcode >= 50000 && zipcode <= 52999) {
5745        st = 'IA';
5746        state = 'Iowa';
5747    }
5748    else if (zipcode >= 66000 && zipcode <= 67999) {
5749        st = 'KS';
5750        state = 'Kansas';
5751    }
5752    else if (zipcode >= 40000 && zipcode <= 42999) {
5753        st = 'KY';
5754        state = 'Kentucky';
5755    }
5756    else if (zipcode >= 70000 && zipcode <= 71599) {
5757        st = 'LA';
5758        state = 'Louisiana';
5759    }
5760    else if (zipcode >= 3900 && zipcode <= 4999) {
5761        st = 'ME';
5762        state = 'Maine';
5763    }
5764    else if (zipcode >= 20600 && zipcode <= 21999) {
5765        st = 'MD';
5766        state = 'Maryland';
5767    }
5768    else if ((zipcode >= 1000 && zipcode <= 2799) ||
5769        zipcode == 5501 ||
5770        zipcode == 5544) {
5771        st = 'MA';
5772        state = 'Massachusetts';
5773    }
5774    else if (zipcode >= 48000 && zipcode <= 49999) {
5775        st = 'MI';
5776        state = 'Michigan';
5777    }
5778    else if (zipcode >= 55000 && zipcode <= 56899) {
5779        st = 'MN';
5780        state = 'Minnesota';
5781    }
5782    else if (zipcode >= 38600 && zipcode <= 39999) {
5783        st = 'MS';
5784        state = 'Mississippi';
5785    }
5786    else if (zipcode >= 63000 && zipcode <= 65999) {
5787        st = 'MO';
5788        state = 'Missouri';
5789    }
5790    else if (zipcode >= 59000 && zipcode <= 59999) {
5791        st = 'MT';
5792        state = 'Montana';
5793    }
5794    else if (zipcode >= 27000 && zipcode <= 28999) {
5795        st = 'NC';
5796        state = 'North Carolina';
5797    }
5798    else if (zipcode >= 58000 && zipcode <= 58999) {
5799        st = 'ND';
5800        state = 'North Dakota';
5801    }
5802    else if (zipcode >= 68000 && zipcode <= 69999) {
5803        st = 'NE';
5804        state = 'Nebraska';
5805    }
5806    else if (zipcode >= 88900 && zipcode <= 89999) {
5807        st = 'NV';
5808        state = 'Nevada';
5809    }
5810    else if (zipcode >= 3000 && zipcode <= 3899) {
5811        st = 'NH';
5812        state = 'New Hampshire';
5813    }
5814    else if (zipcode >= 7000 && zipcode <= 8999) {
5815        st = 'NJ';
5816        state = 'New Jersey';
5817    }
5818    else if (zipcode >= 87000 && zipcode <= 88499) {
5819        st = 'NM';
5820        state = 'New Mexico';
5821    }
5822    else if ((zipcode >= 10000 && zipcode <= 14999) ||
5823        zipcode == 6390 ||
5824        zipcode == 501 ||
5825        zipcode == 544) {
5826        st = 'NY';
5827        state = 'New York';
5828    }
5829    else if (zipcode >= 43000 && zipcode <= 45999) {
5830        st = 'OH';
5831        state = 'Ohio';
5832    }
5833    else if ((zipcode >= 73000 && zipcode <= 73199) ||
5834        (zipcode >= 73400 && zipcode <= 74999)) {
5835        st = 'OK';
5836        state = 'Oklahoma';
5837    }
5838    else if (zipcode >= 97000 && zipcode <= 97999) {
5839        st = 'OR';
5840        state = 'Oregon';
5841    }
5842    else if (zipcode >= 15000 && zipcode <= 19699) {
5843        st = 'PA';
5844        state = 'Pennsylvania';
5845    }
5846    else if (zipcode >= 300 && zipcode <= 999) {
5847        st = 'PR';
5848        state = 'Puerto Rico';
5849    }
5850    else if (zipcode >= 2800 && zipcode <= 2999) {
5851        st = 'RI';
5852        state = 'Rhode Island';
5853    }
5854    else if (zipcode >= 29000 && zipcode <= 29999) {
5855        st = 'SC';
5856        state = 'South Carolina';
5857    }
5858    else if (zipcode >= 57000 && zipcode <= 57999) {
5859        st = 'SD';
5860        state = 'South Dakota';
5861    }
5862    else if (zipcode >= 37000 && zipcode <= 38599) {
5863        st = 'TN';
5864        state = 'Tennessee';
5865    }
5866    else if ((zipcode >= 75000 && zipcode <= 79999) ||
5867        (zipcode >= 73301 && zipcode <= 73399) ||
5868        (zipcode >= 88500 && zipcode <= 88599)) {
5869        st = 'TX';
5870        state = 'Texas';
5871    }
5872    else if (zipcode >= 84000 && zipcode <= 84999) {
5873        st = 'UT';
5874        state = 'Utah';
5875    }
5876    else if (zipcode >= 5000 && zipcode <= 5999) {
5877        st = 'VT';
5878        state = 'Vermont';
5879    }
5880    else if ((zipcode >= 20100 && zipcode <= 20199) ||
5881        (zipcode >= 22000 && zipcode <= 24699) ||
5882        zipcode == 20598) {
5883        st = 'VA';
5884        state = 'Virginia';
5885    }
5886    else if ((zipcode >= 20000 && zipcode <= 20099) ||
5887        (zipcode >= 20200 && zipcode <= 20599) ||
5888        (zipcode >= 56900 && zipcode <= 56999)) {
5889        st = 'DC';
5890        state = 'Washington DC';
5891    }
5892    else if (zipcode >= 98000 && zipcode <= 99499) {
5893        st = 'WA';
5894        state = 'Washington';
5895    }
5896    else if (zipcode >= 24700 && zipcode <= 26999) {
5897        st = 'WV';
5898        state = 'West Virginia';
5899    }
5900    else if (zipcode >= 53000 && zipcode <= 54999) {
5901        st = 'WI';
5902        state = 'Wisconsin';
5903    }
5904    else if ((zipcode >= 82000 && zipcode <= 83199) || zipcode == 83414) {
5905        st = 'WY';
5906        state = 'Wyoming';
5907    }
5908    else {
5909        st = 'none';
5910        // eslint-disable-next-line @typescript-eslint/no-unused-vars
5911        state = 'none';
5912        console.info('No state found matching', zipcode);
5913    }
5914    /* Return `state` for full name or `st` for postal abbreviation */
5915    return st;
5916};
5917exports.getStateFromZip = getStateFromZip;
5918/** Resolves per-store inventory from Algolia `stores` payload (same shape as PLP / InstantSearch hits). */
5919const getPerStoreInventoryFromHit = (product, storeId) => {
5920    const stores = product?.stores;
5921    const row = stores?.find((ele) => Boolean(ele[storeId]));
5922    return row?.[storeId];
5923};
5924exports.getPerStoreInventoryFromHit = getPerStoreInventoryFromHit;
5925/**
5926 * Whether a search/PLP hit should remain visible for the current store context.
5927 *
5928 * If `storeId` is missing or empty, returns `true` (no store filtering).
5929 * Otherwise returns `false` only when the hit has a `stores` row for that id, is not on
5930 * stock, has zero inventory, and `categories` includes `searchIgnoreProductCategory`
5931 * (from `NEXT_PUBLIC_SEARCH_IGNORE_PRODUCT_CATEGORY`). In all other cases returns `true`.
5932 *
5933 * @param product - Algolia hit; reads `stores` and `categories`.
5934 * @param storeId - Selected store identifier, or null/empty to skip filtering.
5935 * @returns True if the product is visible for the selected store, false otherwise
5936 */
5937const isProductVisibleForSelectedStore = ({ product, storeId, }) => {
5938    if (storeId == null || storeId === '') {
5939        return true;
5940    }
5941    const idKey = String(storeId);
5942    const storeInventory = (0, exports.getPerStoreInventoryFromHit)(product, idKey);
5943    const categories = product?.categories;
5944    const isCategoryIgnored = categories?.includes(searchIgnoreProductCategory);
5945    if (storeInventory !== undefined &&
5946        storeInventory.isOnStock &&
5947        storeInventory.inventory > 0 &&
5948        !isCategoryIgnored) {
5949        return true;
5950    }
5951    else {
5952        return false;
5953    }
5954};
5955exports.isProductVisibleForSelectedStore = isProductVisibleForSelectedStore;
5956
5957
5958/***/ }),
5959
5960/***/ 676564:
5961/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5962
5963"use strict";
5964var __webpack_unused_export__;
5965
5966__webpack_unused_export__ = ({ value: true });
5967exports.s = void 0;
5968const commons_1 = __webpack_require__(820523);
5969const url_1 = __webpack_require__(781289);
5970const reloadPage = () => {
5971    if (false)
5972        {}
5973    const currentUrl = window.location.href;
5974    const regionIdSearchParam = !!(0, url_1.getSearchParam)(currentUrl, commons_1.SEARCH_PARAMS.REGION_ID);
5975    if (regionIdSearchParam) {
5976        // We need to reload the page when the region ID changes, as required by DY.
5977        // It's important to remove the search parameters from the URL if a regi
5977on_id exists.
5978        // This allows the user to enter a new zip code through the popup. Otherwise,
5979        // the query parameter will always take precedence over the zip code entered in the popup.
5980        window.location.replace((0, url_1.removeSearchParam)(currentUrl, commons_1.SEARCH_PARAMS.REGION_ID));
5981    }
5982    else {
5983        window.location.reload();
5984    }
5985};
5986exports.s = reloadPage;
5987
5988
5989/***/ }),
5990
5991/***/ 940024:
5992/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5993
5994"use strict";
5995
5996var __importDefault = (this && this.__importDefault) || function (mod) {
5997    return (mod && mod.__esModule) ? mod : { "default": mod };
5998};
5999Object.defineProperty(exports, "__esModule", ({ value: true }));
6000exports.convertShopTimeToLocal = exports.convertUnixTimestampToLocal = exports.isExpired = exports.formatDate = exports.formatTimeByLocale = exports.getTimeFormatByLocale = exports.isDayInTheFuture = exports.getWeekOrMonthByLocale = exports.monthMomentLocaleFrenchMap = exports.weekdayMomentLocaleFrenchMap = exports.monthMomentMap = exports.weekdayMomentLocaleEnglishMap = void 0;
6001const moment_1 = __importDefault(__webpack_require__(730381));
6002const locale_1 = __webpack_require__(808439);
6003// mapping for moment().day()
6004exports.weekdayMomentLocaleEnglishMap = {
6005    0: 'Sunday',
6006    1: 'Monday',
6007    2: 'Tuesday',
6008    3: 'Wednesday',
6009    4: 'Thursday',
6010    5: 'Friday',
6011    6: 'Saturday',
6012};
6013// mapping for moment().month()
6014exports.monthMomentMap = {
6015    0: 'January',
6016    1: 'February',
6017    2: 'March',
6018    3: 'April',
6019    4: 'May',
6020    5: 'June',
6021    6: 'July',
6022    7: 'August',
6023    8: 'September',
6024    9: 'October',
6025    10: 'November',
6026    11: 'December',
6027};
6028// mapping french locale for moment().day()
6029exports.weekdayMomentLocaleFrenchMap = {
6030    0: 'Dimanche',
6031    1: 'Lundi',
6032    2: 'Mardi',
6033    3: 'Mercredi',
6034    4: 'Jeudi',
6035    5: 'Vendredi',
6036    6: 'Samedi',
6037};
6038// mapping french locale for moment().month()
6039exports.monthMomentLocaleFrenchMap = {
6040    0: 'Janvier',
6041    1: 'Février',
6042    2: 'Mars',
6043    3: 'Avril',
6044    4: 'Mai',
6045    5: 'Juin',
6046    6: 'Juillet',
6047    7: 'Août',
6048    8: 'Septembre',
6049    9: 'Octobre',
6050    10: 'Novembre',
6051    11: 'Décembre',
6052};
6053const getWeekOrMonthByLocale = (languageCode, key, type) => {
6054    if (languageCode === 'fr-CA') {
6055        return type === 'day'
6056            ? exports.weekdayMomentLocaleFrenchMap[key]
6057            : exports.monthMomentLocaleFrenchMap[key];
6058    }
6059    return type === 'day'
6060        ? exports.weekdayMomentLocaleEnglishMap[key]
6061        : exports.monthMomentMap[key];
6062};
6063exports.getWeekOrMonthByLocale = getWeekOrMonthByLocale;
6064const isDayInTheFuture = (today, date) => {
6065    return (0, moment_1.default)(today).isBefore(date, 'day');
6066};
6067exports.isDayInTheFuture = isDayInTheFuture;
6068const getTimeFormatByLocale = (languageCode) => {
6069    return languageCode === 'fr-CA' ? 'H A z' : 'h A z';
6070};
6071exports.getTimeFormatByLocale = getTimeFormatByLocale;
6072const formatTimeByLocale = (time, timezone, languageCode) => {
6073    const tzTime = time.tz(timezone);
6074    const hasMinutes = tzTime.minutes() !== 0;
6075    const format = languageCode === 'fr-CA'
6076        ? hasMinutes
6077            ? 'H:mm A z'
6078            : 'H A z'
6079        : hasMinutes
6080            ? 'h:mm A z'
6081            : 'h A z';
6082    return tzTime.format(format);
6083};
6084exports.formatTimeByLocale = formatTimeByLocale;
6085const formatDate = (date, options, languageCode = locale_1.LANGUAGE_CODE) => {
6086    const d = new Date(date);
6087    return d.toLocaleDateString(languageCode, options);
6088};
6089exports.formatDate = formatDate;
6090const isExpired = ({ expiration = 0 }) => {
6091    return (0, moment_1.default)().isAfter(moment_1.default.unix(expiration));
6092};
6093exports.isExpired = isExpired;
6094/**
6095 * Converts a Unix timestamp to a formatted local time string based on the current timezone.
6096 *
6097 * The returned string includes the hour (in 12-hour format with AM/PM), a label indicating
6098 * whether the date is "Today", "Tomorrow", or "Yesterday", and the month/day in MM/DD format.
6099 *
6100 * @param {number} unixTimestamp - The Unix timestamp (in seconds) to convert.
6101 * @returns {string} The formatted local time string, e.g., "3 PM, TODAY 04/27".
6102 */
6103const convertUnixTimestampToLocal = (unixTimestamp) => {
6104    // Convert the Unix timestamp to a moment object in the local timezone
6105    const date = moment_1.default.unix(unixTimestamp).local();
6106    const now = (0, moment_1.default)().local();
6107    let dayLabel;
6108    if (date.isSame(now, 'day')) {
6109        dayLabel = 'Today';
6110    }
6111    else if (date.isSame(now.clone().add(1, 'day'), 'day')) {
6112        dayLabel = 'Tomorrow';
6113    }
6114    else if (date.isSame(now.clone().subtract(1, 'day'), 'day')) {
6115        dayLabel = 'Yesterday';
6116    }
6117    else {
6118        // If it's not today, tomorrow, or yesterday, no special label
6119        dayLabel = '';
6120    }
6121    const monthDay = date.format('MM/DD');
6122    const hour = date.format('hA'); // Formats hour in 12-hour time with AM/PM
6123    // Combine the formatted strings
6124    const fullDay = dayLabel
6125        ? `${hour}, ${dayLabel.toUpperCase()} ${monthDay}`
6126        : `${hour}, ${monthDay}`;
6127    return fullDay; // Example: "3 PM, TODAY 04/27"
6128};
6129exports.convertUnixTimestampToLocal = convertUnixTimestampToLocal;
6130/**
6131 * Converts shop opening time information to a formatted local time string.
6132 *
6133 * If the shop is closed (shopTime.open is falsy), returns "Closed for Holiday".
6134 * Otherwise, returns a string in the format: "{openHour}AM, {Today|DayOfWeek} MM/DD"
6135 * where:
6136 *   - openHour is extracted from shopTime.startTime (assumes "HH:mm" format)
6137 *   - If today matches shopTime.day, "Today" is used, otherwise the current day of week is used
6138 *   - MM/DD is the current month and day
6139 *
6140 * @param {Object} shopTime - An object containing shop time information.
6141 * @param {string} shopTime.open - Indicates if the shop is open.
6142 * @param {string} shopTime.startTime - The shop's opening time in "HH:mm" format.
6143 * @param {string} shopTime.day - The day of the week the shop time refers to (e.g., "Monday").
6144 * @returns {string} The formatted shop opening time string or "Closed for Holiday".
6145 */
6146const convertShopTimeToLocal = (shopTime) => {
6147    if (!shopTime.open)
6148        return 'Closed for Holiday';
6149    const now = (0, moment_1.default)();
6150    const openTime = shopTime.startTime.split(':')[0];
6151    let shopOpenTime = `${openTime}AM`;
6152    const day = `${now.format('dddd') === shopTime.day ? 'Today' : now.format('dddd')} `;
6153    const monthDay = now.format('MM/DD');
6154    const fullDay = `${shopOpenTime},  ${day} ${monthDay}`;
6155    return fullDay; //"03 AM, TODAY 04/27"
6156};
6157exports.convertShopTimeToLocal = convertShopTimeToLocal;
6158
6159
6160/***/ }),
6161
6162/***/ 681063:
6163/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6164
6165"use strict";
6166
6167Object.defineProperty(exports, "__esModule", ({ value: true }));
6168exports.isTruthy = exports.isRegionIdValue = exports.isAllPodsConditionalRender = exports.isPodGlobalHeaderNotification = exports.isPodConditionalRender = exports.isContentfulAssetFile = exports.isLinkPod = exports.isImageSetType = exports.isIRichTextPod = exports.isIPodFlatText = exports.isMediaPod = void 0;
6169const zipcode_1 = __webpack_require__(935848);
6170const isMediaPod = (media) => media?.sys?.contentType?.sys?.id === 'mediaPod';
6171exports.isMediaPod = isMediaPod;
6172const isIPodFlatText = (content) => content?.fields?.textContent ? true : false;
6173exports.isIPodFlatText = isIPodFlatText;
6174const isIRichTextPod = (content) => content?.fields?.richTextContent?.content ? true : false;
6175exports.isIRichTextPod = isIRichTextPod;
6176const isImageSetType = (image) => {
6177    return image?.fields?.asset?.fields?.file;
6178};
6179exports.isImageSetType = isImageSetType;
6180const isLinkPod = (item) => item?.sys?.contentType?.sys?.id === 'linkPod';
6181exports.isLinkPod = isLinkPod;
6182const isContentfulAssetFile = (file) => {
6183    return file?.url;
6184};
6185exports.isContentfulAssetFile = isContentfulAssetFile;
6186const isPodConditionalRender = (element) => element?.sys?.contentType?.sys?.id === 'podConditionalRender';
6187exports.isPodConditionalRender = isPodConditionalRender;
6188const isPodGlobalHeaderNotification = (element) => element?.sys?.contentType?.sys?.id === 'globalHeaderNotification';
6189exports.isPodGlobalHeaderNotification = isPodGlobalHeaderNotification;
6190const isAllPodsConditionalRender = (elements) => elements?.every?.((el) => (0, exports.isPodConditionalRender)(el));
6191exports.isAllPodsConditionalRender = isAllPodsConditionalRender;
6192const isRegionIdValue = (value) => {
6193    return zipcode_1.RegionIdValues.some((el) => el === value);
6194};
6195exports.isRegionIdValue = isRegionIdValue;
6196const isTruthy = (value) => Boolean(value);
6197exports.isTruthy = isTruthy;
6198
6199
6200/***/ }),
6201
6202/***/ 781289:
6203/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6204
6205"use strict";
6206
6207var __importDefault = (this && this.__importDefault) || function (mod) {
6208    return (mod && mod.__esModule) ? mod : { "default": mod };
6209};
6210Object.defineProperty(exports, "__esModule", ({ value: true }));
6211exports.isSameUrl = exports.removeSpanishSubdomain = exports.addSpanishSubdomain = exports.isSpanishSubdomain = exports.getSearchParam = exports.removeSearchParam = exports.addSubdomain = exports.parseQueryParams = exports.removeQueryParams = exports.getFullPath = exports.amInLocalQaOrDevDomain = exports.amInStagingDomain = exports.amIFromOneOfTheseDomains = exports.getDomain = exports.wwwDestroyer = exports.domainSlasher = exports.removeTrailingPortFromDomain = exports.appendTrailingSlash = exports.sanitizeUrl = exports.removeTrailingSlash = exports.isThereATrailingSlash = exports.pathJoinHttp = void 0;
6212const path_1 = __importDefault(__webpack_require__(401864));
6213const commons_1 = __webpack_require__(820523);
6214const url_1 = __webpack_require__(771910);
6215const whereAmI_1 = __webpack_require__(837714);
6216const pathJoinHttp = (...args) => {
6217    let route = path_1.default.posix.join(...args);
6218    route = route.split(path_1.default.sep).join(path_1.default.posix.sep);
6219    if (route.includes('http') &&
6220        (!route.includes('http://') || !route.includes('https://'))) {
6221        route = route.replace(':/', '://');
6222    }
6223    return route;
6224};
6225exports.pathJoinHttp = pathJoinHttp;
6226// a string with a length of 1 that only contains a slash and nothing else will be excluded
6227// and thus return false
6228const isThereATrailingSlash = (string) => {
6229    const regex = /\/+$/;
6230    return string?.length > 1 && regex.test(string);
6231};
6232exports.isThereATrailingSlash = isThereATrailingSlash;
6233const removeTrailingSlash = (string) => {
6234    let newString = string;
6235    // do not remove anything if its a single character string such as "/"
6236    if (string?.length > 1) {
6237        newString = string.replace(/\/+$/, '');
6238    }
6239    return newString;
6240};
6241exports.removeTrailingSlash = removeTrailingSlash;
6242const sanitizeUrl = (url = '', { trailingSlash } = {
6243    trailingSlash: true,
6244}) => {
6245    const [protocol, restOfUrl = ''] = url.split('://');
6246    const normalizedPath = restOfUrl.replace(/\/\//g, '/');
6247    const sanitizedUrl = `${protocol}://${normalizedPath}`;
6248    return trailingSlash
6249        ? (0, exports.appendTrailingSlash)(sanitizedUrl)
6250        : (0, exports.removeTrailingSlash)(sanitizedUrl);
6251};
6252exports.sanitizeUrl = sanitizeUrl;
6253const appendTrailingSlash = (string) => {
6254    let newString = string;
6255    // do not append anything if its a single character string such as "/"
6256    if (string?.length > 1 && !(0, exports.isThereATrailingSlash)(string)) {
6257        newString = `${string}/`;
6258    }
6259    return newString;
6260};
6261exports.appendTrailingSlash = appendTrailingSlash;
6262const removeTrailingPortFromDomain = (string) => {
6263    let newString = string;
6264    const lastIndexOfColon = string.lastIndexOf(':');
6265    if (lastIndexOfColon > 0) {
6266        newString = string.slice(0, lastIndexOfColon);
6267    }
6268    return newString;
6269};
6270exports.removeTrailingPortFromDomain = removeTrailingPortFromDomain;
6271const domainSlasher = (url = '', preserveTrailingSlash = false) => {
6272    const slashCount = url?.split('/').length - 1;
6273    if (url?.length <= 1) {
6274        return url;
6275    }
6276    if (slashCount > 0) {
6277        let slashedDomain = url;
6278        if (url?.includes('http')) {
6279            slashedDomain = url?.split('/')[2];
6280        }
6281        else {
6282            slashedDomain = url?.split('/')[0];
6283        }
6284        if (preserveTrailingSlash) {
6285            // if there's a trailing slash in original url and we removed it, well then put it back since developer actually wants to keep it
6286            if ((0, exports.isThereATrailingSlash)(url)) {
6287                slashedDomain = `${slashedDomain}/`;
6288                slashedDomain = (0, exports.appendTrailingSlash)(slashedDomain);
6289            }
6290        }
6291        else {
6292            slashedDomain = (0, exports.removeTrailingSlash)(slashedDomain);
6293        }
6294        return slashedDomain;
6295    }
6296    return url;
6297};
6298exports.domainSlasher = domainSlasher;
6299const wwwDestroyer = (url) => {
6300    const weblessUrl = url;
6301    if (url?.includes('www.')) {
6302        return url?.replace('www.', '');
6303    }
6304    return weblessUrl;
6305};
6306exports.wwwDestroyer = wwwDestroyer;
6307const getDomain = (url, options = {}) => {
6308    const preserveTrailingSlash = options.preserveTrailingSlash ?? false;
6309    let domain = (0, exports.domainSlasher)(url, preserveTrailingSlash);
6310    if (!options?.preserveWww) {
6311        domain = (0, exports.wwwDestroyer)(domain);
6312    }
6313    if (options.removePort) {
6314        domain = (0, exports.removeTrailingPortFromDomain)(domain);
6315    }
6316    return domain;
6317};
6318exports.getDomain = getDomain;
6319const amIFromOneOfTheseDomains = (urls, options = {}) => {
6320    const thisDomain = (0, exports.getDomain)((0, whereAmI_1.whereAmI)(), options);
6321    return urls.some((thatUrl) => {
6322        return thisDomain === (0, exports.getDomain)(thatUrl, options);
6323    });
6324};
6325exports.amIFromOneOfTheseDomains = amIFromOneOfTheseDomains;
6326const amInStagingDomain = () => {
6327    return (0, exports.amIFromOneOfTheseDomains)([url_1.COMMERCE_TOOLS_DOMAINS.STAGING.US], {
6328        removePort: true,
6329    });
6330};
6331exports.amInStagingDomain = amInStagingDomain;
6332const amInLocalQaOrDevDomain = () => {
6333    return (0, exports.amIFromOneOfTheseDomains)([
6334        url_1.COMMERCE_TOOLS_DOMAINS.LOCAL,
6335        url_1.COMMERCE_TOOLS_DOMAINS.DEV.US,
6336        url_1.COMMERCE_TOOLS_DOMAINS.QA.US,
6337        url_1.COMMERCE_TOOLS_DOMAINS.DEV.CA,
6338        url_1.COMMERCE_TOOLS_DOMAINS.QA.CA,
6339    ], {
6340        removePort: true,
6341    });
6342};
6343exports.amInLocalQaOrDevDomain = amInLocalQaOrDevDomain;
6344const getFullPath = (asPath) => {
6345    const origin = typeof window !== 'undefined' && window.location.origin
6346        ? window.location.origin
6347        : '';
6348    return `${origin}${asPath}`;
6349};
6350exports.getFullPath = getFullPath;
6351const removeQueryParams = (url = '') => {
6352    const [path] = url.split('?');
6353    return path;
6354};
6355exports.removeQueryParams = removeQueryParams;
6356const parseQueryParams = (url) => {
6357    const queryParams = {};
6358    const queryString = url.split('?')[1];
6359    if (queryString) {
6360        const pairs = queryString.split('&');
6361        pairs.forEach((pair) => {
6362            const [key, value] = pair.split('=');
6363            queryParams[decodeURIComponent(key)] = decodeURIComponent(value);
6364        });
6365    }
6366    return queryParams;
6367};
6368exports.parseQueryParams = parseQueryParams;
6369const subdomainChecker = (subdomain) => (url) => {
6370    try {
6371        const urlObj = new URL(url);
6372        const hostname = urlObj.hostname;
6373        return hostname.startsWith(`${subdomain}.`);
6374    }
6375    catch (e) {
6376        return false;
6377    }
6378};
6379const removeSubdomain = (subdomain) => (url) => {
6380    try {
6381        const urlObj = new URL(url);
6382        const hostname = urlObj.hostname;
6383        if (hostname.startsWith(`${subdomain}.`)) {
6384            urlObj.hostname = hostname.replace(`${subdomain}.`, '');
6385        }
6386        return urlObj.href;
6387    }
6388    catch (e) {
6389        return '';
6390    }
6391};
6392const addSubdomain = (subdomain) => (url) => {
6393    try {
6394        const urlObj = new URL(url);
6395        const hostnameSegments = urlObj.hostname.split('.');
6396        if (hostnameSegments[0] !== subdomain) {
6397            hostnameSegments.unshift(subdomain);
6398            urlObj.hostname = hostnameSegments.join('.');
6399        }
6400        return urlObj.href;
6401    }
6402    catch (e) {
6403        return '';
6404    }
6405};
6406exports.addSubdomain = addSubdomain;
6407const removeSearchParam = (url, param) => {
6408    try {
6409        const urlObj = new URL(url);
6410        const searchParams = new URLSearchParams(urlObj.search);
6411        searchParams.delete(param);
6412        urlObj.search = searchParams.toString();
6413        return urlObj.href;
6414    }
6415    catch (e) {
6416        return '';
6417    }
6418};
6419exports.removeSearchParam = removeSearchParam;
6420const getSearchParam = (url, param) => {
6421    try {
6422        const urlObj = new URL(url);
6423        const searchParams = new URLSearchParams(urlObj.search);
6424        return searchParams.get(param);
6425    }
6426    catch (e) {
6427        return null;
6428    }
6429};
6430exports.getSearchParam = getSearchParam;
6431exports.isSpanishSubdomain = subdomainChecker(commons_1.LANGUAGE_SUBDOMAINS.ES);
6432exports.addSpanishSubdomain = (0, exports.addSubdomain)(commons_1.LANGUAGE_SUBDOMAINS.ES);
6433exports.removeSpanishSubdomain = removeSubdomain(commons_1.LANGUAGE_SUBDOMAINS.ES);
6434const isSameUrl = (url1, url2) => url1.replace(/\/$/, '') === url2.replace(/\/$/, '');
6435exports.isSameUrl = isSameUrl;
6436
6437
6438/***/ }),
6439
6440/***/ 848316:
6441/***/ (function(__unused_webpack_module, exports) {
6442
6443"use strict";
6444
6445Object.defineProperty(exports, "__esModule", ({ value: true }));
6446exports.keyIsNotIgnored = exports.areAllKeysPresent = exports.areAnyKeysPresent = exports.isKeyPresent = exports.isANumberThatIsNotEqualToTargetValue = exports.isANumberThatIsEqualToTargetValue = exports.isANumberThatIsLesserThanOrEqualToTargetValue = exports.isANumberThatIsLesserThanTargetValue = exports.isANumberThatIsGreaterThanOrEqualToTargetValue = exports.isANumberThatIsGreaterThanTargetValue = exports.parseIntOrFloat = exports.isANumber = exports.isArray = exports.isObject = exports.isTypeOf = void 0;
6447/**
6448 * @memberOf Utils.Types
6449 * @type {function}
6450 * @param {*} value
6451 * @param {string} type
6452 * @return {boolean}
6453 */
6454const isTypeOf = (value, type) => typeof value === type;
6455exports.isTypeOf = isTypeOf;
6456/**
6457 * @memberOf Utils.Types
6458 * @type {function}
6459 * @param {*} value
6460 * @return {boolean}
6461 */
6462const isObject = (value) => {
6463    return value && (0, exports.isTypeOf)(value, 'object') && !Array.isArray(value);
6464};
6465exports.isObject = isObject;
6466/**
6467 * @memberOf Utils.Types
6468 * @type {function}
6469 * @param {*} value
6470 * @return {boolean}
6471 */
6472const isArray = (value) => {
6473    return value && (0, exports.isTypeOf)(value, 'object') && Array.isArray(value);
6474};
6475exports.isArray = isArray;
6476// this function verifies if a value is a number or a string that can be converted to a valid number
6477// for a strict number type check, just simply use typeof value === "number"
6478const isANumber = (value, radix = 10) => {
6479    return !Number.isNaN(parseInt(value, radix));
6480};
6481exports.isANumber = isANumber;
6482const parseIntOrFloat = (value, radix = 10) => {
6483    let convertedValue;
6484    // convert from string to number as necessary
6485    if (typeof value === 'string') {
6486        if (value.includes('.')) {
6487            convertedValue = parseFloat(value); // parseFloat only accepts decimal numbers - it therefore does not take a radix
6488        }
6489        else {
6490            convertedValue = parseInt(value, radix);
6491        }
6492    }
6493    else {
6494        // value is already a number
6495        convertedValue = value;
6496    }
6497    return convertedValue;
6498};
6499exports.parseIntOrFloat = parseIntOrFloat;
6500const isANumberThatIsGreaterThanTargetValue = (value, targetValue = 0, radix = 10) => {
6501    let convertedValue;
6502    if ((0, exports.isANumber)(value, radix)) {
6503        // convert from string to number as necessary
6504        convertedValue = (0, exports.parseIntOrFloat)(value, radix);
6505        return (typeof convertedValue !== 'undefined' && convertedValue > targetValue);
6506    }
6507    else {
6508        return false;
6509    }
6510};
6511exports.isANumberThatIsGreaterThanTargetValue = isANumberThatIsGreaterThanTargetValue;
6512const isANumberThatIsGreaterThanOrEqualToTargetValue = (value, targetValue = 0, radix = 10) => {
6513    let convertedValue;
6514    if ((0, exports.isANumber)(value, radix)) {
6515        // convert from string to number as necessary
6516        convertedValue = (0, exports.parseIntOrFloat)(value, radix);
6517        return (typeof convertedValue !== 'undefined' && convertedValue >= targetValue);
6518    }
6519    else {
6520        return false;
6521    }
6522};
6523exports.isANumberThatIsGreaterThanOrEqualToTargetValue = isANumberThatIsGreaterThanOrEqualToTargetValue;
6524const isANumberThatIsLesserThanTargetValue = (value, targetValue = 0, radix = 10) => {
6525    let convertedValue;
6526    if ((0, exports.isANumber)(value, radix)) {
6527        // convert from string to number as necessary
6528        convertedValue = (0, exports.parseIntOrFloat)(value, radix);
6529        return (typeof convertedValue !== 'undefined' && convertedValue < targetValue);
6530    }
6531    else {
6532        return false;
6533    }
6534};
6535exports.isANumberThatIsLesserThanTargetValue = isANumberThatIsLesserThanTargetValue;
6536const isANumberThatIsLesserThanOrEqualToTargetValue = (value, targetValue = 0, radix = 10) => {
6537    let convertedValue;
6538    if ((0, exports.isANumber)(value, radix)) {
6539        // convert from string to number as necessary
6540        convertedValue = (0, exports.parseIntOrFloat)(value, radix);
6541        return (typeof convertedValue !== 'undefined' && convertedValue <= targetValue);
6542    }
6543    else {
6544        return false;
6545    }
6546};
6547exports.isANumberThatIsLesserThanOrEqualToTargetValue = isANumberThatIsLesserThanOrEqualToTargetValue;
6548const isANumberThatIsEqualToTargetValue = (value, targetValue = 0, radix = 10) => {
6549    let convertedValue;
6550    if ((0, exports.isANumber)(value, radix)) {
6551        // convert from string to number as necessary
6552        convertedValue = (0, exports.parseIntOrFloat)(value, radix);
6553        return convertedValue === targetValue;
6554    }
6555    else {
6556        return false;
6557    }
6558};
6559exports.isANumberThatIsEqualToTargetValue = isANumberThatIsEqualToTargetValue;
6560const isANumberThatIsNotEqualToTargetValue = (value, targetValue = 0, radix = 10) => {
6561    let convertedValue;
6562    if ((0, exports.isANumber)(value, radix)) {
6563        // convert from string to number as necessary
6564        convertedValue = (0, exports.parseIntOrFloat)(value, radix);
6565        return convertedValue !== targetValue;
6566    }
6567    else {
6568        return false;
6569    }
6570};
6571exports.isANumberThatIsNotEqualToTargetValue = isANumberThatIsNotEqualToTargetValue;
6572const isKeyPresent = (key, obj) => {
6573    return Object.keys(obj).some((k) => {
6574        return k === key;
6575    });
6576};
6577exports.isKeyPresent = isKeyPresent;
6578const areAnyKeysPresent = (keys, obj) => {
6579    return keys.some((key) => {
6580        return Object.keys(obj).some((k) => {
6581            return key === k;
6582        });
6583    });
6584};
6585exports.areAnyKeysPresent = areAnyKeysPresent;
6586const areAllKeysPresent = (keys, obj) => {
6587    return keys.every((key) => {
6588        return (0, exports.isKeyPresent)(key, obj);
6589    });
6590};
6591exports.areAllKeysPresent = areAllKeysPresent;
6592const keyIsNotIgnored = (key, ignoreKeys) => {
6593    let keyIsIgnored;
6594    if (ignoreKeys?.length) {
6595        keyIsIgnored = ignoreKeys.some((k) => {
6596            return k === key;
6597        });
6598    }
6599    else {
6600        keyIsIgnored = false;
6601    }
6602    return !keyIsIgnored;
6603};
6604exports.keyIsNotIgnored = keyIsNotIgnored;
6605
6606
6607/***/ }),
6608
6609/***/ 837714:
6610/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6611
6612"use strict";
6613
6614Object.defineProperty(exports, "__esModule", ({ value: true }));
6615exports.whereAmI = void 0;
6616const environment_1 = __webpack_require__(147718);
6617/*  due to the nature of static rendering
6618    this function should Not be used on initial render of the app
6619    without a fallback environment variable
6620*/
6621const whereAmI = () => {
6622    if (typeof document !== 'undefined') {
6623        return document?.location?.href ?? environment_1.nextAppEnvCommon.application.publicUrl;
6624    }
6625    else {
6626        return environment_1.nextAppEnvCommon.application.publicUrl ?? '';
6627    }
6628};
6629exports.whereAmI = whereAmI;
6630
6631
6632/***/ }),
6633
6634/***/ 435033:
6635/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6636
6637var __webpack_unused_export__;
6638/* provided dependency */ var process = __webpack_require__(683454);
6639__webpack_require__(291479);
6640var React = __webpack_require__(667294);
6641function _interopDefaultLegacy(e) {
6642    return e && typeof e === "object" && "default" in e ? e : {
6643        "default": e
6644    };
6645}
6646var React__default = /*#__PURE__*/ _interopDefaultLegacy(React);
6647/*
6648Based on Glamor's sheet
6649https://github.com/threepointone/glamor/blob/667b480d31b3721a905021b26e1290ce92ca2879/src/sheet.js
6650*/ function _defineProperties(target, props) {
6651    for(var i = 0; i < props.length; i++){
6652        var descriptor = props[i];
6653        descriptor.enumerable = descriptor.enumerable || false;
6654        descriptor.configurable = true;
6655        if ("value" in descriptor) descriptor.writable = true;
6656        Object.defineProperty(target, descriptor.key, descriptor);
6657    }
6658}
6659function _createClass(Constructor, protoProps, staticProps) {
6660    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
6661    if (staticProps) _defineProperties(Constructor, staticProps);
6662    return Constructor;
6663}
6664var isProd = typeof process !== "undefined" && process.env && "production" === "production";
6665var isString = function(o) {
6666    return Object.prototype.toString.call(o) === "[object String]";
6667};
6668var StyleSheet = /*#__PURE__*/ function() {
6669    function StyleSheet(param) {
6670        var ref = param === void 0 ? {}
6670 : param, _name = ref.name, name = _name === void 0 ? "stylesheet" : _name, _optimizeForSpeed = ref.optimizeForSpeed, optimizeForSpeed = _optimizeForSpeed === void 0 ? isProd : _optimizeForSpeed;
6671        invariant$1(isString(name), "`name` must be a string");
6672        this._name = name;
6673        this._deletedRulePlaceholder = "#" + name + "-deleted-rule____{}";
6674        invariant$1(typeof optimizeForSpeed === "boolean", "`optimizeForSpeed` must be a boolean");
6675        this._optimizeForSpeed = optimizeForSpeed;
6676        this._serverSheet = undefined;
6677        this._tags = [];
6678        this._injected = false;
6679        this._rulesCount = 0;
6680        var node =  true && document.querySelector('meta[property="csp-nonce"]');
6681        this._nonce = node ? node.getAttribute("content") : null;
6682    }
6683    var _proto = StyleSheet.prototype;
6684    _proto.setOptimizeForSpeed = function setOptimizeForSpeed(bool) {
6685        invariant$1(typeof bool === "boolean", "`setOptimizeForSpeed` accepts a boolean");
6686        invariant$1(this._rulesCount === 0, "optimizeForSpeed cannot be when rules have already been inserted");
6687        this.flush();
6688        this._optimizeForSpeed = bool;
6689        this.inject();
6690    };
6691    _proto.isOptimizeForSpeed = function isOptimizeForSpeed() {
6692        return this._optimizeForSpeed;
6693    };
6694    _proto.inject = function inject() {
6695        var _this = this;
6696        invariant$1(!this._injected, "sheet already injected");
6697        this._injected = true;
6698        if ( true && this._optimizeForSpeed) {
6699            this._tags[0] = this.makeStyleTag(this._name);
6700            this._optimizeForSpeed = "insertRule" in this.getSheet();
6701            if (!this._optimizeForSpeed) {
6702                if (!isProd) {
6703                    console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode.");
6704                }
6705                this.flush();
6706                this._injected = true;
6707            }
6708            return;
6709        }
6710        this._serverSheet = {
6711            cssRules: [],
6712            insertRule: function(rule, index) {
6713                if (typeof index === "number") {
6714                    _this._serverSheet.cssRules[index] = {
6715                        cssText: rule
6716                    };
6717                } else {
6718                    _this._serverSheet.cssRules.push({
6719                        cssText: rule
6720                    });
6721                }
6722                return index;
6723            },
6724            deleteRule: function(index) {
6725                _this._serverSheet.cssRules[index] = null;
6726            }
6727        };
6728    };
6729    _proto.getSheetForTag = function getSheetForTag(tag) {
6730        if (tag.sheet) {
6731            return tag.sheet;
6732        }
6733        // this weirdness brought to you by firefox
6734        for(var i = 0; i < document.styleSheets.length; i++){
6735            if (document.styleSheets[i].ownerNode === tag) {
6736                return document.styleSheets[i];
6737            }
6738        }
6739    };
6740    _proto.getSheet = function getSheet() {
6741        return this.getSheetForTag(this._tags[this._tags.length - 1]);
6742    };
6743    _proto.insertRule = function insertRule(rule, index) {
6744        invariant$1(isString(rule), "`insertRule` accepts only strings");
6745        if (false) {}
6746        if (this._optimizeForSpeed) {
6747            var sheet = this.getSheet();
6748            if (typeof index !== "number") {
6749                index = sheet.cssRules.length;
6750            }
6751            // this weirdness for perf, and chrome's weird bug
6752            // https://stackoverflow.com/questions/20007992/chrome-suddenly-stopped-accepting-insertrule
6753            try {
6754                sheet.insertRule(rule, index);
6755            } catch (error) {
6756                if (!isProd) {
6757                    console.warn("StyleSheet: illegal rule: \n\n" + rule + "\n\nSee https://stackoverflow.com/q/20007992 for more info");
6758                }
6759                return -1;
6760            }
6761        } else {
6762            var insertionPoint = this._tags[index];
6763            this._tags.push(this.makeStyleTag(this._name, rule, insertionPoint));
6764        }
6765        return this._rulesCount++;
6766    };
6767    _proto.replaceRule = function replaceRule(index, rule) {
6768        if (this._optimizeForSpeed || "object" === "undefined") {
6769            var sheet =  true ? this.getSheet() : 0;
6770            if (!rule.trim()) {
6771                rule = this._deletedRulePlaceholder;
6772            }
6773            if (!sheet.cssRules[index]) {
6774                // @TBD Should we throw an error?
6775                return index;
6776            }
6777            sheet.deleteRule(index);
6778            try {
6779                sheet.insertRule(rule, index);
6780            } catch (error) {
6781                if (!isProd) {
6782                    console.warn("StyleSheet: illegal rule: \n\n" + rule + "\n\nSee https://stackoverflow.com/q/20007992 for more info");
6783                }
6784                // In order to preserve the indices we insert a deleteRulePlaceholder
6785                sheet.insertRule(this._deletedRulePlaceholder, index);
6786            }
6787        } else {
6788            var tag = this._tags[index];
6789            invariant$1(tag, "old rule at index `" + index + "` not found");
6790            tag.textContent = rule;
6791        }
6792        return index;
6793    };
6794    _proto.deleteRule = function deleteRule(index) {
6795        if (false) {}
6796        if (this._optimizeForSpeed) {
6797            this.replaceRule(index, "");
6798        } else {
6799            var tag = this._tags[index];
6800            invariant$1(tag, "rule at index `" + index + "` not found");
6801            tag.parentNode.removeChild(tag);
6802            this._tags[index] = null;
6803        }
6804    };
6805    _proto.flush = function flush() {
6806        this._injected = false;
6807        this._rulesCount = 0;
6808        if (true) {
6809            this._tags.forEach(function(tag) {
6810                return tag && tag.parentNode.removeChild(tag);
6811            });
6812            this._tags = [];
6813        } else {}
6814    };
6815    _proto.cssRules = function cssRules() {
6816        var _this = this;
6817        if (false) {}
6818        return this._tags.reduce(function(rules, tag) {
6819            if (tag) {
6820                rules = rules.concat(Array.prototype.map.call(_this.getSheetForTag(tag).cssRules, function(rule) {
6821                    return rule.cssText === _this._deletedRulePlaceholder ? null : rule;
6822                }));
6823            } else {
6824                rules.push(null);
6825            }
6826            return rules;
6827        }, []);
6828    };
6829    _proto.makeStyleTag = function makeStyleTag(name, cssString, relativeToTag) {
6830        if (cssString) {
6831            invariant$1(isString(cssString), "makeStyleTag accepts only strings as second parameter");
6832        }
6833        var tag = document.createElement("style");
6834        if (this._nonce) tag.setAttribute("nonce", this._nonce);
6835        tag.type = "text/css";
6836        tag.setAttribute("data-" + name, "");
6837        if (cssString) {
6838            tag.appendChild(document.createTextNode(cssString));
6839        }
6840        var head = document.head || document.getElementsByTagName("head")[0];
6841        if (relativeToTag) {
6842            head.insertBefore(tag, relativeToTag);
6843        } else {
6844            head.appendChild(tag);
6845        }
6846        return tag;
6847    };
6848    _createClass(StyleSheet, [
6849        {
6850            key: "length",
6851            get: function get() {
6852                return this._rulesCount;
6853            }
6854        }
6855    ]);
6856    return StyleSheet;
6857}();
6858function invariant$1(condition, message) {
6859    if (!condition) {
6860        throw new Error("StyleSheet: " + message + ".");
6861    }
6862}
6863function hash(str) {
6864    var _$hash = 5381, i = str.length;
6865    while(i){
6866        _$hash = _$hash * 33 ^ str.charCodeAt(--i);
6867    }
6868    /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed
6869   * integers. Since we want the results to be always positive, convert the
6870   * signed int to an unsigned by doing an unsigned bitshift. */ return _$hash >>> 0;
6871}
6872var stringHash = hash;
6873var sanitize = function(rule) {
6874    return rule.replace(/\/style/gi, "\\/style");
6875};
6876var cache = {};
6877/**
6878 * computeId
6879 *
6880 * Compute and memoize a jsx id from a basedId and optionally props.
6881 */ function computeId(baseId, props) {
6882    if (!props) {
6883        return "jsx-" + baseId;
6884    }
6885    var propsToString = String(props);
6886    var key = baseId + propsToString;
6887    if (!cache[key]) {
6888        cache[key] = "jsx-" + stringHash(baseId + "-" + propsToString);
6889    }
6890    return cache[key];
6891}
6892/**
6893 * computeSelector
6894 *
6895 * Compute and memoize dynamic selectors.
6896 */ function computeSelector(id, css) {
6897    var selectoPlaceholderRegexp = /__jsx-style-dynamic-selector/g;
6898    // Sanitize SSR-ed CSS.
6899    // Client side code doesn't need to be sanitized since we use
6900    // document.createTextNode (dev) and the CSSOM api sheet.insertRule (prod).
6901    if (false) {}
6902    var idcss = id + css;
6903    if (!cache[idcss]) {
6904        cache[idcss] = css.replace(selectoPlaceholderRegexp, id);
6905    }
6906    return cache[idcss];
6907}
6908function mapRulesToStyle(cssRules, options) {
6909    if (options === void 0) options = {};
6910    return cssRules.map(function(args) {
6911        var id = args[0];
6912        var css = args[1];
6913        return /*#__PURE__*/ React__default["default"].createElement("style", {
6914            id: "__" + id,
6915            // Avoid warnings upon render with a key
6916            key: "__" + id,
6917            nonce: options.nonce ? options.nonce : undefined,
6918            dangerouslySetInnerHTML: {
6919                __html: css
6920            }
6921        });
6922    });
6923}
6924var StyleSheetRegistry = /*#__PURE__*/ function() {
6925    function StyleSheetRegistry(param) {
6926        var ref = param === void 0 ? {} : param, _styleSheet = ref.styleSheet, styleSheet = _styleSheet === void 0 ? null : _styleSheet, _optimizeForSpeed = ref.optimizeForSpeed, optimizeForSpeed = _optimizeForSpeed === void 0 ? false : _optimizeForSpeed;
6927        this._sheet = styleSheet || new StyleSheet({
6928            name: "styled-jsx",
6929            optimizeForSpeed: optimizeForSpeed
6930        });
6931        this._sheet.inject();
6932        if (styleSheet && typeof optimizeForSpeed === "boolean") {
6933            this._sheet.setOptimizeForSpeed(optimizeForSpeed);
6934            this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();
6935        }
6936        this._fromServer = undefined;
6937        this._indices = {};
6938        this._instancesCounts = {};
6939    }
6940    var _proto = StyleSheetRegistry.prototype;
6941    _proto.add = function add(props) {
6942        var _this = this;
6943        if (undefined === this._optimizeForSpeed) {
6944            this._optimizeForSpeed = Array.isArray(props.children);
6945            this._sheet.setOptimizeForSpeed(this._optimizeForSpeed);
6946            this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();
6947        }
6948        if ( true && !this._fromServer) {
6949            this._fromServer = this.selectFromServer();
6950            this._instancesCounts = Object.keys(this._fromServer).reduce(function(acc, tagName) {
6951                acc[tagName] = 0;
6952                return acc;
6953            }, {});
6954        }
6955        var ref = this.getIdAndRules(props), styleId = ref.styleId, rules = ref.rules;
6956        // Deduping: just increase the instances count.
6957        if (styleId in this._instancesCounts) {
6958            this._instancesCounts[styleId] += 1;
6959            return;
6960        }
6961        var indices = rules.map(function(rule) {
6962            return _this._sheet.insertRule(rule);
6963        }) // Filter out invalid rules
6964        .filter(function(index) {
6965            return index !== -1;
6966        });
6967        this._indices[styleId] = indices;
6968        this._instancesCounts[styleId] = 1;
6969    };
6970    _proto.remove = function remove(props) {
6971        var _this = this;
6972        var styleId = this.getIdAndRules(props).styleId;
6973        invariant(styleId in this._instancesCounts, "styleId: `" + styleId + "` not found");
6974        this._instancesCounts[styleId] -= 1;
6975        if (this._instancesCounts[styleId] < 1) {
6976            var tagFromServer = this._fromServer && this._fromServer[styleId];
6977            if (tagFromServer) {
6978                tagFromServer.parentNode.removeChild(tagFromServer);
6979                delete this._fromServer[styleId];
6980            } else {
6981                this._indices[styleId].forEach(function(index) {
6982                    return _this._sheet.deleteRule(index);
6983                });
6984                delete this._indices[styleId];
6985            }
6986            delete this._instancesCounts[styleId];
6987        }
6988    };
6989    _proto.update = function update(props, nextProps) {
6990        this.add(nextProps);
6991        this.remove(props);
6992    };
6993    _proto.flush = function flush() {
6994        this._sheet.flush();
6995        this._sheet.inject();
6996        this._fromServer = undefined;
6997        this._indices = {};
6998        this._instancesCounts = {};
6999    };
7000    _proto.cssRules = function cssRules() {
7001        var _this = this;
7002        var fromServer = this._fromServer ? Object.keys(this._fromServer).map(function(styleId) {
7003            return [
7004                styleId,
7005                _this._fromServer[styleId]
7006            ];
7007        }) : [];
7008        var cssRules = this._sheet.cssRules();
7009        return fromServer.concat(Object.keys(this._indices).map(function(styleId) {
7010            return [
7011                styleId,
7012                _this._indices[styleId].map(function(index) {
7013                    return cssRules[index].cssText;
7014                }).join(_this._optimizeForSpeed ? "" : "\n")
7015            ];
7016        }) // filter out empty rules
7017        .filter(function(rule) {
7018            return Boolean(rule[1]);
7019        }));
7020    };
7021    _proto.styles = function styles(options) {
7022        return mapRulesToStyle(this.cssRules(), options);
7023    };
7024    _proto.getIdAndRules = function getIdAndRules(props) {
7025        var css = props.children, dynamic = props.dynamic, id = props.id;
7026        if (dynamic) {
7027            var styleId = computeId(id, dynamic);
7028            return {
7029                styleId: styleId,
7030                rules: Array.isArray(css) ? css.map(function(rule) {
7031                    return computeSelector(styleId, rule);
7032                }) : [
7033                    computeSelector(styleId, css)
7034                ]
7035            };
7036        }
7037        return {
7038            styleId: computeId(id),
7039            rules: Array.isArray(css) ? css : [
7040                css
7041            ]
7042        };
7043    };
7044    /**
7045   * selectFromServer
7046   *
7047   * Collects style tags from the document with id __jsx-XXX
7048   */ _proto.selectFromServer = function selectFromServer() {
7049        var elements = Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]'));
7050        return elements.reduce(function(acc, element) {
7051            var id = element.id.slice(2);
7052            acc[id] = element;
7053            return acc;
7054        }, {});
7055    };
7056    return StyleSheetRegistry;
7057}();
7058function invariant(condition, message) {
7059    if (!condition) {
7060        throw new Error("StyleSheetRegistry: " + message + ".");
7061    }
7062}
7063var StyleSheetContext = /*#__PURE__*/ React.createContext(null);
7064StyleSheetContext.displayName = "StyleSheetContext";
7065function createStyleRegistry() {
7066    return new StyleSheetRegistry();
7067}
7068function StyleRegistry(param) {
7069    var configuredRegistry = param.registry, children = param.children;
7070    var rootRegistry = React.useContext(StyleSheetContext);
7071    var ref = React.useState(function() {
7072        return rootRegistry || configuredRegistry || createStyleRegistry();
7073    }), registry = ref[0];
7074    return /*#__PURE__*/ React__default["default"].createElement(StyleSheetContext.Provider, {
7075        value: registry
7076    }, children);
7077}
7078function useStyleRegistry() {
7079    return React.useContext(StyleSheetContext);
7080}
7081// Opt-into the new `useInsertionEffect` API in React 18, fallback to `useLayoutEffect`.
7082// https://github.com/reactwg/react-18/discussions/110
7083var useInsertionEffect = React__default["default"].useInsertionEffect || React__default["default"].useLayoutEffect;
7084var defaultRegistry =  true ? createStyleRegistry() : 0;
7085function JSXStyle(props) {
7086    var registry = defaultRegistry ? defaultRegistry : useStyleRegistry();
7087    // If `registry` does not exist, we do nothing here.
7088    if (!registry) {
7089        return null;
7090    }
7091    if (false) {}
7092    useInsertionEffect(function() {
7093        registry.add(props);
7094        return function() {
7095            registry.remove(props);
7096        };
7097    // props.children can be string[], will be striped since id is identical
7098    }, [
7099        props.id,
7100        String(props.dynamic)
7101    ]);
7102    return null;
7103}
7104JSXStyle.dynamic = function(info) {
7105    return info.map(function(tagInfo) {
7106        var baseId = tagInfo[0];
7107        var props = tagInfo[1];
7108        return computeId(baseId, props);
7109    }).join(" ");
7110};
7111__webpack_unused_export__ = StyleRegistry;
7112__webpack_unused_export__ = createStyleRegistry;
7113exports.style = JSXStyle;
7114__webpack_unused_export__ = useStyleRegistry;
7115
7116
7117/***/ }),
7118
7119/***/ 369554:
7120/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7121
7122"use strict";
7123
7124module.exports = __webpack_require__(435033).style;
7125
7126
7127/***/ }),
7128
7129/***/ 173338:
7130/***/ (function() {
7131
7132// extracted by mini-css-extract-plugin
7133
7134/***/ }),
7135
7136/***/ 736501:
7137/***/ (function() {
7138
7139// extracted by mini-css-extract-plugin
7140
7141/***/ }),
7142
7143/***/ 794971:
7144/***/ (function() {
7145
7146// extracted by mini-css-extract-plugin
7147
7148/***/ }),
7149
7150/***/ 166688:
7151/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7152
7153"use strict";
7154__webpack_require__.r(__webpack_exports__);
7155/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7156/* harmony export */   Field: function() { return /* binding */ Field; },
7157/* harmony export */   Form: function() { return /* binding */ ReactFinalForm; },
7158/* harmony export */   FormSpy: function() { return /* binding */ FormSpy; },
7159/* harmony export */   useField: function() { return /* binding */ useField; },
7160/* harmony export */   useForm: function() { return /* binding */ useForm; },
7161/* harmony export */   useFormState: function() { return /* binding */ useFormState; },
7162/* harmony export */   version: function() { return /* binding */ version; },
7163/* harmony export */   withTypes: function() { return /* binding */ withTypes; }
7164/* harmony export */ });
7165/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(487462);
7166/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(263366);
7167/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(667294);
7168/* harmony import */ var final_form__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(695142);
7169
7170
7171
7172
7173
7174
7175var _excluded$3 = ["render", "children", "component"];
7176// shared logic between components that use either render prop,
7177// children render function, or component prop
7178function renderComponent(props, lazyProps, name) {
7179  var render = props.render,
7180      children = props.children,
7181      component = props.component,
7182      rest = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(props, _excluded$3);
7183
7184  if (component) {
7185    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(component, Object.assign(lazyProps, rest, {
7186      children: children,
7187      render: render
7188    }));
7189  }
7190
7191  if (render) {
7192    return render(children === undefined ? Object.assign(lazyProps, rest) : // inject children back in
7193    Object.assign(lazyProps, rest, {
7194      children: children
7195    }));
7196  }
7197
7198  if (typeof children !== "function") {
7199    throw new Error("Must specify either a render prop, a render function as children, or a component prop to " + name);
7200  }
7201
7202  return children(Object.assign(lazyProps, rest));
7203}
7204
7205function useWhenValueChanges(value, callback, isEqual) {
7206  if (isEqual === void 0) {
7207    isEqual = function isEqual(a, b) {
7208      return a === b;
7209    };
7210  }
7211
7212  var previous = react__WEBPACK_IMPORTED_MODULE_0__.useRef(value);
7213  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
7214    if (!isEqual(value, previous.current)) {
7215      callback();
7216      previous.current = value;
7217    }
7218  });
7219}
7220
7221/**
7222 * A simple hook to create a constant value that lives for
7223 * the lifetime of the component.
7224 *
7225 * Plagiarized from https://github.com/Andarist/use-constant
7226 *
7227 * Do NOT reuse this code unless you know what you're doing.
7228 * Use Andarist's hook; it's more fault tolerant to things like
7229 * falsy values.
7230 *
7231 * @param {Function} init - A function to generate the value
7232 */
7233
7234function useConstant(init) {
7235  var ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef();
7236
7237  if (!ref.current) {
7238    ref.current = init();
7239  }
7240
7241  return ref.current;
7242}
7243
7244var shallowEqual = function shallowEqual(a, b) {
7245  if (a === b) {
7246    return true;
7247  }
7248
7249  if (typeof a !== "object" || !a || typeof b !== "object" || !b) {
7250    return false;
7251  }
7252
7253  var keysA = Object.keys(a);
7254  var keysB = Object.keys(b);
7255
7256  if (keysA.length !== keysB.length) {
7257    return false;
7258  }
7259
7260  var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(b);
7261
7262  for (var idx = 0; idx < keysA.length; idx++) {
7263    var key = keysA[idx];
7264
7265    if (!bHasOwnProperty(key) || a[key] !== b[key]) {
7266      return false;
7267    }
7268  }
7269
7270  return true;
7271};
7272
7273var isSyntheticEvent = function isSyntheticEvent(candidate) {
7274  return !!(candidate && typeof candidate.stopPropagation === "function");
7275};
7276
7277var ReactFinalFormContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext();
7278
7279function useLatest(value) {
7280  var ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(value);
7281  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
7282    ref.current = value;
7283  });
7284  return ref;
7285}
7286
7287var version = "6.5.8";
7288
7289var addLazyState = function addLazyState(dest, state, keys) {
7290  keys.forEach(function (key) {
7291    Object.defineProperty(dest, key, {
7292      get: function get() {
7293        return state[key];
7294      },
7295      enumerable: true
7296    });
7297  });
7298};
7299
7300var addLazyFormState = function addLazyFormState(dest, state) {
7301  return addLazyState(dest, state, ["active", "dirty", "dirtyFields", "dirtySinceLastSubmit", "dirtyFieldsSinceLastSubmit", "error", "errors", "hasSubmitErrors", "hasValidationErrors", "initialValues", "invalid", "modified", "modifiedSinceLastSubmit", "pristine", "submitError", "submitErrors", "submitFailed", "submitSucceeded", "submitting", "touched", "valid", "validating", "values", "visited"]);
7302};
7303var addLazyFieldMetaState = function addLazyFieldMetaState(dest, state) {
7304  return addLazyState(dest, state, ["active", "data", "dirty", "dirtySinceLastSubmit", "error", "initial", "invalid", "length", "modified", "modifiedSinceLastSubmit", "pristine", "submitError", "submitFailed", "submitSucceeded", "submitting", "touched", "valid", "validating", "visited"]);
7305};
7306
7307var _excluded$2 = ["debug", "decorators", "destroyOnUnregister", "form", "initialValues", "initialValuesEqual", "keepDirtyOnReinitialize", "mutators", "onSubmit", "subscription", "validate", "validateOnBlur"];
7308var versions = {
7309  "final-form": final_form__WEBPACK_IMPORTED_MODULE_1__/* .version */ .i8,
7310  "react-final-form": version
7311};
7312var all$1 = final_form__WEBPACK_IMPORTED_MODULE_1__/* .formSubscriptionItems */ ._R.reduce(function (result, key) {
7313  result[key] = true;
7314  return result;
7315}, {});
7316
7317function ReactFinalForm(_ref) {
7318  var debug = _ref.debug,
7319      _ref$decorators = _ref.decorators,
7320      decorators = _ref$decorators === void 0 ? [] : _ref$decorators,
7321      destroyOnUnregister = _ref.destroyOnUnregister,
7322      alternateFormApi = _ref.form,
7323      initialValues = _ref.initialValues,
7324      initialValuesEqual = _ref.initialValuesEqual,
7325      keepDirtyOnReinitialize = _ref.keepDirtyOnReinitialize,
7326      mutators = _ref.mutators,
7327      onSubmit = _ref.onSubmit,
7328      _ref$subscription = _ref.subscription,
7329      subscription = _ref$subscription === void 0 ? all$1 : _ref$subscription,
7330      validate = _ref.validate,
7331      validateOnBlur = _ref.validateOnBlur,
7332      rest = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(_ref, _excluded$2);
7333
7334  var config = {
7335    debug: debug,
7336    destroyOnUnregister: destroyOnUnregister,
7337    initialValues: initialValues,
7338    keepDirtyOnReinitialize: keepDirtyOnReinitialize,
7339    mutators: mutators,
7340    onSubmit: onSubmit,
7341    validate: validate,
7342    validateOnBlur: validateOnBlur
7343  };
7344  var form = useConstant(function () {
7345    var f = alternateFormApi || (0,final_form__WEBPACK_IMPORTED_MODULE_1__/* .createForm */ .Np)(config); // pause validation until children register all fields on first render (unpaused in useEffect() below)
7346
7347    f.pauseValidation();
7348    return f;
7349  }); // synchronously register and unregister to query form state for our subscription on first render
7350
7351  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(function () {
7352    var initialState = {};
7353    form.subscribe(function (state) {
7354      initialState = state;
7355    }, subscription)();
7356    return initialState;
7357  }),
7358      state = _React$useState[0],
7359      setState = _React$useState[1]; // save a copy of state that can break through the closure
7360  // on the shallowEqual() line below.
7361
7362
7363  var stateRef = useLatest(state);
7364  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
7365    // We have rendered, so all fields are now registered, so we can unpause validation
7366    form.isValidationPaused() && form.resumeValidation();
7367    var unsubscriptions = [form.subscribe(function (s) {
7368      if (!shallowEqual(s, stateRef.current)) {
7369        setState(s);
7370      }
7371    }, subscription)].concat(decorators ? decorators.map(function (decorator) {
7372      return (// this noop ternary is to appease the flow gods
7373        // istanbul ignore next
7374        decorator(form)
7375      );
7376    }) : []);
7377    return function () {
7378      form.pauseValidation(); // pause validation so we don't revalidate on every field deregistration
7379
7380      unsubscriptions.reverse().forEach(function (unsubscribe) {
7381        return unsubscribe();
7382      }); // don't need to resume validation here; either unmounting, or will re-run this hook with new deps
7383    }; // eslint-disable-next-line react-hooks/exhaustive-deps
7384  }, decorators); // warn about decorator changes
7385  // istanbul ignore next
7386
7387  if (false) {} // allow updatable config
7388
7389
7390  useWhenValueChanges(debug, function () {
7391    form.setConfig("debug", debug);
7392  });
7393  useWhenValueChanges(destroyOnUnregister, function () {
7394    form.destroyOnUnregister = !!destroyOnUnregister;
7395  });
7396  useWhenValueChanges(keepDirtyOnReinitialize, function () {
7397    form.setConfig("keepDirtyOnReinitialize", keepDirtyOnReinitialize);
7398  });
7399  useWhenValueChanges(initialValues, function () {
7400    form.setConfig("initialValues", initialValues);
7401  }, initialValuesEqual || shallowEqual);
7402  useWhenValueChanges(mutators, function () {
7403    form.setConfig("mutators", mutators);
7404  });
7405  useWhenValueChanges(onSubmit, function () {
7406    form.setConfig("onSubmit", onSubmit);
7407  });
7408  useWhenValueChanges(validate, function () {
7409    form.setConfig("validate", validate);
7410  });
7411  useWhenValueChanges(validateOnBlur, function () {
7412    form.setConfig("validateOnBlur", validateOnBlur);
7413  });
7414
7415  var handleSubmit = function handleSubmit(event) {
7416    if (event) {
7417      // sometimes not true, e.g. React Native
7418      if (typeof event.preventDefault === "function") {
7419        event.preventDefault();
7420      }
7421
7422      if (typeof event.stopPropagation === "function") {
7423        // prevent any outer forms from receiving the event too
7424        event.stopPropagation();
7425      }
7426    }
7427
7428    return form.submit();
7429  };
7430
7431  var renderProps = {
7432    form: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({}, form, {
7433      reset: function reset(eventOrValues) {
7434        if (isSyntheticEvent(eventOrValues)) {
7435          // it's a React SyntheticEvent, call reset with no arguments
7436          form.reset();
7437        } else {
7438          form.reset(eventOrValues);
7439        }
7440      }
7441    }),
7442    handleSubmit: handleSubmit
7443  };
7444  addLazyFormState(renderProps, state);
7445  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(ReactFinalFormContext.Provider, {
7446    value: form
7447  }, renderComponent((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({}, rest, {
7448    __versions: versions
7449  }), renderProps, "ReactFinalForm"));
7450}
7451
7452function useForm(componentName) {
7453  var form = react__WEBPACK_IMPORTED_MODULE_0__.useContext(ReactFinalFormContext);
7454
7455  if (!form) {
7456    throw new Error((componentName || "useForm") + " must be used inside of a <Form> component");
7457  }
7458
7459  return form;
7460}
7461
7462function useFormState(_temp) {
7463  var _ref = _temp === void 0 ? {} : _temp,
7464      onChange = _ref.onChange,
7465      _ref$subscription = _ref.subscription,
7466      subscription = _ref$subscription === void 0 ? all$1 : _ref$subscription;
7467
7468  var form = useForm("useFormState");
7469  var firstRender = react__WEBPACK_IMPORTED_MODULE_0__.useRef(true);
7470  var onChangeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(onChange);
7471  onChangeRef.current = onChange; // synchronously register and unregister to query field state for our subscription on first render
7472
7473  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(function () {
7474    var initialState = {};
7475    form.subscribe(function (state) {
7476      initialState = state;
7477    }, subscription)();
7478
7479    if (onChange) {
7480      onChange(initialState);
7481    }
7482
7483    return initialState;
7484  }),
7485      state = _React$useState[0],
7486      setState = _React$useState[1];
7487
7488  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
7489    return form.subscribe(function (newState) {
7490      if (firstRender.current) {
7491        firstRender.current = false;
7492      } else {
7493        setState(newState);
7494
7495        if (onChangeRef.current) {
7496          onChangeRef.current(newState);
7497        }
7498      }
7499    }, subscription);
7500  }, // eslint-disable-next-line react-hooks/exhaustive-deps
7501  []);
7502  var lazyState = {};
7503  addLazyFormState(lazyState, state);
7504  return lazyState;
7505}
7506
7507var _excluded$1 = ["onChange", "subscription"];
7508
7509function FormSpy(_ref) {
7510  var onChange = _ref.onChange,
7511      subscription = _ref.subscription,
7512      rest = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(_ref, _excluded$1);
7513
7514  var reactFinalForm = useForm("FormSpy");
7515  var state = useFormState({
7516    onChange: onChange,
7517    subscription: subscription
7518  });
7519
7520  if (onChange) {
7521    return null;
7522  }
7523
7524  var renderProps = {
7525    form: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({}, reactFinalForm, {
7526      reset: function reset(eventOrValues) {
7527        if (isSyntheticEvent(eventOrValues)) {
7528          // it's a React SyntheticEvent, call reset with no arguments
7529          reactFinalForm.reset();
7530        } else {
7531          reactFinalForm.reset(eventOrValues);
7532        }
7533      }
7534    })
7535  };
7536  return renderComponent((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({}, rest, renderProps), state, "FormSpy");
7537}
7538
7539var isReactNative = typeof window !== "undefined" && window.navigator && window.navigator.product && window.navigator.product === "ReactNative";
7540
7541var getSelectedValues = function getSelectedValues(options) {
7542  var result = [];
7543
7544  if (options) {
7545    for (var index = 0; index < options.length; index++) {
7546      var option = options[index];
7547
7548      if (option.selected) {
7549        result.push(option.value);
7550      }
7551    }
7552  }
7553
7554  return result;
7555};
7556
7557var getValue = function getValue(event, currentValue, valueProp, isReactNative) {
7558  if (!isReactNative && event.nativeEvent && event.nativeEvent.text !== undefined) {
7559    return event.nativeEvent.text;
7560  }
7561
7562  if (isReactNative && event.nativeEvent) {
7563    return event.nativeEvent.text;
7564  }
7565
7566  var detypedEvent = event;
7567  var _detypedEvent$target = detypedEvent.target,
7568      type = _detypedEvent$target.type,
7569      value = _detypedEvent$target.value,
7570      checked = _detypedEvent$target.checked;
7571
7572  switch (type) {
7573    case "checkbox":
7574      if (valueProp !== undefined) {
7575        // we are maintaining an array, not just a boolean
7576        if (checked) {
7577          // add value to current array value
7578          return Array.isArray(currentValue) ? currentValue.concat(valueProp) : [valueProp];
7579        } else {
7580          // remove value from current array value
7581          if (!Array.isArray(currentValue)) {
7582            return currentValue;
7583          }
7584
7585          var index = currentValue.indexOf(valueProp);
7586
7587          if (index < 0) {
7588            return currentValue;
7589          } else {
7590            return currentValue.slice(0, index).concat(currentValue.slice(index + 1));
7591          }
7592        }
7593      } else {
7594        // it's just a boolean
7595        return !!checked;
7596      }
7597
7598    case "select-multiple":
7599      return getSelectedValues(event.target.options);
7600
7601    default:
7602      return value;
7603  }
7604};
7605
7606/**
7607 * Creates a callback, even with closures, that will be
7608 * instance === for the lifetime of the component, always
7609 * calling the most recent version of the function and its
7610 * closures.
7611 */
7612
7613function useConstantCallback(callback) {
7614  var ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(callback);
7615  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
7616    ref.current = callback;
7617  });
7618  return react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function () {
7619    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
7620      args[_key] = arguments[_key];
7621    }
7622
7623    return ref.current.apply(null, args);
7624  }, []);
7625}
7626
7627var all = final_form__WEBPACK_IMPORTED_MODULE_1__/* .fieldSubscriptionItems */ .bP.reduce(function (result, key) {
7628  result[key] = true;
7629  return result;
7630}, {});
7631
7632var defaultFormat = function defaultFormat(value, name) {
7633  return value === undefined ? "" : value;
7634};
7635
7636var defaultParse = function defaultParse(value, name) {
7637  return value === "" ? undefined : value;
7638};
7639
7640var defaultIsEqual = function defaultIsEqual(a, b) {
7641  return a === b;
7642};
7643
7644function useField(name, config) {
7645  if (config === void 0) {
7646    config = {};
7647  }
7648
7649  var _config = config,
7650      afterSubmit = _config.afterSubmit,
7651      allowNull = _config.allowNull,
7652      component = _config.component,
7653      data = _config.data,
7654      defaultValue = _config.defaultValue,
7655      _config$format = _config.format,
7656      format = _config$format === void 0 ? defaultFormat : _config$format,
7657      formatOnBlur = _config.formatOnBlur,
7658      initialValue = _config.initialValue,
7659      multiple = _config.multiple,
7660      _config$parse = _config.parse,
7661      parse = _config$parse === void 0 ? defaultParse : _config$parse,
7662      _config$subscription = _config.subscription,
7663      subscription = _config$subscription === void 0 ? all : _config$subscription,
7664      type = _config.type,
7665      validateFields = _config.validateFields,
7666      _value = _config.value;
7667  var form = useForm("useField");
7668  var configRef = useLatest(config);
7669
7670  var register = function register(callback, silent) {
7671    return (// avoid using `state` const in any closures created inside `register`
7672      // because they would refer `state` from current execution context
7673      // whereas actual `state` would defined in the subsequent `useField` hook
7674      // execution
7675      // (that would be caused by `setState` call performed in `register` callback)
7676      form.registerField(name, callback, subscription, {
7677        afterSubmit: afterSubmit,
7678        beforeSubmit: function beforeSubmit() {
7679          var _configRef$current = configRef.current,
7680              beforeSubmit = _configRef$current.beforeSubmit,
7681              formatOnBlur = _configRef$current.formatOnBlur,
7682              _configRef$current$fo = _configRef$current.format,
7683              format = _configRef$current$fo === void 0 ? defaultFormat : _configRef$current$fo;
7684
7685          if (formatOnBlur) {
7686            var _ref = form.getFieldState(name),
7687                value = _ref.value;
7688
7689            var formatted = format(value, name);
7690
7691            if (formatted !== value) {
7692              form.change(name, formatted);
7693            }
7694          }
7695
7696          return beforeSubmit && beforeSubmit();
7697        },
7698        data: data,
7699        defaultValue: defaultValue,
7700        getValidator: function getValidator() {
7701          return configRef.current.validate;
7702        },
7703        initialValue: initialValue,
7704        isEqual: function isEqual(a, b) {
7705          return (configRef.current.isEqual || defaultIsEqual)(a, b);
7706        },
7707        silent: silent,
7708        validateFields: validateFields
7709      })
7710    );
7711  };
7712
7713  var firstRender = react__WEBPACK_IMPORTED_MODULE_0__.useRef(true); // synchronously register and unregister to query field state for our subscription on first render
7714
7715  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(function () {
7716    var initialState = {}; // temporarily disable destroyOnUnregister
7717
7718    // temporarily disable destroyOnUnregister
7719    var destroyOnUnregister = form.destroyOnUnregister;
7720    form.destroyOnUnregister = false;
7721    register(function (state) {
7722      initialState = state;
7723    }, true)(); // return destroyOnUnregister to its original value
7724
7725    // return destroyOnUnregister to its original value
7726    form.destroyOnUnregister = destroyOnUnregister;
7727    return initialState;
7728  }),
7729      state = _React$useState[0],
7730      setState = _React$useState[1];
7731
7732  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
7733    return register(function (state) {
7734      if (firstRender.current) {
7735        firstRender.current = false;
7736      } else {
7737        setState(state);
7738      }
7739    }, false);
7740  }, // eslint-disable-next-line react-hooks/exhaustive-deps
7741  [name, data, defaultValue, // If we want to allow inline fat-arrow field-level validation functions, we
7742  // cannot reregister field every time validate function !==.
7743  // validate,
7744  initialValue // The validateFields array is often passed as validateFields={[]}, creating
7745  // a !== new array every time. If it needs to be changed, a rerender/reregister
7746  // can be forced by changing the key prop
7747  // validateFields
7748  ]);
7749  var meta = {};
7750  addLazyFieldMetaState(meta, state);
7751  var input = {
7752    name: name,
7753
7754    get value() {
7755      var value = state.value;
7756
7757      if (formatOnBlur) {
7758        if (component === "input") {
7759          value = defaultFormat(value);
7760        }
7761      } else {
7762        value = format(value, name);
7763      }
7764
7765      if (value === null && !allowNull) {
7766        value = "";
7767      }
7768
7769      if (type === "checkbox" || type === "radio") {
7770        return _value;
7771      } else if (component === "select" && multiple) {
7772        return value || [];
7773      }
7774
7775      return value;
7776    },
7777
7778    get checked() {
7779      var value = state.value;
7780
7781      if (type === "checkbox") {
7782        value = format(value, name);
7783
7784        if (_value === undefined) {
7785          return !!value;
7786        } else {
7787          return !!(Array.isArray(value) && ~value.indexOf(_value));
7788        }
7789      } else if (type === "radio") {
7790        return format(value, name) === _value;
7791      }
7792
7793      return undefined;
7794    },
7795
7796    onBlur: useConstantCallback(function (event) {
7797      state.blur();
7798
7799      if (formatOnBlur) {
7800        /**
7801         * Here we must fetch the value directly from Final Form because we cannot
7802         * trust that our `state` closure has the most recent value. This is a problem
7803         * if-and-only-if the library consumer has called `onChange()` immediately
7804         * before calling `onBlur()`, but before the field has had a chance to receive
7805         * the value update from Final Form.
7806         */
7807        var fieldState = form.getFieldState(state.name);
7808        state.change(format(fieldState.value, state.name));
7809      }
7810    }),
7811    onChange: useConstantCallback(function (event) {
7812      // istanbul ignore next
7813      if (false) { var _value2, unknown, targetType; }
7814
7815      var value = event && event.target ? getValue(event, state.value, _value, isReactNative) : event;
7816      state.change(parse(value, name));
7817    }),
7818    onFocus: useConstantCallback(function (event) {
7819      return state.focus();
7820    })
7821  };
7822
7823  if (multiple) {
7824    input.multiple = multiple;
7825  }
7826
7827  if (type !== undefined) {
7828    input.type = type;
7829  }
7830
7831  var renderProps = {
7832    input: input,
7833    meta: meta
7834  }; // assign to force Flow check
7835
7836  return renderProps;
7837}
7838
7839var _excluded = ["afterSubmit", "allowNull", "beforeSubmit", "children", "component", "data", "defaultValue", "format", "formatOnBlur", "initialValue", "isEqual", "multiple", "name", "parse", "subscription", "type", "validate", "validateFields", "value"];
7840var Field = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function Field(_ref, ref) {
7841  var afterSubmit = _ref.afterSubmit,
7842      allowNull = _ref.allowNull,
7843      beforeSubmit = _ref.beforeSubmit,
7844      children = _ref.children,
7845      component = _ref.component,
7846      data = _ref.data,
7847      defaultValue = _ref.defaultValue,
7848      format = _ref.format,
7849      formatOnBlur = _ref.formatOnBlur,
7850      initialValue = _ref.initialValue,
7851      isEqual = _ref.isEqual,
7852      multiple = _ref.multiple,
7853      name = _ref.name,
7854      parse = _ref.parse,
7855      subscription = _ref.subscription,
7856      type = _ref.type,
7857      validate = _ref.validate,
7858      validateFields = _ref.validateFields,
7859      value = _ref.value,
7860      rest = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(_ref, _excluded);
7861
7862  var field = useField(name, {
7863    afterSubmit: afterSubmit,
7864    allowNull: allowNull,
7865    beforeSubmit: beforeSubmit,
7866    children: children,
7867    component: component,
7868    data: data,
7869    defaultValue: defaultValue,
7870    format: format,
7871    formatOnBlur: formatOnBlur,
7872    initialValue: initialValue,
7873    isEqual: isEqual,
7874    multiple: multiple,
7875    parse: parse,
7876    subscription: subscription,
7877    type: type,
7878    validate: validate,
7879    validateFields: validateFields,
7880    value: value
7881  });
7882
7883  if (typeof children === "function") {
7884    return children((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({}, field, rest));
7885  }
7886
7887  if (typeof component === "string") {
7888    // ignore meta, combine input with any other props
7889    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(component, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({}, field.input, {
7890      children: children,
7891      ref: ref
7892    }, rest));
7893  }
7894
7895  if (!name) {
7896    throw new Error("prop name cannot be undefined in <Field> component");
7897  }
7898
7899  return renderComponent((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({
7900    children: children,
7901    component: component,
7902    ref: ref
7903  }, rest), field, "Field(" + name + ")");
7904});
7905
7906function withTypes() {
7907  return {
7908    Form: ReactFinalForm,
7909    FormSpy: FormSpy
7910  };
7911}
7912
7913
7914
7915
7916/***/ }),
7917
7918/***/ 869921:
7919/***/ (function(__unused_webpack_module, exports) {
7920
7921"use strict";
7922/** @license React v16.13.1
7923 * react-is.production.min.js
7924 *
7925 * Copyright (c) Facebook, Inc. and its affiliates.
7926 *
7927 * This source code is licensed under the MIT license found in the
7928 * LICENSE file in the root directory of this source tree.
7929 */
7930
7931var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?
7932Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119;
7933function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;
7934exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};
7935exports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};
7936exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;
7937
7938
7939/***/ }),
7940
7941/***/ 659864:
7942/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7943
7944"use strict";
7945
7946
7947if (true) {
7948  module.exports = __webpack_require__(869921);
7949} else {}
7950
7951
7952/***/ }),
7953
7954/***/ 225617:
7955/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7956
7957"use strict";
7958
7959// EXPORTS
7960__webpack_require__.d(__webpack_exports__, {
7961  zt: function() { return /* reexport */ components_Provider; },
7962  I0: function() { return /* reexport */ useDispatch; },
7963  v9: function() { return /* reexport */ useSelector; },
7964  oR: function() { return /* reexport */ useStore_useStore; }
7965});
7966
7967// UNUSED EXPORTS: ReactReduxContext, batch, connect, connectAdvanced, createDispatchHook, createSelectorHook, createStoreHook, shallowEqual
7968
7969// EXTERNAL MODULE: ./node_modules/react/index.js
7970var react = __webpack_require__(667294);
7971;// CONCATENATED MODULE: ./node_modules/react-redux/es/components/Context.js
7972
7973var Context_ReactReduxContext = /*#__PURE__*/react.createContext(null);
7974
7975if (false) {}
7976
7977/* harmony default export */ var Context = ((/* unused pure expression or super */ null && (Context_ReactReduxContext)));
7978;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/batch.js
7979// Default to a dummy "batch" implementation that just runs the callback
7980function defaultNoopBatch(callback) {
7981  callback();
7982}
7983
7984var batch = defaultNoopBatch; // Allow injecting another batching function later
7985
7986var setBatch = function setBatch(newBatch) {
7987  return batch = newBatch;
7988}; // Supply a getter just to skip dealing with ESM bindings
7989
7990var getBatch = function getBatch() {
7991  return batch;
7992};
7993;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/Subscription.js
7994 // encapsulates the subscription logic for connecting a component to the redux store, as
7995// well as nesting subscriptions of descendant components, so that we can ensure the
7996// ancestor components re-render before descendants
7997
7998function createListenerCollection() {
7999  var batch = getBatch();
8000  var first = null;
8001  var last = null;
8002  return {
8003    clear: function clear() {
8004      first = null;
8005      last = null;
8006    },
8007    notify: function notify() {
8008      batch(function () {
8009        var listener = first;
8010
8011        while (listener) {
8012          listener.callback();
8013          listener = listener.next;
8014        }
8015      });
8016    },
8017    get: function get() {
8018      var listeners = [];
8019      var listener = first;
8020
8021      while (listener) {
8022        listeners.push(listener);
8023        listener = listener.next;
8024      }
8025
8026      return listeners;
8027    },
8028    subscribe: function subscribe(callback) {
8029      var isSubscribed = true;
8030      var listener = last = {
8031        callback: callback,
8032        next: null,
8033        prev: last
8034      };
8035
8036      if (listener.prev) {
8037        listener.prev.next = listener;
8038      } else {
8039        first = listener;
8040      }
8041
8042      return function unsubscribe() {
8043        if (!isSubscribed || first === null) return;
8044        isSubscribed = false;
8045
8046        if (listener.next) {
8047          listener.next.prev = listener.prev;
8048        } else {
8049          last = listener.prev;
8050        }
8051
8052        if (listener.prev) {
8053          listener.prev.next = listener.next;
8054        } else {
8055          first = listener.next;
8056        }
8057      };
8058    }
8059  };
8060}
8061
8062var nullListeners = {
8063  notify: function notify() {},
8064  get: function get() {
8065    return [];
8066  }
8067};
8068function Subscription_createSubscription(store, parentSub) {
8069  var unsubscribe;
8070  var listeners = nullListeners;
8071
8072  function addNestedSub(listener) {
8073    trySubscribe();
8074    return listeners.subscribe(listener);
8075  }
8076
8077  function notifyNestedSubs() {
8078    listeners.notify();
8079  }
8080
8081  function handleChangeWrapper() {
8082    if (subscription.onStateChange) {
8083      subscription.onStateChange();
8084    }
8085  }
8086
8087  function isSubscribed() {
8088    return Boolean(unsubscribe);
8089  }
8090
8091  function trySubscribe() {
8092    if (!unsubscribe) {
8093      unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);
8094      listeners = createListenerCollection();
8095    }
8096  }
8097
8098  function tryUnsubscribe() {
8099    if (unsubscribe) {
8100      unsubscribe();
8101      unsubscribe = undefined;
8102      listeners.clear();
8103      listeners = nullListeners;
8104    }
8105  }
8106
8107  var subscription = {
8108    addNestedSub: addNestedSub,
8109    notifyNestedSubs: notifyNestedSubs,
8110    handleChangeWrapper: handleChangeWrapper,
8111    isSubscribed: isSubscribed,
8112    trySubscribe: trySubscribe,
8113    tryUnsubscribe: tryUnsubscribe,
8114    getListeners: function getListeners() {
8115      return listeners;
8116    }
8117  };
8118  return subscription;
8119}
8120;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js
8121 // React currently throws a warning when using useLayoutEffect on the server.
8122// To get around it, we can conditionally useEffect on the server (no-op) and
8123// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store
8124// subscription callback always has the selector from the latest render commit
8125// available, otherwise a store update may happen between render and the effect,
8126// which may cause missed updates; we also must ensure the store subscription
8127// is created synchronously, otherwise a store update may occur before the
8128// subscription is created and an inconsistent state may be observed
8129
8130var useIsomorphicLayoutEffect_useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? react.useLayoutEffect : react.useEffect;
8131;// CONCATENATED MODULE: ./node_modules/react-redux/es/components/Provider.js
8132
8133
8134
8135
8136
8137
8138function Provider(_ref) {
8139  var store = _ref.store,
8140      context = _ref.context,
8141      children = _ref.children;
8142  var contextValue = (0,react.useMemo)(function () {
8143    var subscription = Subscription_createSubscription(store);
8144    return {
8145      store: store,
8146      subscription: subscription
8147    };
8148  }, [store]);
8149  var previousState = (0,react.useMemo)(function () {
8150    return store.getState();
8151  }, [store]);
8152  useIsomorphicLayoutEffect_useIsomorphicLayoutEffect(function () {
8153    var subscription = contextValue.subscription;
8154    subscription.onStateChange = subscription.notifyNestedSubs;
8155    subscription.trySubscribe();
8156
8157    if (previousState !== store.getState()) {
8158      subscription.notifyNestedSubs();
8159    }
8160
8161    return function () {
8162      subscription.tryUnsubscribe();
8163      subscription.onStateChange = null;
8164    };
8165  }, [contextValue, previousState]);
8166  var Context = context || Context_ReactReduxContext;
8167  return /*#__PURE__*/react.createElement(Context.Provider, {
8168    value: contextValue
8169  }, children);
8170}
8171
8172if (false) {}
8173
8174/* harmony default export */ var components_Provider = (Provider);
8175// EXTERNAL MODULE: ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js
8176var hoist_non_react_statics_cjs = __webpack_require__(108679);
8177// EXTERNAL MODULE: ./node_modules/react-redux/node_modules/react-is/index.js
8178var react_is = __webpack_require__(372973);
8179;// CONCATENATED MODULE: ./node_modules/react-redux/es/components/connectAdvanced.js
8180
8181
8182var _excluded = (/* unused pure expression or super */ null && (["getDisplayName", "methodName", "renderCountProp", "shouldHandleStateChanges", "storeKey", "withRef", "forwardRef", "context"])),
8183    _excluded2 = (/* unused pure expression or super */ null && (["reactReduxForwardedRef"]));
8184
8185
8186
8187
8188
8189 // Define some constant arrays just to avoid re-creating these
8190
8191var EMPTY_ARRAY = (/* unused pure expression or super */ null && ([]));
8192var NO_SUBSCRIPTION_ARRAY = (/* unused pure expression or super */ null && ([null, null]));
8193
8194var stringifyComponent = function stringifyComponent(Comp) {
8195  try {
8196    return JSON.stringify(Comp);
8197  } catch (err) {
8198    return String(Comp);
8199  }
8200};
8201
8202function storeStateUpdatesReducer(state, action) {
8203  var updateCount = state[1];
8204  return [action.payload, updateCount + 1];
8205}
8206
8207function useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {
8208  useIsomorphicLayoutEffect(function () {
8209    return effectFunc.apply(void 0, effectArgs);
8210  }, dependencies);
8211}
8212
8213function captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {
8214  // We want to capture the wrapper props and child props we used for later comparisons
8215  lastWrapperProps.current = wrapperProps;
8216  lastChildProps.current = actualChildProps;
8217  renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update
8218
8219  if (childPropsFromStoreUpdate.current) {
8220    childPropsFromStoreUpdate.current = null;
8221    notifyNestedSubs();
8222  }
8223}
8224
8225function subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {
8226  // If we're not subscribed to the store, nothing to do here
8227  if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts
8228
8229  var didUnsubscribe = false;
8230  var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component
8231
8232  var checkForUpdates = function checkForUpdates() {
8233    if (didUnsubscribe) {
8234      // Don't run stale listeners.
8235      // Redux doesn't guarantee unsubscriptions happen until next dispatch.
8236      return;
8237    }
8238
8239    var latestStoreState = store.getState();
8240    var newChildProps, error;
8241
8242    try {
8243      // Actually run the selector with the most recent store state and wrapper props
8244      // to determine what the child props should be
8245      newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);
8246    } catch (e) {
8247      error = e;
8248      lastThrownError = e;
8249    }
8250
8251    if (!error) {
8252      lastThrownError = null;
8253    } // If the child props haven't changed, nothing to do here - cascade the subscription update
8254
8255
8256    if (newChildProps === lastChildProps.current) {
8257      if (!renderIsScheduled.current) {
8258        notifyNestedSubs();
8259      }
8260    } else {
8261      // Save references to the new child props.  Note that we track the "child props from store update"
8262      // as a ref instead of a useState/useReducer because we need a way to determine if that value has
8263      // been processed.  If this went into useState/useReducer, we couldn't clear out the value without
8264      // forcing another re-render, which we don't want.
8265      lastChildProps.current = newChildProps;
8266      childPropsFromStoreUpdate.current = newChildProps;
8267      renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render
8268
8269      forceComponentUpdateDispatch({
8270        type: 'STORE_UPDATED',
8271        payload: {
8272          error: error
8273        }
8274      });
8275    }
8276  }; // Actually subscribe to the nearest connected ancestor (or store)
8277
8278
8279  subscription.onStateChange = checkForUpdates;
8280  subscription.trySubscribe(); // Pull data from the store after first render in case the store has
8281  // changed since we began.
8282
8283  checkForUpdates();
8284
8285  var unsubscribeWrapper = function unsubscribeWrapper() {
8286    didUnsubscribe = true;
8287    subscription.tryUnsubscribe();
8288    subscription.onStateChange = null;
8289
8290    if (lastThrownError) {
8291      // It's possible that we caught an error due to a bad mapState function, but the
8292      // parent re-rendered without this component and we're about to unmount.
8293      // This shouldn't happen as long as we do top-down subscriptions correctly, but
8294      // if we ever do those wrong, this throw will surface the error in our tests.
8295      // In that case, throw the error from here so it doesn't get lost.
8296      throw lastThrownError;
8297    }
8298  };
8299
8300  return unsubscribeWrapper;
8301}
8302
8303var initStateUpdates = function initStateUpdates() {
8304  return [null, 0];
8305};
8306
8307function connectAdvanced_connectAdvanced(
8308/*
8309  selectorFactory is a func that is responsible for returning the selector function used to
8310  compute new props from state, props, and dispatch. For example:
8311      export default connectAdvanced((dispatch, options) => (state, props) => ({
8312      thing: state.things[props.thingId],
8313      saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),
8314    }))(YourComponent)
8315    Access to dispatch is provided to the factory so selectorFactories can bind actionCreators
8316  outside of their selector as an optimization. Options passed to connectAdvanced are passed to
8317  the selectorFactory, along with displayName and WrappedComponent, as the second argument.
8318    Note that selectorFactory is responsible for all caching/memoization of inbound and outbound
8319  props. Do not use connectAdvanced directly without memoizing results between calls to your
8320  selector, otherwise the Connect component will re-render on every state or props change.
8321*/
8322selectorFactory, // options object:
8323_ref) {
8324  if (_ref === void 0) {
8325    _ref = {};
8326  }
8327
8328  var _ref2 = _ref,
8329      _ref2$getDisplayName = _ref2.getDisplayName,
8330      getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {
8331    return "ConnectAdvanced(" + name + ")";
8332  } : _ref2$getDisplayName,
8333      _ref2$methodName = _ref2.methodName,
8334      methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,
8335      _ref2$renderCountProp = _ref2.renderCountProp,
8336      renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,
8337      _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,
8338      shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,
8339      _ref2$storeKey = _ref2.storeKey,
8340      storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,
8341      _ref2$withRef = _ref2.withRef,
8342      withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,
8343      _ref2$forwardRef = _ref2.forwardRef,
8344      forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,
8345      _ref2$context = _ref2.context,
8346      context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,
8347      connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);
8348
8349  if (false) { var customStoreWarningMessage; }
8350
8351  var Context = context;
8352  return function wrapWithConnect(WrappedComponent) {
8353    if (false) {}
8354
8355    var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
8356    var displayName = getDisplayName(wrappedComponentName);
8357
8358    var selectorFactoryOptions = _extends({}, connectOptions, {
8359      getDisplayName: getDisplayName,
8360      methodName: methodName,
8361      renderCountProp: renderCountProp,
8362      shouldHandleStateChanges: shouldHandleStateChanges,
8363      storeKey: storeKey,
8364      displayName: displayName,
8365      wrappedComponentName: wrappedComponentName,
8366      WrappedComponent: WrappedComponent
8367    });
8368
8369    var pure = connectOptions.pure;
8370
8371    function createChildSelector(store) {
8372      return selectorFactory(store.dispatch, selectorFactoryOptions);
8373    } // If we aren't running in "pure" mode, we don't want to memoize values.
8374    // To avoid conditionally calling hooks, we fall back to a tiny wrapper
8375    // that just executes the given callback immediately.
8376
8377
8378    var usePureOnlyMemo = pure ? useMemo : function (callback) {
8379      return callback();
8380    };
8381
8382    function ConnectFunction(props) {
8383      var _useMemo = useMemo(function () {
8384        // Distinguish between actual "data" props that were passed to the wrapper component,
8385        // and values needed to control behavior (forwarded refs, alternate context instances).
8386        // To maintain the wrapperProps object reference, memoize this destructuring.
8387        var reactReduxForwardedRef = props.reactReduxForwardedRef,
8388            wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2);
8389
8390        return [props.context, reactReduxForwardedRef, wrapperProps];
8391      }, [props]),
8392          propsContext = _useMemo[0],
8393          reactReduxForwardedRef = _useMemo[1],
8394          wrapperProps = _useMemo[2];
8395
8396      var ContextToUse = useMemo(function () {
8397        // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.
8398        // Memoize the check that determines which context instance we should use.
8399        return propsContext && propsContext.Consumer && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;
8400      }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available
8401
8402      var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.
8403      // We'll check to see if it _looks_ like a Redux store first.
8404      // This allows us to pass through a `store` prop that is just a plain value.
8405
8406      var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);
8407      var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);
8408
8409      if (false) {} // Based on the previous check, one of these must be true
8410
8411
8412      var store = didStoreComeFromProps ? props.store : contextValue.store;
8413      var childPropsSelector = useMemo(function () {
8414        // The child props selector needs the store reference as an input.
8415        // Re-create this selector whenever the store changes.
8416        return createChildSelector(store);
8417      }, [store]);
8418
8419      var _useMemo2 = useMemo(function () {
8420        if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY;
8420 // This Subscription's source should match where store came from: props vs. context. A component
8421        // connected to the store via props shouldn't use subscription from context, or vice versa.
8422
8423        // This Subscription's source should match where store came from: props vs. context. A component
8424        // connected to the store via props shouldn't use subscription from context, or vice versa.
8425        var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in
8426        // the middle of the notification loop, where `subscription` will then be null. This can
8427        // probably be avoided if Subscription's listeners logic is changed to not call listeners
8428        // that have been unsubscribed in the  middle of the notification loop.
8429
8430        // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in
8431        // the middle of the notification loop, where `subscription` will then be null. This can
8432        // probably be avoided if Subscription's listeners logic is changed to not call listeners
8433        // that have been unsubscribed in the  middle of the notification loop.
8434        var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);
8435        return [subscription, notifyNestedSubs];
8436      }, [store, didStoreComeFromProps, contextValue]),
8437          subscription = _useMemo2[0],
8438          notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,
8439      // and memoize that value to avoid unnecessary context updates.
8440
8441
8442      var overriddenContextValue = useMemo(function () {
8443        if (didStoreComeFromProps) {
8444          // This component is directly subscribed to a store from props.
8445          // We don't want descendants reading from this store - pass down whatever
8446          // the existing context value is from the nearest connected ancestor.
8447          return contextValue;
8448        } // Otherwise, put this component's subscription instance into context, so that
8449        // connected descendants won't update until after this component is done
8450
8451
8452        return _extends({}, contextValue, {
8453          subscription: subscription
8454        });
8455      }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update
8456      // causes a change to the calculated child component props (or we caught an error in mapState)
8457
8458      var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),
8459          _useReducer$ = _useReducer[0],
8460          previousStateUpdateResult = _useReducer$[0],
8461          forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards
8462
8463
8464      if (previousStateUpdateResult && previousStateUpdateResult.error) {
8465        throw previousStateUpdateResult.error;
8466      } // Set up refs to coordinate values between the subscription effect and the render logic
8467
8468
8469      var lastChildProps = useRef();
8470      var lastWrapperProps = useRef(wrapperProps);
8471      var childPropsFromStoreUpdate = useRef();
8472      var renderIsScheduled = useRef(false);
8473      var actualChildProps = usePureOnlyMemo(function () {
8474        // Tricky logic here:
8475        // - This render may have been triggered by a Redux store update that produced new child props
8476        // - However, we may have gotten new wrapper props after that
8477        // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.
8478        // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.
8479        // So, we'll use the child props from store update only if the wrapper props are the same as last time.
8480        if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {
8481          return childPropsFromStoreUpdate.current;
8482        } // TODO We're reading the store directly in render() here. Bad idea?
8483        // This will likely cause Bad Things (TM) to happen in Concurrent Mode.
8484        // Note that we do this because on renders _not_ caused by store updates, we need the latest store state
8485        // to determine what the child props should be.
8486
8487
8488        return childPropsSelector(store.getState(), wrapperProps);
8489      }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns
8490      // about useLayoutEffect in SSR, so we try to detect environment and fall back to
8491      // just useEffect instead to avoid the warning, since neither will run anyway.
8492
8493      useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes
8494
8495      useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.
8496      // We memoize the elements for the rendered child component as an optimization.
8497
8498      var renderedWrappedComponent = useMemo(function () {
8499        return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {
8500          ref: reactReduxForwardedRef
8501        }));
8502      }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering
8503      // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.
8504
8505      var renderedChild = useMemo(function () {
8506        if (shouldHandleStateChanges) {
8507          // If this component is subscribed to store updates, we need to pass its own
8508          // subscription instance down to our descendants. That means rendering the same
8509          // Context instance, and putting a different value into the context.
8510          return /*#__PURE__*/React.createElement(ContextToUse.Provider, {
8511            value: overriddenContextValue
8512          }, renderedWrappedComponent);
8513        }
8514
8515        return renderedWrappedComponent;
8516      }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);
8517      return renderedChild;
8518    } // If we're in "pure" mode, ensure our wrapper component only re-renders when incoming props have changed.
8519
8520
8521    var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;
8522    Connect.WrappedComponent = WrappedComponent;
8523    Connect.displayName = ConnectFunction.displayName = displayName;
8524
8525    if (forwardRef) {
8526      var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {
8527        return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {
8528          reactReduxForwardedRef: ref
8529        }));
8530      });
8531      forwarded.displayName = displayName;
8532      forwarded.WrappedComponent = WrappedComponent;
8533      return hoistStatics(forwarded, WrappedComponent);
8534    }
8535
8536    return hoistStatics(Connect, WrappedComponent);
8537  };
8538}
8539;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/bindActionCreators.js
8540function bindActionCreators(actionCreators, dispatch) {
8541  var boundActionCreators = {};
8542
8543  var _loop = function _loop(key) {
8544    var actionCreator = actionCreators[key];
8545
8546    if (typeof actionCreator === 'function') {
8547      boundActionCreators[key] = function () {
8548        return dispatch(actionCreator.apply(void 0, arguments));
8549      };
8550    }
8551  };
8552
8553  for (var key in actionCreators) {
8554    _loop(key);
8555  }
8556
8557  return boundActionCreators;
8558}
8559;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/wrapMapToProps.js
8560
8561function wrapMapToPropsConstant(getConstant) {
8562  return function initConstantSelector(dispatch, options) {
8563    var constant = getConstant(dispatch, options);
8564
8565    function constantSelector() {
8566      return constant;
8567    }
8568
8569    constantSelector.dependsOnOwnProps = false;
8570    return constantSelector;
8571  };
8572} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args
8573// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine
8574// whether mapToProps needs to be invoked when props have changed.
8575//
8576// A length of one signals that mapToProps does not depend on props from the parent component.
8577// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and
8578// therefore not reporting its length accurately..
8579
8580function getDependsOnOwnProps(mapToProps) {
8581  return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;
8582} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,
8583// this function wraps mapToProps in a proxy function which does several things:
8584//
8585//  * Detects whether the mapToProps function being called depends on props, which
8586//    is used by selectorFactory to decide if it should reinvoke on props changes.
8587//
8588//  * On first call, handles mapToProps if returns another function, and treats that
8589//    new function as the true mapToProps for subsequent calls.
8590//
8591//  * On first call, verifies the first result is a plain object, in order to warn
8592//    the developer that their mapToProps function is not returning a valid result.
8593//
8594
8595function wrapMapToPropsFunc(mapToProps, methodName) {
8596  return function initProxySelector(dispatch, _ref) {
8597    var displayName = _ref.displayName;
8598
8599    var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {
8600      return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);
8601    }; // allow detectFactoryAndVerify to get ownProps
8602
8603
8604    proxy.dependsOnOwnProps = true;
8605
8606    proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {
8607      proxy.mapToProps = mapToProps;
8608      proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);
8609      var props = proxy(stateOrDispatch, ownProps);
8610
8611      if (typeof props === 'function') {
8612        proxy.mapToProps = props;
8613        proxy.dependsOnOwnProps = getDependsOnOwnProps(props);
8614        props = proxy(stateOrDispatch, ownProps);
8615      }
8616
8617      if (false) {}
8618      return props;
8619    };
8620
8621    return proxy;
8622  };
8623}
8624;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/mapDispatchToProps.js
8625
8626
8627function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {
8628  return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;
8629}
8630function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {
8631  return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {
8632    return {
8633      dispatch: dispatch
8634    };
8635  }) : undefined;
8636}
8637function whenMapDispatchToPropsIsObject(mapDispatchToProps) {
8638  return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {
8639    return bindActionCreators(mapDispatchToProps, dispatch);
8640  }) : undefined;
8641}
8642/* harmony default export */ var mapDispatchToProps = ([whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject]);
8643;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/mapStateToProps.js
8644
8645function whenMapStateToPropsIsFunction(mapStateToProps) {
8646  return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;
8647}
8648function whenMapStateToPropsIsMissing(mapStateToProps) {
8649  return !mapStateToProps ? wrapMapToPropsConstant(function () {
8650    return {};
8651  }) : undefined;
8652}
8653/* harmony default export */ var mapStateToProps = ([whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing]);
8654// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
8655var esm_extends = __webpack_require__(487462);
8656;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/mergeProps.js
8657
8658
8659function defaultMergeProps(stateProps, dispatchProps, ownProps) {
8660  return (0,esm_extends/* default */.Z)({}, ownProps, stateProps, dispatchProps);
8661}
8662function wrapMergePropsFunc(mergeProps) {
8663  return function initMergePropsProxy(dispatch, _ref) {
8664    var displayName = _ref.displayName,
8665        pure = _ref.pure,
8666        areMergedPropsEqual = _ref.areMergedPropsEqual;
8667    var hasRunOnce = false;
8668    var mergedProps;
8669    return function mergePropsProxy(stateProps, dispatchProps, ownProps) {
8670      var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);
8671
8672      if (hasRunOnce) {
8673        if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;
8674      } else {
8675        hasRunOnce = true;
8676        mergedProps = nextMergedProps;
8677        if (false) {}
8678      }
8679
8680      return mergedProps;
8681    };
8682  };
8683}
8684function whenMergePropsIsFunction(mergeProps) {
8685  return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;
8686}
8687function whenMergePropsIsOmitted(mergeProps) {
8688  return !mergeProps ? function () {
8689    return defaultMergeProps;
8690  } : undefined;
8691}
8692/* harmony default export */ var mergeProps = ([whenMergePropsIsFunction, whenMergePropsIsOmitted]);
8693;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/connect.js
8694
8695
8696var connect_excluded = (/* unused pure expression or super */ null && (["pure", "areStatesEqual", "areOwnPropsEqual", "areStatePropsEqual", "areMergedPropsEqual"]));
8697
8698
8699
8700
8701
8702
8703/*
8704  connect is a facade over connectAdvanced. It turns its args into a compatible
8705  selectorFactory, which has the signature:
8706
8707    (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps
8708  
8709  connect passes its args to connectAdvanced as options, which will in turn pass them to
8710  selectorFactory each time a Connect component instance is instantiated or hot reloaded.
8711
8712  selectorFactory returns a final props selector from its mapStateToProps,
8713  mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,
8714  mergePropsFactories, and pure args.
8715
8716  The resulting final props selector is called by the Connect component instance whenever
8717  it receives new props or store state.
8718 */
8719
8720function match(arg, factories, name) {
8721  for (var i = factories.length - 1; i >= 0; i--) {
8722    var result = factories[i](arg);
8723    if (result) return result;
8724  }
8725
8726  return function (dispatch, options) {
8727    throw new Error("Invalid value of type " + typeof arg + " for " + name + " argument when connecting component " + options.wrappedComponentName + ".");
8728  };
8729}
8730
8731function strictEqual(a, b) {
8732  return a === b;
8733} // createConnect with default args builds the 'official' connect behavior. Calling it with
8734// different options opens up some testing and extensibility scenarios
8735
8736
8737function createConnect(_temp) {
8738  var _ref = _temp === void 0 ? {} : _temp,
8739      _ref$connectHOC = _ref.connectHOC,
8740      connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,
8741      _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,
8742      mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,
8743      _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,
8744      mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,
8745      _ref$mergePropsFactor = _ref.mergePropsFactories,
8746      mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,
8747      _ref$selectorFactory = _ref.selectorFactory,
8748      selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;
8749
8750  return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {
8751    if (_ref2 === void 0) {
8752      _ref2 = {};
8753    }
8754
8755    var _ref3 = _ref2,
8756        _ref3$pure = _ref3.pure,
8757        pure = _ref3$pure === void 0 ? true : _ref3$pure,
8758        _ref3$areStatesEqual = _ref3.areStatesEqual,
8759        areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,
8760        _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,
8761        areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,
8762        _ref3$areStatePropsEq = _ref3.areStatePropsEqual,
8763        areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,
8764        _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,
8765        areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,
8766        extraOptions = _objectWithoutPropertiesLoose(_ref3, connect_excluded);
8767
8768    var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');
8769    var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');
8770    var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');
8771    return connectHOC(selectorFactory, _extends({
8772      // used in error messages
8773      methodName: 'connect',
8774      // used to compute Connect's displayName from the wrapped component's displayName.
8775      getDisplayName: function getDisplayName(name) {
8776        return "Connect(" + name + ")";
8777      },
8778      // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes
8779      shouldHandleStateChanges: Boolean(mapStateToProps),
8780      // passed through to selectorFactory
8781      initMapStateToProps: initMapStateToProps,
8782      initMapDispatchToProps: initMapDispatchToProps,
8783      initMergeProps: initMergeProps,
8784      pure: pure,
8785      areStatesEqual: areStatesEqual,
8786      areOwnPropsEqual: areOwnPropsEqual,
8787      areStatePropsEqual: areStatePropsEqual,
8788      areMergedPropsEqual: areMergedPropsEqual
8789    }, extraOptions));
8790  };
8791}
8792/* harmony default export */ var connect = (/*#__PURE__*/(/* unused pure expression or super */ null && (createConnect())));
8793;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useReduxContext.js
8794
8795
8796/**
8797 * A hook to access the value of the `ReactReduxContext`. This is a low-level
8798 * hook that you should usually not need to call directly.
8799 *
8800 * @returns {any} the value of the `ReactReduxContext`
8801 *
8802 * @example
8803 *
8804 * import React from 'react'
8805 * import { useReduxContext } from 'react-redux'
8806 *
8807 * export const CounterComponent = ({ value }) => {
8808 *   const { store } = useReduxContext()
8809 *   return <div>{store.getState()}</div>
8810 * }
8811 */
8812
8813function useReduxContext_useReduxContext() {
8814  var contextValue = (0,react.useContext)(Context_ReactReduxContext);
8815
8816  if (false) {}
8817
8818  return contextValue;
8819}
8820;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useStore.js
8821
8822
8823
8824/**
8825 * Hook factory, which creates a `useStore` hook bound to a given context.
8826 *
8827 * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
8828 * @returns {Function} A `useStore` hook bound to the specified context.
8829 */
8830
8831function createStoreHook(context) {
8832  if (context === void 0) {
8833    context = Context_ReactReduxContext;
8834  }
8835
8836  var useReduxContext = context === Context_ReactReduxContext ? useReduxContext_useReduxContext : function () {
8837    return (0,react.useContext)(context);
8838  };
8839  return function useStore() {
8840    var _useReduxContext = useReduxContext(),
8841        store = _useReduxContext.store;
8842
8843    return store;
8844  };
8845}
8846/**
8847 * A hook to access the redux store.
8848 *
8849 * @returns {any} the redux store
8850 *
8851 * @example
8852 *
8853 * import React from 'react'
8854 * import { useStore } from 'react-redux'
8855 *
8856 * export const ExampleComponent = () => {
8857 *   const store = useStore()
8858 *   return <div>{store.getState()}</div>
8859 * }
8860 */
8861
8862var useStore_useStore = /*#__PURE__*/createStoreHook();
8863;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useDispatch.js
8864
8865
8866/**
8867 * Hook factory, which creates a `useDispatch` hook bound to a given context.
8868 *
8869 * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
8870 * @returns {Function} A `useDispatch` hook bound to the specified context.
8871 */
8872
8873function createDispatchHook(context) {
8874  if (context === void 0) {
8875    context = Context_ReactReduxContext;
8876  }
8877
8878  var useStore = context === Context_ReactReduxContext ? useStore_useStore : createStoreHook(context);
8879  return function useDispatch() {
8880    var store = useStore();
8881    return store.dispatch;
8882  };
8883}
8884/**
8885 * A hook to access the redux `dispatch` function.
8886 *
8887 * @returns {any|function} redux store's `dispatch` function
8888 *
8889 * @example
8890 *
8891 * import React, { useCallback } from 'react'
8892 * import { useDispatch } from 'react-redux'
8893 *
8894 * export const CounterComponent = ({ value }) => {
8895 *   const dispatch = useDispatch()
8896 *   const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])
8897 *   return (
8898 *     <div>
8899 *       <span>{value}</span>
8900 *       <button onClick={increaseCounter}>Increase counter</button>
8901 *     </div>
8902 *   )
8903 * }
8904 */
8905
8906var useDispatch = /*#__PURE__*/createDispatchHook();
8907;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useSelector.js
8908
8909
8910
8911
8912
8913
8914var refEquality = function refEquality(a, b) {
8915  return a === b;
8916};
8917
8918function useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {
8919  var _useReducer = (0,react.useReducer)(function (s) {
8920    return s + 1;
8921  }, 0),
8922      forceRender = _useReducer[1];
8923
8924  var subscription = (0,react.useMemo)(function () {
8925    return Subscription_createSubscription(store, contextSub);
8926  }, [store, contextSub]);
8927  var latestSubscriptionCallbackError = (0,react.useRef)();
8928  var latestSelector = (0,react.useRef)();
8929  var latestStoreState = (0,react.useRef)();
8930  var latestSelectedState = (0,react.useRef)();
8931  var storeState = store.getState();
8932  var selectedState;
8933
8934  try {
8935    if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {
8936      var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references
8937
8938      if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {
8939        selectedState = newSelectedState;
8940      } else {
8941        selectedState = latestSelectedState.current;
8942      }
8943    } else {
8944      selectedState = latestSelectedState.current;
8945    }
8946  } catch (err) {
8947    if (latestSubscriptionCallbackError.current) {
8948      err.message += "\nThe error may be correlated with this previous error:\n" + latestSubscriptionCallbackError.current.stack + "\n\n";
8949    }
8950
8951    throw err;
8952  }
8953
8954  useIsomorphicLayoutEffect_useIsomorphicLayoutEffect(function () {
8955    latestSelector.current = selector;
8956    latestStoreState.current = storeState;
8957    latestSelectedState.current = selectedState;
8958    latestSubscriptionCallbackError.current = undefined;
8959  });
8960  useIsomorphicLayoutEffect_useIsomorphicLayoutEffect(function () {
8961    function checkForUpdates() {
8962      try {
8963        var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed
8964
8965        if (newStoreState === latestStoreState.current) {
8966          return;
8967        }
8968
8969        var _newSelectedState = latestSelector.current(newStoreState);
8970
8971        if (equalityFn(_newSelectedState, latestSelectedState.current)) {
8972          return;
8973        }
8974
8975        latestSelectedState.current = _newSelectedState;
8976        latestStoreState.current = newStoreState;
8977      } catch (err) {
8978        // we ignore all errors here, since when the component
8979        // is re-rendered, the selectors are called again, and
8980        // will throw again, if neither props nor store state
8981        // changed
8982        latestSubscriptionCallbackError.current = err;
8983      }
8984
8985      forceRender();
8986    }
8987
8988    subscription.onStateChange = checkForUpdates;
8989    subscription.trySubscribe();
8990    checkForUpdates();
8991    return function () {
8992      return subscription.tryUnsubscribe();
8993    };
8994  }, [store, subscription]);
8995  return selectedState;
8996}
8997/**
8998 * Hook factory, which creates a `useSelector` hook bound to a given context.
8999 *
9000 * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
9001 * @returns {Function} A `useSelector` hook bound to the specified context.
9002 */
9003
9004
9005function createSelectorHook(context) {
9006  if (context === void 0) {
9007    context = Context_ReactReduxContext;
9008  }
9009
9010  var useReduxContext = context === Context_ReactReduxContext ? useReduxContext_useReduxContext : function () {
9011    return (0,react.useContext)(context);
9012  };
9013  return function useSelector(selector, equalityFn) {
9014    if (equalityFn === void 0) {
9015      equalityFn = refEquality;
9016    }
9017
9018    if (false) {}
9019
9020    var _useReduxContext = useReduxContext(),
9021        store = _useReduxContext.store,
9022        contextSub = _useReduxContext.subscription;
9023
9024    var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);
9025    (0,react.useDebugValue)(selectedState);
9026    return selectedState;
9027  };
9028}
9029/**
9030 * A hook to access the redux store's state. This hook takes a selector function
9031 * as an argument. The selector is called with the store state.
9032 *
9033 * This hook takes an optional equality comparison function as the second parameter
9034 * that allows you to customize the way the selected state is compared to determine
9035 * whether the component needs to be re-rendered.
9036 *
9037 * @param {Function} selector the selector function
9038 * @param {Function=} equalityFn the function that will be used to determine equality
9039 *
9040 * @returns {any} the selected state
9041 *
9042 * @example
9043 *
9044 * import React from 'react'
9045 * import { useSelector } from 'react-redux'
9046 *
9047 * export const CounterComponent = () => {
9048 *   const counter = useSelector(state => state.counter)
9049 *   return <div>{counter}</div>
9050 * }
9051 */
9052
9053var useSelector = /*#__PURE__*/createSelectorHook();
9054;// CONCATENATED MODULE: ./node_modules/react-redux/es/exports.js
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064// EXTERNAL MODULE: ./node_modules/react-dom/index.js
9065var react_dom = __webpack_require__(973935);
9066;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/reactBatchedUpdates.js
9067/* eslint-disable import/no-unresolved */
9068
9069;// CONCATENATED MODULE: ./node_modules/react-redux/es/index.js
9070
9071
9072 // Enable batched updates in our subscriptions for use
9073// with standard React renderers (ReactDOM, React Native)
9074
9075setBatch(react_dom.unstable_batchedUpdates);
9076
9077
9078/***/ }),
9079
9080/***/ 88359:
9081/***/ (function(__unused_webpack_module, exports) {
9082
9083"use strict";
9084var __webpack_unused_export__;
9085/** @license React v17.0.2
9086 * react-is.production.min.js
9087 *
9088 * Copyright (c) Facebook, Inc. and its affiliates.
9089 *
9090 * This source code is licensed under the MIT license found in the
9091 * LICENSE file in the root directory of this source tree.
9092 */
9093var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;
9094if("function"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x("react.element");c=x("react.portal");d=x("react.fragment");e=x("react.strict_mode");f=x("react.profiler");g=x("react.provider");h=x("react.context");k=x("react.forward_ref");l=x("react.suspense");m=x("react.suspense_list");n=x("react.memo");p=x("react.lazy");q=x("react.block");r=x("react.server.block");u=x("react.fundamental");v=x("react.debug_trace_mode");w=x("react.legacy_hidden")}
9095function y(a){if("object"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;__webpack_unused_export__=h;__webpack_unused_export__=z;__webpack_unused_export__=A;__webpack_unused_export__=B;__webpack_unused_export__=C;__webpack_unused_export__=D;__webpack_unused_export__=E;__webpack_unused_export__=F;__webpack_unused_export__=G;__webpack_unused_export__=H;
9096__webpack_unused_export__=I;__webpack_unused_export__=function(){return!1};__webpack_unused_export__=function(){return!1};__webpack_unused_export__=function(a){return y(a)===h};__webpack_unused_export__=function(a){return y(a)===g};__webpack_unused_export__=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===b};__webpack_unused_export__=function(a){return y(a)===k};__webpack_unused_export__=function(a){return y(a)===d};__webpack_unused_export__=function(a){return y(a)===p};__webpack_unused_export__=function(a){return y(a)===n};
9097__webpack_unused_export__=function(a){return y(a)===c};__webpack_unused_export__=function(a){return y(a)===f};__webpack_unused_export__=function(a){return y(a)===e};__webpack_unused_export__=function(a){return y(a)===l};__webpack_unused_export__=function(a){return"string"===typeof a||"function"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||"object"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};
9098__webpack_unused_export__=y;
9099
9100
9101/***/ }),
9102
9103/***/ 372973:
9104/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9105
9106"use strict";
9107
9108
9109if (true) {
9110  /* unused reexport */ __webpack_require__(88359);
9111} else {}
9112
9113
9114/***/ }),
9115
9116/***/ 708662:
9117/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9118
9119"use strict";
9120
9121// EXPORTS
9122__webpack_require__.d(__webpack_exports__, {
9123  ZP: function() { return /* binding */ esm_Transition; }
9124});
9125
9126// UNUSED EXPORTS: ENTERED, ENTERING, EXITED, EXITING, UNMOUNTED
9127
9128// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
9129var objectWithoutPropertiesLoose = __webpack_require__(263366);
9130// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
9131var inheritsLoose = __webpack_require__(894578);
9132// EXTERNAL MODULE: ./node_modules/react/index.js
9133var react = __webpack_require__(667294);
9134// EXTERNAL MODULE: ./node_modules/react-dom/index.js
9135var react_dom = __webpack_require__(973935);
9136;// CONCATENATED MODULE: ./node_modules/react-transition-group/esm/config.js
9137/* harmony default export */ var config = ({
9138  disabled: false
9139});
9140// EXTERNAL MODULE: ./node_modules/react-transition-group/esm/TransitionGroupContext.js
9141var TransitionGroupContext = __webpack_require__(500220);
9142;// CONCATENATED MODULE: ./node_modules/react-transition-group/esm/utils/reflow.js
9143var forceReflow = function forceReflow(node) {
9144  return node.scrollTop;
9145};
9146;// CONCATENATED MODULE: ./node_modules/react-transition-group/esm/Transition.js
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156var UNMOUNTED = 'unmounted';
9157var EXITED = 'exited';
9158var ENTERING = 'entering';
9159var ENTERED = 'entered';
9160var EXITING = 'exiting';
9161/**
9162 * The Transition component lets you describe a transition from one component
9163 * state to another _over time_ with a simple declarative API. Most commonly
9164 * it's used to animate the mounting and unmounting of a component, but can also
9165 * be used to describe in-place transition states as well.
9166 *
9167 * ---
9168 *
9169 * **Note**: `Transition` is a platform-agnostic base component. If you're using
9170 * transitions in CSS, you'll probably want to use
9171 * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)
9172 * instead. It inherits all the features of `Transition`, but contains
9173 * additional features necessary to play nice with CSS transitions (hence the
9174 * name of the component).
9175 *
9176 * ---
9177 *
9178 * By default the `Transition` component does not alter the behavior of the
9179 * component it renders, it only tracks "enter" and "exit" states for the
9180 * components. It's up to you to give meaning and effect to those states. For
9181 * example we can add styles to a component when it enters or exits:
9182 *
9183 * ```jsx
9184 * import { Transition } from 'react-transition-group';
9185 *
9186 * const duration = 300;
9187 *
9188 * const defaultStyle = {
9189 *   transition: `opacity ${duration}ms ease-in-out`,
9190 *   opacity: 0,
9191 * }
9192 *
9193 * const transitionStyles = {
9194 *   entering: { opacity: 1 },
9195 *   entered:  { opacity: 1 },
9196 *   exiting:  { opacity: 0 },
9197 *   exited:  { opacity: 0 },
9198 * };
9199 *
9200 * const Fade = ({ in: inProp }) => (
9201 *   <Transition in={inProp} timeout={duration}>
9202 *     {state => (
9203 *       <div style={{
9204 *         ...defaultStyle,
9205 *         ...transitionStyles[state]
9206 *       }}>
9207 *         I'm a fade Transition!
9208 *       </div>
9209 *     )}
9210 *   </Transition>
9211 * );
9212 * ```
9213 *
9214 * There are 4 main states a Transition can be in:
9215 *  - `'entering'`
9216 *  - `'entered'`
9217 *  - `'exiting'`
9218 *  - `'exited'`
9219 *
9220 * Transition state is toggled via the `in` prop. When `true` the component
9221 * begins the "Enter" stage. During this stage, the component will shift from
9222 * its current transition state, to `'entering'` for the duration of the
9223 * transition and then to the `'entered'` stage once it's complete. Let's take
9224 * the following example (we'll use the
9225 * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):
9226 *
9227 * ```jsx
9228 * function App() {
9229 *   const [inProp, setInProp] = useState(false);
9230 *   return (
9231 *     <div>
9232 *       <Transition in={inProp} timeout={500}>
9233 *         {state => (
9234 *           // ...
9235 *         )}
9236 *       </Transition>
9237 *       <button onClick={() => setInProp(true)}>
9238 *         Click to Enter
9239 *       </button>
9240 *     </div>
9241 *   );
9242 * }
9243 * ```
9244 *
9245 * When the button is clicked the component will shift to the `'entering'` state
9246 * and stay there for 500ms (the value of `timeout`) before it finally switches
9247 * to `'entered'`.
9248 *
9249 * When `in` is `false` the same thing happens except the state moves from
9250 * `'exiting'` to `'exited'`.
9251 */
9252
9253var Transition = /*#__PURE__*/function (_React$Component) {
9254  (0,inheritsLoose/* default */.Z)(Transition, _React$Component);
9255
9256  function Transition(props, context) {
9257    var _this;
9258
9259    _this = _React$Component.call(this, props, context) || this;
9260    var parentGroup = context; // In the context of a TransitionGroup all enters are really appears
9261
9262    var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;
9263    var initialStatus;
9264    _this.appearStatus = null;
9265
9266    if (props.in) {
9267      if (appear) {
9268        initialStatus = EXITED;
9269        _this.appearStatus = ENTERING;
9270      } else {
9271        initialStatus = ENTERED;
9272      }
9273    } else {
9274      if (props.unmountOnExit || props.mountOnEnter) {
9275        initialStatus = UNMOUNTED;
9276      } else {
9277        initialStatus = EXITED;
9278      }
9279    }
9280
9281    _this.state = {
9282      status: initialStatus
9283    };
9284    _this.nextCallback = null;
9285    return _this;
9286  }
9287
9288  Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {
9289    var nextIn = _ref.in;
9290
9291    if (nextIn && prevState.status === UNMOUNTED) {
9292      return {
9293        status: EXITED
9294      };
9295    }
9296
9297    return null;
9298  } // getSnapshotBeforeUpdate(prevProps) {
9299  //   let nextStatus = null
9300  //   if (prevProps !== this.props) {
9301  //     const { status } = this.state
9302  //     if (this.props.in) {
9303  //       if (status !== ENTERING && status !== ENTERED) {
9304  //         nextStatus = ENTERING
9305  //       }
9306  //     } else {
9307  //       if (status === ENTERING || status === ENTERED) {
9308  //         nextStatus = EXITING
9309  //       }
9310  //     }
9311  //   }
9312  //   return { nextStatus }
9313  // }
9314  ;
9315
9316  var _proto = Transition.prototype;
9317
9318  _proto.componentDidMount = function componentDidMount() {
9319    this.updateStatus(true, this.appearStatus);
9320  };
9321
9322  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
9323    var nextStatus = null;
9324
9325    if (prevProps !== this.props) {
9326      var status = this.state.status;
9327
9328      if (this.props.in) {
9329        if (status !== ENTERING && status !== ENTERED) {
9330          nextStatus = ENTERING;
9331        }
9332      } else {
9333        if (status === ENTERING || status === ENTERED) {
9334          nextStatus = EXITING;
9335        }
9336      }
9337    }
9338
9339    this.updateStatus(false, nextStatus);
9340  };
9341
9342  _proto.componentWillUnmount = function componentWillUnmount() {
9343    this.cancelNextCallback();
9344  };
9345
9346  _proto.getTimeouts = function getTimeouts() {
9347    var timeout = this.props.timeout;
9348    var exit, enter, appear;
9349    exit = enter = appear = timeout;
9350
9351    if (timeout != null && typeof timeout !== 'number') {
9352      exit = timeout.exit;
9353      enter = timeout.enter; // TODO: remove fallback for next major
9354
9355      appear = timeout.appear !== undefined ? timeout.appear : enter;
9356    }
9357
9358    return {
9359      exit: exit,
9360      enter: enter,
9361      appear: appear
9362    };
9363  };
9364
9365  _proto.updateStatus = function updateStatus(mounting, nextStatus) {
9366    if (mounting === void 0) {
9367      mounting = false;
9368    }
9369
9370    if (nextStatus !== null) {
9371      // nextStatus will always be ENTERING or EXITING.
9372      this.cancelNextCallback();
9373
9374      if (nextStatus === ENTERING) {
9375        if (this.props.unmountOnExit || this.props.mountOnEnter) {
9376          var node = this.props.nodeRef ? this.props.nodeRef.current : react_dom.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749
vendor: 10,817 bytes, lines 9377-9715
9377          // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.
9378          // To make the animation happen,  we have to separate each rendering and avoid being processed as batched.
9379
9380          if (node) forceReflow(node);
9381        }
9382
9383        this.performEnter(mounting);
9384      } else {
9385        this.performExit();
9386      }
9387    } else if (this.props.unmountOnExit && this.state.status === EXITED) {
9388      this.setState({
9389        status: UNMOUNTED
9390      });
9391    }
9392  };
9393
9394  _proto.performEnter = function performEnter(mounting) {
9395    var _this2 = this;
9396
9397    var enter = this.props.enter;
9398    var appearing = this.context ? this.context.isMounting : mounting;
9399
9400    var _ref2 = this.props.nodeRef ? [appearing] : [react_dom.findDOMNode(this), appearing],
9401        maybeNode = _ref2[0],
9402        maybeAppearing = _ref2[1];
9403
9404    var timeouts = this.getTimeouts();
9405    var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED
9406    // if we are mounting and running this it means appear _must_ be set
9407
9408    if (!mounting && !enter || config.disabled) {
9409      this.safeSetState({
9410        status: ENTERED
9411      }, function () {
9412        _this2.props.onEntered(maybeNode);
9413      });
9414      return;
9415    }
9416
9417    this.props.onEnter(maybeNode, maybeAppearing);
9418    this.safeSetState({
9419      status: ENTERING
9420    }, function () {
9421      _this2.props.onEntering(maybeNode, maybeAppearing);
9422
9423      _this2.onTransitionEnd(enterTimeout, function () {
9424        _this2.safeSetState({
9425          status: ENTERED
9426        }, function () {
9427          _this2.props.onEntered(maybeNode, maybeAppearing);
9428        });
9429      });
9430    });
9431  };
9432
9433  _proto.performExit = function performExit() {
9434    var _this3 = this;
9435
9436    var exit = this.props.exit;
9437    var timeouts = this.getTimeouts();
9438    var maybeNode = this.props.nodeRef ? undefined : react_dom.findDOMNode(this); // no exit animation skip right to EXITED
9439
9440    if (!exit || config.disabled) {
9441      this.safeSetState({
9442        status: EXITED
9443      }, function () {
9444        _this3.props.onExited(maybeNode);
9445      });
9446      return;
9447    }
9448
9449    this.props.onExit(maybeNode);
9450    this.safeSetState({
9451      status: EXITING
9452    }, function () {
9453      _this3.props.onExiting(maybeNode);
9454
9455      _this3.onTransitionEnd(timeouts.exit, function () {
9456        _this3.safeSetState({
9457          status: EXITED
9458        }, function () {
9459          _this3.props.onExited(maybeNode);
9460        });
9461      });
9462    });
9463  };
9464
9465  _proto.cancelNextCallback = function cancelNextCallback() {
9466    if (this.nextCallback !== null) {
9467      this.nextCallback.cancel();
9468      this.nextCallback = null;
9469    }
9470  };
9471
9472  _proto.safeSetState = function safeSetState(nextState, callback) {
9473    // This shouldn't be necessary, but there are weird race conditions with
9474    // setState callbacks and unmounting in testing, so always make sure that
9475    // we can cancel any pending setState callbacks after we unmount.
9476    callback = this.setNextCallback(callback);
9477    this.setState(nextState, callback);
9478  };
9479
9480  _proto.setNextCallback = function setNextCallback(callback) {
9481    var _this4 = this;
9482
9483    var active = true;
9484
9485    this.nextCallback = function (event) {
9486      if (active) {
9487        active = false;
9488        _this4.nextCallback = null;
9489        callback(event);
9490      }
9491    };
9492
9493    this.nextCallback.cancel = function () {
9494      active = false;
9495    };
9496
9497    return this.nextCallback;
9498  };
9499
9500  _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {
9501    this.setNextCallback(handler);
9502    var node = this.props.nodeRef ? this.props.nodeRef.current : react_dom.findDOMNode(this);
9503    var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;
9504
9505    if (!node || doesNotHaveTimeoutOrListener) {
9506      setTimeout(this.nextCallback, 0);
9507      return;
9508    }
9509
9510    if (this.props.addEndListener) {
9511      var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],
9512          maybeNode = _ref3[0],
9513          maybeNextCallback = _ref3[1];
9514
9515      this.props.addEndListener(maybeNode, maybeNextCallback);
9516    }
9517
9518    if (timeout != null) {
9519      setTimeout(this.nextCallback, timeout);
9520    }
9521  };
9522
9523  _proto.render = function render() {
9524    var status = this.state.status;
9525
9526    if (status === UNMOUNTED) {
9527      return null;
9528    }
9529
9530    var _this$props = this.props,
9531        children = _this$props.children,
9532        _in = _this$props.in,
9533        _mountOnEnter = _this$props.mountOnEnter,
9534        _unmountOnExit = _this$props.unmountOnExit,
9535        _appear = _this$props.appear,
9536        _enter = _this$props.enter,
9537        _exit = _this$props.exit,
9538        _timeout = _this$props.timeout,
9539        _addEndListener = _this$props.addEndListener,
9540        _onEnter = _this$props.onEnter,
9541        _onEntering = _this$props.onEntering,
9542        _onEntered = _this$props.onEntered,
9543        _onExit = _this$props.onExit,
9544        _onExiting = _this$props.onExiting,
9545        _onExited = _this$props.onExited,
9546        _nodeRef = _this$props.nodeRef,
9547        childProps = (0,objectWithoutPropertiesLoose/* default */.Z)(_this$props, ["children", "in", "mountOnEnter", "unmountOnExit", "appear", "enter", "exit", "timeout", "addEndListener", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "nodeRef"]);
9548
9549    return (
9550      /*#__PURE__*/
9551      // allows for nested Transitions
9552      react.createElement(TransitionGroupContext/* default */.Z.Provider, {
9553        value: null
9554      }, typeof children === 'function' ? children(status, childProps) : react.cloneElement(react.Children.only(children), childProps))
9555    );
9556  };
9557
9558  return Transition;
9559}(react.Component);
9560
9561Transition.contextType = TransitionGroupContext/* default */.Z;
9562Transition.propTypes =  false ? 0 : {}; // Name the function so it is clearer in the documentation
9563
9564function noop() {}
9565
9566Transition.defaultProps = {
9567  in: false,
9568  mountOnEnter: false,
9569  unmountOnExit: false,
9570  appear: false,
9571  enter: true,
9572  exit: true,
9573  onEnter: noop,
9574  onEntering: noop,
9575  onEntered: noop,
9576  onExit: noop,
9577  onExiting: noop,
9578  onExited: noop
9579};
9580Transition.UNMOUNTED = UNMOUNTED;
9581Transition.EXITED = EXITED;
9582Transition.ENTERING = ENTERING;
9583Transition.ENTERED = ENTERED;
9584Transition.EXITING = EXITING;
9585/* harmony default export */ var esm_Transition = (Transition);
9586
9587/***/ }),
9588
9589/***/ 373350:
9590/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9591
9592"use strict";
9593
9594// EXPORTS
9595__webpack_require__.d(__webpack_exports__, {
9596  Z: function() { return /* binding */ esm_TransitionGroup; }
9597});
9598
9599// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
9600var objectWithoutPropertiesLoose = __webpack_require__(263366);
9601// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
9602var esm_extends = __webpack_require__(487462);
9603// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
9604var assertThisInitialized = __webpack_require__(497326);
9605// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
9606var inheritsLoose = __webpack_require__(894578);
9607// EXTERNAL MODULE: ./node_modules/react/index.js
9608var react = __webpack_require__(667294);
9609// EXTERNAL MODULE: ./node_modules/react-transition-group/esm/TransitionGroupContext.js
9610var TransitionGroupContext = __webpack_require__(500220);
9611;// CONCATENATED MODULE: ./node_modules/react-transition-group/esm/utils/ChildMapping.js
9612
9613/**
9614 * Given `this.props.children`, return an object mapping key to child.
9615 *
9616 * @param {*} children `this.props.children`
9617 * @return {object} Mapping of key to child
9618 */
9619
9620function getChildMapping(children, mapFn) {
9621  var mapper = function mapper(child) {
9622    return mapFn && (0,react.isValidElement)(child) ? mapFn(child) : child;
9623  };
9624
9625  var result = Object.create(null);
9626  if (children) react.Children.map(children, function (c) {
9627    return c;
9628  }).forEach(function (child) {
9629    // run the map function here instead so that the key is the computed one
9630    result[child.key] = mapper(child);
9631  });
9632  return result;
9633}
9634/**
9635 * When you're adding or removing children some may be added or removed in the
9636 * same render pass. We want to show *both* since we want to simultaneously
9637 * animate elements in and out. This function takes a previous set of keys
9638 * and a new set of keys and merges them with its best guess of the correct
9639 * ordering. In the future we may expose some of the utilities in
9640 * ReactMultiChild to make this easy, but for now React itself does not
9641 * directly have this concept of the union of prevChildren and nextChildren
9642 * so we implement it here.
9643 *
9644 * @param {object} prev prev children as returned from
9645 * `ReactTransitionChildMapping.getChildMapping()`.
9646 * @param {object} next next children as returned from
9647 * `ReactTransitionChildMapping.getChildMapping()`.
9648 * @return {object} a key set that contains all keys in `prev` and all keys
9649 * in `next` in a reasonable order.
9650 */
9651
9652function mergeChildMappings(prev, next) {
9653  prev = prev || {};
9654  next = next || {};
9655
9656  function getValueForKey(key) {
9657    return key in next ? next[key] : prev[key];
9658  } // For each key of `next`, the list of keys to insert before that key in
9659  // the combined list
9660
9661
9662  var nextKeysPending = Object.create(null);
9663  var pendingKeys = [];
9664
9665  for (var prevKey in prev) {
9666    if (prevKey in next) {
9667      if (pendingKeys.length) {
9668        nextKeysPending[prevKey] = pendingKeys;
9669        pendingKeys = [];
9670      }
9671    } else {
9672      pendingKeys.push(prevKey);
9673    }
9674  }
9675
9676  var i;
9677  var childMapping = {};
9678
9679  for (var nextKey in next) {
9680    if (nextKeysPending[nextKey]) {
9681      for (i = 0; i < nextKeysPending[nextKey].length; i++) {
9682        var pendingNextKey = nextKeysPending[nextKey][i];
9683        childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);
9684      }
9685    }
9686
9687    childMapping[nextKey] = getValueForKey(nextKey);
9688  } // Finally, add the keys which didn't appear before any key in `next`
9689
9690
9691  for (i = 0; i < pendingKeys.length; i++) {
9692    childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);
9693  }
9694
9695  return childMapping;
9696}
9697
9698function getProp(child, prop, props) {
9699  return props[prop] != null ? props[prop] : child.props[prop];
9700}
9701
9702function getInitialChildMapping(props, onExited) {
9703  return getChildMapping(props.children, function (child) {
9704    return (0,react.cloneElement)(child, {
9705      onExited: onExited.bind(null, child),
9706      in: true,
9707      appear: getProp(child, 'appear', props),
9708      enter: getProp(child, 'enter', props),
9709      exit: getProp(child, 'exit', props)
9710    });
9711  });
9712}
9713function getNextChildMapping(nextProps, prevChildMapping, onExited) {
9714  var nextChildMapping = getChildMapping(nextProps.children);
9715  var children = mergeChildMappings(prevChildMapping, nextChildMapping);
9716  Object.keys(children).forEach(function (key) {
9717    var child = children[key];
9718    if (!(0,react.isValidElement)(child)) return;
9719    var hasPrev = (key in prevChildMapping);
9720    var hasNext = (key in nextChildMapping);
9721    var prevChild = prevChildMapping[key];
9722    var isLeaving = (0,react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)
9723
9724    if (hasNext && (!hasPrev || isLeaving)) {
9725      // console.log('entering', key)
9726      children[key] = (0,react.cloneElement)(child, {
9727        onExited: onExited.bind(null, child),
9728        in: true,
9729        exit: getProp(child, 'exit', nextProps),
9730        enter: getProp(child, 'enter', nextProps)
9731      });
9732    } else if (!hasNext && hasPrev && !isLeaving) {
9733      // item is old (exiting)
9734      // console.log('leaving', key)
9735      children[key] = (0,react.cloneElement)(child, {
9736        in: false
9737      });
9738    } else if (hasNext && hasPrev && (0,react.isValidElement)(prevChild)) {
9739      // item hasn't changed transition states
9740      // copy over the last transition props;
9741      // console.log('unchanged', key)
9742      children[key] = (0,react.cloneElement)(child, {
9743        onExited: onExited.bind(null, child),
9744        in: prevChild.props.in,
9745        exit: getProp(child, 'exit', nextProps),
9746        enter: getProp(child, 'enter', nextProps)
9747      });
9748    }
9749  });
9750  return children;
9751}
9752;// CONCATENATED MODULE: ./node_modules/react-transition-group/esm/TransitionGroup.js
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762var values = Object.values || function (obj) {
9763  return Object.keys(obj).map(function (k) {
9764    return obj[k];
9765  });
9766};
9767
9768var defaultProps = {
9769  component: 'div',
9770  childFactory: function childFactory(child) {
9771    return child;
9772  }
9773};
9774/**
9775 * The `<TransitionGroup>` component manages a set of transition components
9776 * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition
9777 * components, `<TransitionGroup>` is a state machine for managing the mounting
9778 * and unmounting of components over time.
9779 *
9780 * Consider the example below. As items are removed or added to the TodoList the
9781 * `in` prop is toggled automatically by the `<TransitionGroup>`.
9782 *
9783 * Note that `<TransitionGroup>`  does not define any animation behavior!
9784 * Exactly _how_ a list item animates is up to the individual transition
9785 * component. This means you can mix and match animations across different list
9786 * items.
9787 */
9788
9789var TransitionGroup = /*#__PURE__*/function (_React$Component) {
9790  (0,inheritsLoose/* default */.Z)(TransitionGroup, _React$Component);
9791
9792  function TransitionGroup(props, context) {
9793    var _this;
9794
9795    _this = _React$Component.call(this, props, context) || this;
9796
9797    var handleExited = _this.handleExited.bind((0,assertThisInitialized/* default */.Z)(_this)); // Initial children should all be entering, dependent on appear
9798
9799
9800    _this.state = {
9801      contextValue: {
9802        isMounting: true
9803      },
9804      handleExited: handleExited,
9805      firstRender: true
9806    };
9807    return _this;
9808  }
9809
9810  var _proto = TransitionGroup.prototype;
9811
9812  _proto.componentDidMount = function componentDidMount() {
9813    this.mounted = true;
9814    this.setState({
9815      contextValue: {
9816        isMounting: false
9817      }
9818    });
9819  };
9820
9821  _proto.componentWillUnmount = function componentWillUnmount() {
9822    this.mounted = false;
9823  };
9824
9825  TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {
9826    var prevChildMapping = _ref.children,
9827        handleExited = _ref.handleExited,
9828        firstRender = _ref.firstRender;
9829    return {
9830      children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),
9831      firstRender: false
9832    };
9833  } // node is `undefined` when user provided `nodeRef` prop
9834  ;
9835
9836  _proto.handleExited = function handleExited(child, node) {
9837    var currentChildMapping = getChildMapping(this.props.children);
9838    if (child.key in currentChildMapping) return;
9839
9840    if (child.props.onExited) {
9841      child.props.onExited(node);
9842    }
9843
9844    if (this.mounted) {
9845      this.setState(function (state) {
9846        var children = (0,esm_extends/* default */.Z)({}, state.children);
9847
9848        delete children[child.key];
9849        return {
9850          children: children
9851        };
9852      });
9853    }
9854  };
9855
9856  _proto.render = function render() {
9857    var _this$props = this.props,
9858        Component = _this$props.component,
9859        childFactory = _this$props.childFactory,
9860        props = (0,objectWithoutPropertiesLoose/* default */.Z)(_this$props, ["component", "childFactory"]);
9861
9862    var contextValue = this.state.contextValue;
9863    var children = values(this.state.children).map(childFactory);
9864    delete props.appear;
9865    delete props.enter;
9866    delete props.exit;
9867
9868    if (Component === null) {
9869      return /*#__PURE__*/react.createElement(TransitionGroupContext/* default */.Z.Provider, {
9870        value: contextValue
9871      }, children);
9872    }
9873
9874    return /*#__PURE__*/react.createElement(TransitionGroupContext/* default */.Z.Provider, {
9875      value: contextValue
9876    }, /*#__PURE__*/react.createElement(Component, props, children));
9877  };
9878
9879  return TransitionGroup;
9880}(react.Component);
9881
9882TransitionGroup.propTypes =  false ? 0 : {};
9883TransitionGroup.defaultProps = defaultProps;
9884/* harmony default export */ var esm_TransitionGroup = (TransitionGroup);
9885
9886/***/ }),
9887
9888/***/ 500220:
9889/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9890
9891"use strict";
9892/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(667294);
9893
9894/* harmony default export */ __webpack_exports__.Z = (react__WEBPACK_IMPORTED_MODULE_0__.createContext(null));
9895
9896/***/ }),
9897
9898/***/ 14890:
9899/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9900
9901"use strict";
9902/* harmony export */ __webpack_require__.d(__webpack_exports__, {
9903/* harmony export */   MT: function() { return /* binding */ createStore; },
9904/* harmony export */   UY: function() { return /* binding */ combineReducers; },
9905/* harmony export */   md: function() { return /* binding */ applyMiddleware; },
9906/* harmony export */   qC: function() { return /* binding */ compose; }
9907/* harmony export */ });
9908/* unused harmony exports __DO_NOT_USE__ActionTypes, bindActionCreators, legacy_createStore */
9909/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(601413);
9910
9911
9912/**
9913 * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js
9914 *
9915 * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes
9916 * during build.
9917 * @param {number} code
9918 */
9919function formatProdErrorMessage(code) {
9920  return "Minified Redux error #" + code + "; visit https://redux.js.org/Errors?code=" + code + " for the full message or " + 'use the non-minified dev environment for full errors. ';
9921}
9922
9923// Inlined version of the `symbol-observable` polyfill
9924var $$observable = (function () {
9925  return typeof Symbol === 'function' && Symbol.observable || '@@observable';
9926})();
9927
9928/**
9929 * These are private action types reserved by Redux.
9930 * For any unknown actions, you must return the current state.
9931 * If the current state is undefined, you must return the initial state.
9932 * Do not reference these action types directly in your code.
9933 */
9934var randomString = function randomString() {
9935  return Math.random().toString(36).substring(7).split('').join('.');
9936};
9937
9938var ActionTypes = {
9939  INIT: "@@redux/INIT" + randomString(),
9940  REPLACE: "@@redux/REPLACE" + randomString(),
9941  PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {
9942    return "@@redux/PROBE_UNKNOWN_ACTION" + randomString();
9943  }
9944};
9945
9946/**
9947 * @param {any} obj The object to inspect.
9948 * @returns {boolean} True if the argument appears to be a plain object.
9949 */
9950function isPlainObject(obj) {
9951  if (typeof obj !== 'object' || obj === null) return false;
9952  var proto = obj;
9953
9954  while (Object.getPrototypeOf(proto) !== null) {
9955    proto = Object.getPrototypeOf(proto);
9956  }
9957
9958  return Object.getPrototypeOf(obj) === proto;
9959}
9960
9961// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of
9962function miniKindOf(val) {
9963  if (val === void 0) return 'undefined';
9964  if (val === null) return 'null';
9965  var type = typeof val;
9966
9967  switch (type) {
9968    case 'boolean':
9969    case 'string':
9970    case 'number':
9971    case 'symbol':
9972    case 'function':
9973      {
9974        return type;
9975      }
9976  }
9977
9978  if (Array.isArray(val)) return 'array';
9979  if (isDate(val)) return 'date';
9980  if (isError(val)) return 'error';
9981  var constructorName = ctorName(val);
9982
9983  switch (constructorName) {
9984    case 'Symbol':
9985    case 'Promise':
9986    case 'WeakMap':
9987    case 'WeakSet':
9988    case 'Map':
9989    case 'Set':
9990      return constructorName;
9991  } // other
9992
9993
9994  return type.slice(8, -1).toLowerCase().replace(/\s/g, '');
9995}
9996
9997function ctorName(val) {
9998  return typeof val.constructor === 'function' ? val.constructor.name : null;
9999}
10000
10001function isError(val) {
10002  return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';
10003}
10004
10005function isDate(val) {
10006  if (val instanceof Date) return true;
10007  return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';
10008}
10009
10010function kindOf(val) {
10011  var typeOfVal = typeof val;
10012
10013  if (false) {}
10014
10015  return typeOfVal;
10016}
10017
10018/**
10019 * @deprecated
10020 *
10021 * **We recommend using the `configureStore` method
10022 * of the `@reduxjs/toolkit` package**, which replaces `createStore`.
10023 *
10024 * Redux Toolkit is our recommended approach for writing Redux logic today,
10025 * including store setup, reducers, data fetching, and more.
10026 *
10027 * **For more details, please read this Redux docs page:**
10028 * **https://redux.js.org/introduction/why-rtk-is-redux-today**
10029 *
10030 * `configureStore` from Redux Toolkit is an improved version of `createStore` that
10031 * simplifies setup and helps avoid common bugs.
10032 *
10033 * You should not be using the `redux` core package by itself today, except for learning purposes.
10034 * The `createStore` method from the core `redux` package will not be removed, but we encourage
10035 * all users to migrate to using Redux Toolkit for all Redux code.
10036 *
10037 * If you want to use `createStore` without this visual deprecation warning, use
10038 * the `legacy_createStore` import instead:
10039 *
10040 * `import { legacy_createStore as createStore} from 'redux'`
10041 *
10042 */
10043
10044function createStore(reducer, preloadedState, enhancer) {
10045  var _ref2;
10046
10047  if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {
10048    throw new Error( true ? formatProdErrorMessage(0) : 0);
10049  }
10050
10051  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {
10052    enhancer = preloadedState;
10053    preloadedState = undefined;
10054  }
10055
10056  if (typeof enhancer !== 'undefined') {
10057    if (typeof enhancer !== 'function') {
10058      throw new Error( true ? formatProdErrorMessage(1) : 0);
10059    }
10060
10061    return enhancer(createStore)(reducer, preloadedState);
10062  }
10063
10064  if (typeof reducer !== 'function') {
10065    throw new Error( true ? formatProdErrorMessage(2) : 0);
10066  }
10067
10068  var currentReducer = reducer;
10069  var currentState = preloadedState;
10070  var currentListeners = [];
10071  var nextListeners = currentListeners;
10072  var isDispatching = false;
10073  /**
10074   * This makes a shallow copy of currentListeners so we can use
10075   * nextListeners as a temporary list while dispatching.
10076   *
10077   * This prevents any bugs around consumers calling
10078   * subscribe/unsubscribe in the middle of a dispatch.
10079   */
10080
10081  function ensureCanMutateNextListeners() {
10082    if (nextListeners === currentListeners) {
10083      nextListeners = currentListeners.slice();
10084    }
10085  }
10086  /**
10087   * Reads the state tree managed by the store.
10088   *
10089   * @returns {any} The current state tree of your application.
10090   */
10091
10092
10093  function getState() {
10094    if (isDispatching) {
10095      throw new Error( true ? formatProdErrorMessage(3) : 0);
10096    }
10097
10098    return currentState;
10099  }
10100  /**
10101   * Adds a change listener. It will be called any time an action is dispatched,
10102   * and some part of the state tree may potentially have changed. You may then
10103   * call `getState()` to read the current state tree inside the callback.
10104   *
10105   * You may call `dispatch()` from a change listener, with the following
10106   * caveats:
10107   *
10108   * 1. The subscriptions are snapshotted just before every `dispatch()` call.
10109   * If you subscribe or unsubscribe while the listeners are being invoked, this
10110   * will not have any effect on the `dispatch()` that is currently in progress.
10111   * However, the next `dispatch()` call, whether nested or not, will use a more
10112   * recent snapshot of the subscription list.
10113   *
10114   * 2. The listener should not expect to see all state changes, as the state
10115   * might have been updated multiple times during a nested `dispatch()` before
10116   * the listener is called. It is, however, guaranteed that all subscribers
10117   * registered before the `dispatch()` started will be called with the latest
10118   * state by the time it exits.
10119   *
10120   * @param {Function} listener A callback to be invoked on every dispatch.
10121   * @returns {Function} A function to remove this change listener.
10122   */
10123
10124
10125  function subscribe(listener) {
10126    if (typeof listener !== 'function') {
10127      throw new Error( true ? formatProdErrorMessage(4) : 0);
10128    }
10129
10130    if (isDispatching) {
10131      throw new Error( true ? formatProdErrorMessage(5) : 0);
10132    }
10133
10134    var isSubscribed = true;
10135    ensureCanMutateNextListeners();
10136    nextListeners.push(listener);
10137    return function unsubscribe() {
10138      if (!isSubscribed) {
10139        return;
10140      }
10141
10142      if (isDispatching) {
10143        throw new Error( true ? formatProdErrorMessage(6) : 0);
10144      }
10145
10146      isSubscribed = false;
10147      ensureCanMutateNextListeners();
10148      var index = nextListeners.indexOf(listener);
10149      nextListeners.splice(index, 1);
10150      currentListeners = null;
10151    };
10152  }
10153  /**
10154   * Dispatches an action. It is the only way to trigger a state change.
10155   *
10156   * The `reducer` function, used to create the store, will be called with the
10157   * current state tree and the given `action`. Its return value will
10158   * be considered the **next** state of the tree, and the change listeners
10159   * will be notified.
10160   *
10161   * The base implementation only supports plain object actions. If you want to
10162   * dispatch a Promise, an Observable, a thunk, or something else, you need to
10163   * wrap your store creating function into the corresponding middleware. For
10164   * example, see the documentation for the `redux-thunk` package. Even the
10165   * middleware will eventually dispatch plain object actions using this method.
10166   *
10167   * @param {Object} action A plain object representing “what changed”. It is
10168   * a good idea to keep actions serializable so you can record and replay user
10169   * sessions, or use the time travelling `redux-devtools`. An action must have
10170   * a `type` property which may not be `undefined`. It is a good idea to use
10171   * string constants for action types.
10172   *
10173   * @returns {Object} For convenience, the same action object you dispatched.
10174   *
10175   * Note that, if you use a custom middleware, it may wrap `dispatch()` to
10176   * return something else (for example, a Promise you can await).
10177   */
10178
10179
10180  function dispatch(action) {
10181    if (!isPlainObject(action)) {
10182      throw new Error( true ? formatProdErrorMessage(7) : 0);
10183    }
10184
10185    if (typeof action.type === 'undefined') {
10186      throw new Error( true ? formatProdErrorMessage(8) : 0);
10187    }
10188
10189    if (isDispatching) {
10190      throw new Error( true ? formatProdErrorMessage(9) : 0);
10191    }
10192
10193    try {
10194      isDispatching = true;
10195      currentState = currentReducer(currentState, action);
10196    } finally {
10197      isDispatching = false;
10198    }
10199
10200    var listeners = currentListeners = nextListeners;
10201
10202    for (var i = 0; i < listeners.length; i++) {
10203      var listener = listeners[i];
10204      listener();
10205    }
10206
10207    return action;
10208  }
10209  /**
10210   * Replaces the reducer currently used by the store to calculate the state.
10211   *
10212   * You might need this if your app implements code splitting and you want to
10213   * load some of the reducers dynamically. You might also need this if you
10214   * implement a hot reloading mechanism for Redux.
10215   *
10216   * @param {Function} nextReducer The reducer for the store to use instead.
10217   * @returns {void}
10218   */
10219
10220
10221  function replaceReducer(nextReducer) {
10222    if (typeof nextReducer !== 'function') {
10223      throw new Error( true ? formatProdErrorMessage(10) : 0);
10224    }
10225
10226    currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.
10227    // Any reducers that existed in both the new and old rootReducer
10228    // will receive the previous state. This effectively populates
10229    // the new state tree with any relevant data from the old one.
10230
10231    dispatch({
10232      type: ActionTypes.REPLACE
10233    });
10234  }
10235  /**
10236   * Interoperability point for observable/reactive libraries.
10237   * @returns {observable} A minimal observable of state changes.
10238   * For more information, see the observable proposal:
10239   * https://github.com/tc39/proposal-observable
10240   */
10241
10242
10243  function observable() {
10244    var _ref;
10245
10246    var outerSubscribe = subscribe;
10247    return _ref = {
10248      /**
10249       * The minimal observable subscription method.
10250       * @param {Object} observer Any object that can be used as an observer.
10251       * The observer object should have a `next` method.
10252       * @returns {subscription} An object with an `unsubscribe` method that can
10253       * be used to unsubscribe the observable from the store, and prevent further
10254       * emission of values from the observable.
10255       */
10256      subscribe: function subscribe(observer) {
10257        if (typeof observer !== 'object' || observer === null) {
10258          throw new Error( true ? formatProdErrorMessage(11) : 0);
10259        }
10260
10261        function observeState() {
10262          if (observer.next) {
10263            observer.next(getState());
10264          }
10265        }
10266
10267        observeState();
10268        var unsubscribe = outerSubscribe(observeState);
10269        return {
10270          unsubscribe: unsubscribe
10271        };
10272      }
10273    }, _ref[$$observable] = function () {
10274      return this;
10275    }, _ref;
10276  } // When a store is created, an "INIT" action is dispatched so that every
10277  // reducer returns their initial state. This effectively populates
10278  // the initial state tree.
10279
10280
10281  dispatch({
10282    type: ActionTypes.INIT
10283  });
10284  return _ref2 = {
10285    dispatch: dispatch,
10286    subscribe: subscribe,
10287    getState: getState,
10288    replaceReducer: replaceReducer
10289  }, _ref2[$$observable] = observable, _ref2;
10290}
10291/**
10292 * Creates a Redux store that holds the state tree.
10293 *
10294 * **We recommend using `configureStore` from the
10295 * `@reduxjs/toolkit` package**, which replaces `createStore`:
10296 * **https://redux.js.org/introduction/why-rtk-is-redux-today**
10297 *
10298 * The only way to change the data in the store is to call `dispatch()` on it.
10299 *
10300 * There should only be a single store in your app. To specify how different
10301 * parts of the state tree respond to actions, you may combine several reducers
10302 * into a single reducer function by using `combineReducers`.
10303 *
10304 * @param {Function} reducer A function that returns the next state tree, given
10305 * the current state tree and the action to handle.
10306 *
10307 * @param {any} [preloadedState] The initial state. You may optionally specify it
10308 * to hydrate the state from the server in universal apps, or to restore a
10309 * previously serialized user session.
10310 * If you use `combineReducers` to produce the root reducer function, this must be
10311 * an object with the same shape as `combineReducers` keys.
10312 *
10313 * @param {Function} [enhancer] The store enhancer. You may optionally specify it
10314 * to enhance the store with third-party capabilities such as middleware,
10315 * time travel, persistence, etc. The only store enhancer that ships with Redux
10316 * is `applyMiddleware()`.
10317 *
10318 * @returns {Store} A Redux store that lets you read the state, dispatch actions
10319 * and subscribe to changes.
10320 */
10321
10322var legacy_createStore = (/* unused pure expression or super */ null && (createStore));
10323
10324/**
10325 * Prints a warning in the console if it exists.
10326 *
10327 * @param {String} message The warning message.
10328 * @returns {void}
10329 */
10330function warning(message) {
10331  /* eslint-disable no-console */
10332  if (typeof console !== 'undefined' && typeof console.error === 'function') {
10333    console.error(message);
10334  }
10335  /* eslint-enable no-console */
10336
10337
10338  try {
10339    // This error was thrown as a convenience so that if you enable
10340    // "break on all exceptions" in your console,
10341    // it would pause the execution at this line.
10342    throw new Error(message);
10343  } catch (e) {} // eslint-disable-line no-empty
10344
10345}
10346
10347function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unex
10347pectedKeyCache) {
10348  var reducerKeys = Object.keys(reducers);
10349  var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';
10350
10351  if (reducerKeys.length === 0) {
10352    return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';
10353  }
10354
10355  if (!isPlainObject(inputState)) {
10356    return "The " + argumentName + " has unexpected type of \"" + kindOf(inputState) + "\". Expected argument to be an object with the following " + ("keys: \"" + reducerKeys.join('", "') + "\"");
10357  }
10358
10359  var unexpectedKeys = Object.keys(inputState).filter(function (key) {
10360    return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];
10361  });
10362  unexpectedKeys.forEach(function (key) {
10363    unexpectedKeyCache[key] = true;
10364  });
10365  if (action && action.type === ActionTypes.REPLACE) return;
10366
10367  if (unexpectedKeys.length > 0) {
10368    return "Unexpected " + (unexpectedKeys.length > 1 ? 'keys' : 'key') + " " + ("\"" + unexpectedKeys.join('", "') + "\" found in " + argumentName + ". ") + "Expected to find one of the known reducer keys instead: " + ("\"" + reducerKeys.join('", "') + "\". Unexpected keys will be ignored.");
10369  }
10370}
10371
10372function assertReducerShape(reducers) {
10373  Object.keys(reducers).forEach(function (key) {
10374    var reducer = reducers[key];
10375    var initialState = reducer(undefined, {
10376      type: ActionTypes.INIT
10377    });
10378
10379    if (typeof initialState === 'undefined') {
10380      throw new Error( true ? formatProdErrorMessage(12) : 0);
10381    }
10382
10383    if (typeof reducer(undefined, {
10384      type: ActionTypes.PROBE_UNKNOWN_ACTION()
10385    }) === 'undefined') {
10386      throw new Error( true ? formatProdErrorMessage(13) : 0);
10387    }
10388  });
10389}
10390/**
10391 * Turns an object whose values are different reducer functions, into a single
10392 * reducer function. It will call every child reducer, and gather their results
10393 * into a single state object, whose keys correspond to the keys of the passed
10394 * reducer functions.
10395 *
10396 * @param {Object} reducers An object whose values correspond to different
10397 * reducer functions that need to be combined into one. One handy way to obtain
10398 * it is to use ES6 `import * as reducers` syntax. The reducers may never return
10399 * undefined for any action. Instead, they should return their initial state
10400 * if the state passed to them was undefined, and the current state for any
10401 * unrecognized action.
10402 *
10403 * @returns {Function} A reducer function that invokes every reducer inside the
10404 * passed object, and builds a state object with the same shape.
10405 */
10406
10407
10408function combineReducers(reducers) {
10409  var reducerKeys = Object.keys(reducers);
10410  var finalReducers = {};
10411
10412  for (var i = 0; i < reducerKeys.length; i++) {
10413    var key = reducerKeys[i];
10414
10415    if (false) {}
10416
10417    if (typeof reducers[key] === 'function') {
10418      finalReducers[key] = reducers[key];
10419    }
10420  }
10421
10422  var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same
10423  // keys multiple times.
10424
10425  var unexpectedKeyCache;
10426
10427  if (false) {}
10428
10429  var shapeAssertionError;
10430
10431  try {
10432    assertReducerShape(finalReducers);
10433  } catch (e) {
10434    shapeAssertionError = e;
10435  }
10436
10437  return function combination(state, action) {
10438    if (state === void 0) {
10439      state = {};
10440    }
10441
10442    if (shapeAssertionError) {
10443      throw shapeAssertionError;
10444    }
10445
10446    if (false) { var warningMessage; }
10447
10448    var hasChanged = false;
10449    var nextState = {};
10450
10451    for (var _i = 0; _i < finalReducerKeys.length; _i++) {
10452      var _key = finalReducerKeys[_i];
10453      var reducer = finalReducers[_key];
10454      var previousStateForKey = state[_key];
10455      var nextStateForKey = reducer(previousStateForKey, action);
10456
10457      if (typeof nextStateForKey === 'undefined') {
10458        var actionType = action && action.type;
10459        throw new Error( true ? formatProdErrorMessage(14) : 0);
10460      }
10461
10462      nextState[_key] = nextStateForKey;
10463      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;
10464    }
10465
10466    hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;
10467    return hasChanged ? nextState : state;
10468  };
10469}
10470
10471function bindActionCreator(actionCreator, dispatch) {
10472  return function () {
10473    return dispatch(actionCreator.apply(this, arguments));
10474  };
10475}
10476/**
10477 * Turns an object whose values are action creators, into an object with the
10478 * same keys, but with every function wrapped into a `dispatch` call so they
10479 * may be invoked directly. This is just a convenience method, as you can call
10480 * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.
10481 *
10482 * For convenience, you can also pass an action creator as the first argument,
10483 * and get a dispatch wrapped function in return.
10484 *
10485 * @param {Function|Object} actionCreators An object whose values are action
10486 * creator functions. One handy way to obtain it is to use ES6 `import * as`
10487 * syntax. You may also pass a single function.
10488 *
10489 * @param {Function} dispatch The `dispatch` function available on your Redux
10490 * store.
10491 *
10492 * @returns {Function|Object} The object mimicking the original object, but with
10493 * every action creator wrapped into the `dispatch` call. If you passed a
10494 * function as `actionCreators`, the return value will also be a single
10495 * function.
10496 */
10497
10498
10499function bindActionCreators(actionCreators, dispatch) {
10500  if (typeof actionCreators === 'function') {
10501    return bindActionCreator(actionCreators, dispatch);
10502  }
10503
10504  if (typeof actionCreators !== 'object' || actionCreators === null) {
10505    throw new Error( true ? formatProdErrorMessage(16) : 0);
10506  }
10507
10508  var boundActionCreators = {};
10509
10510  for (var key in actionCreators) {
10511    var actionCreator = actionCreators[key];
10512
10513    if (typeof actionCreator === 'function') {
10514      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);
10515    }
10516  }
10517
10518  return boundActionCreators;
10519}
10520
10521/**
10522 * Composes single-argument functions from right to left. The rightmost
10523 * function can take multiple arguments as it provides the signature for
10524 * the resulting composite function.
10525 *
10526 * @param {...Function} funcs The functions to compose.
10527 * @returns {Function} A function obtained by composing the argument functions
10528 * from right to left. For example, compose(f, g, h) is identical to doing
10529 * (...args) => f(g(h(...args))).
10530 */
10531function compose() {
10532  for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {
10533    funcs[_key] = arguments[_key];
10534  }
10535
10536  if (funcs.length === 0) {
10537    return function (arg) {
10538      return arg;
10539    };
10540  }
10541
10542  if (funcs.length === 1) {
10543    return funcs[0];
10544  }
10545
10546  return funcs.reduce(function (a, b) {
10547    return function () {
10548      return a(b.apply(void 0, arguments));
10549    };
10550  });
10551}
10552
10553/**
10554 * Creates a store enhancer that applies middleware to the dispatch method
10555 * of the Redux store. This is handy for a variety of tasks, such as expressing
10556 * asynchronous actions in a concise manner, or logging every action payload.
10557 *
10558 * See `redux-thunk` package as an example of the Redux middleware.
10559 *
10560 * Because middleware is potentially asynchronous, this should be the first
10561 * store enhancer in the composition chain.
10562 *
10563 * Note that each middleware will be given the `dispatch` and `getState` functions
10564 * as named arguments.
10565 *
10566 * @param {...Function} middlewares The middleware chain to be applied.
10567 * @returns {Function} A store enhancer applying the middleware.
10568 */
10569
10570function applyMiddleware() {
10571  for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {
10572    middlewares[_key] = arguments[_key];
10573  }
10574
10575  return function (createStore) {
10576    return function () {
10577      var store = createStore.apply(void 0, arguments);
10578
10579      var _dispatch = function dispatch() {
10580        throw new Error( true ? formatProdErrorMessage(15) : 0);
10581      };
10582
10583      var middlewareAPI = {
10584        getState: store.getState,
10585        dispatch: function dispatch() {
10586          return _dispatch.apply(void 0, arguments);
10587        }
10588      };
10589      var chain = middlewares.map(function (middleware) {
10590        return middleware(middlewareAPI);
10591      });
10592      _dispatch = compose.apply(void 0, chain)(store.dispatch);
10593      return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, store), {}, {
10594        dispatch: _dispatch
10595      });
10596    };
10597  };
10598}
10599
10600
10601
10602
10603/***/ }),
10604
10605/***/ 568697:
10606/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10607
10608"use strict";
10609
10610// EXPORTS
10611__webpack_require__.d(__webpack_exports__, {
10612  P1: function() { return /* binding */ createSelector; }
10613});
10614
10615// UNUSED EXPORTS: createSelectorCreator, createStructuredSelector, defaultEqualityCheck, defaultMemoize
10616
10617;// CONCATENATED MODULE: ./node_modules/reselect/es/defaultMemoize.js
10618// Cache implementation based on Erik Rasmussen's `lru-memoize`:
10619// https://github.com/erikras/lru-memoize
10620var NOT_FOUND = 'NOT_FOUND';
10621
10622function createSingletonCache(equals) {
10623  var entry;
10624  return {
10625    get: function get(key) {
10626      if (entry && equals(entry.key, key)) {
10627        return entry.value;
10628      }
10629
10630      return NOT_FOUND;
10631    },
10632    put: function put(key, value) {
10633      entry = {
10634        key: key,
10635        value: value
10636      };
10637    },
10638    getEntries: function getEntries() {
10639      return entry ? [entry] : [];
10640    },
10641    clear: function clear() {
10642      entry = undefined;
10643    }
10644  };
10645}
10646
10647function createLruCache(maxSize, equals) {
10648  var entries = [];
10649
10650  function get(key) {
10651    var cacheIndex = entries.findIndex(function (entry) {
10652      return equals(key, entry.key);
10653    }); // We found a cached entry
10654
10655    if (cacheIndex > -1) {
10656      var entry = entries[cacheIndex]; // Cached entry not at top of cache, move it to the top
10657
10658      if (cacheIndex > 0) {
10659        entries.splice(cacheIndex, 1);
10660        entries.unshift(entry);
10661      }
10662
10663      return entry.value;
10664    } // No entry found in cache, return sentinel
10665
10666
10667    return NOT_FOUND;
10668  }
10669
10670  function put(key, value) {
10671    if (get(key) === NOT_FOUND) {
10672      // TODO Is unshift slow?
10673      entries.unshift({
10674        key: key,
10675        value: value
10676      });
10677
10678      if (entries.length > maxSize) {
10679        entries.pop();
10680      }
10681    }
10682  }
10683
10684  function getEntries() {
10685    return entries;
10686  }
10687
10688  function clear() {
10689    entries = [];
10690  }
10691
10692  return {
10693    get: get,
10694    put: put,
10695    getEntries: getEntries,
10696    clear: clear
10697  };
10698}
10699
10700var defaultEqualityCheck = function defaultEqualityCheck(a, b) {
10701  return a === b;
10702};
10703function createCacheKeyComparator(equalityCheck) {
10704  return function areArgumentsShallowlyEqual(prev, next) {
10705    if (prev === null || next === null || prev.length !== next.length) {
10706      return false;
10707    } // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.
10708
10709
10710    var length = prev.length;
10711
10712    for (var i = 0; i < length; i++) {
10713      if (!equalityCheck(prev[i], next[i])) {
10714        return false;
10715      }
10716    }
10717
10718    return true;
10719  };
10720}
10721// defaultMemoize now supports a configurable cache size with LRU behavior,
10722// and optional comparison of the result value with existing values
10723function defaultMemoize(func, equalityCheckOrOptions) {
10724  var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : {
10725    equalityCheck: equalityCheckOrOptions
10726  };
10727  var _providedOptions$equa = providedOptions.equalityCheck,
10728      equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa,
10729      _providedOptions$maxS = providedOptions.maxSize,
10730      maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS,
10731      resultEqualityCheck = providedOptions.resultEqualityCheck;
10732  var comparator = createCacheKeyComparator(equalityCheck);
10733  var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); // we reference arguments instead of spreading them for performance reasons
10734
10735  function memoized() {
10736    var value = cache.get(arguments);
10737
10738    if (value === NOT_FOUND) {
10739      // @ts-ignore
10740      value = func.apply(null, arguments);
10741
10742      if (resultEqualityCheck) {
10743        var entries = cache.getEntries();
10744        var matchingEntry = entries.find(function (entry) {
10745          return resultEqualityCheck(entry.value, value);
10746        });
10747
10748        if (matchingEntry) {
10749          value = matchingEntry.value;
10750        }
10751      }
10752
10753      cache.put(arguments, value);
10754    }
10755
10756    return value;
10757  }
10758
10759  memoized.clearCache = function () {
10760    return cache.clear();
10761  };
10762
10763  return memoized;
10764}
10765;// CONCATENATED MODULE: ./node_modules/reselect/es/index.js
10766
10767
10768
10769function getDependencies(funcs) {
10770  var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;
10771
10772  if (!dependencies.every(function (dep) {
10773    return typeof dep === 'function';
10774  })) {
10775    var dependencyTypes = dependencies.map(function (dep) {
10776      return typeof dep === 'function' ? "function " + (dep.name || 'unnamed') + "()" : typeof dep;
10777    }).join(', ');
10778    throw new Error("createSelector expects all input-selectors to be functions, but received the following types: [" + dependencyTypes + "]");
10779  }
10780
10781  return dependencies;
10782}
10783
10784function createSelectorCreator(memoize) {
10785  for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
10786    memoizeOptionsFromArgs[_key - 1] = arguments[_key];
10787  }
10788
10789  var createSelector = function createSelector() {
10790    for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
10791      funcs[_key2] = arguments[_key2];
10792    }
10793
10794    var _recomputations = 0;
10795
10796    var _lastResult; // Due to the intricacies of rest params, we can't do an optional arg after `...funcs`.
10797    // So, start by declaring the default value here.
10798    // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)
10799
10800
10801    var directlyPassedOptions = {
10802      memoizeOptions: undefined
10803    }; // Normally, the result func or "output selector" is the last arg
10804
10805    var resultFunc = funcs.pop(); // If the result func is actually an _object_, assume it's our options object
10806
10807    if (typeof resultFunc === 'object') {
10808      directlyPassedOptions = resultFunc; // and pop the real result func off
10809
10810      resultFunc = funcs.pop();
10811    }
10812
10813    if (typeof resultFunc !== 'function') {
10814      throw new Error("createSelector expects an output function after the inputs, but received: [" + typeof resultFunc + "]");
10815    } // Determine which set of options we're using. Prefer options passed directly,
10816    // but fall back to options given to createSelectorCreator.
10817
10818
10819    var _directlyPassedOption = directlyPassedOptions,
10820        _directlyPassedOption2 = _directlyPassedOption.memoizeOptions,
10821        memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer
10822    // is an array. In most libs I've looked at, it's an equality function or options object.
10823    // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full
10824    // user-provided array of options. Otherwise, it must be just the _first_ arg, and so
10825    // we wrap it in an array so we can apply it.
10826
10827    var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];
10828    var dependencies = getDependencies(funcs);
10829    var memoizedResultFunc = memoize.apply(void 0, [function recomputationWrapper() {
10830      _recomputations++; // apply arguments instead of spreading for performance.
10831
10832      return resultFunc.apply(null, arguments);
10833    }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.
10834
10835    var selector = memoize(function dependenciesChecker() {
10836      var params = [];
10837      var length = dependencies.length;
10838
10839      for (var i = 0; i < length; i++) {
10840        // apply arguments instead of spreading and mutate a local list of params for performance.
10841        // @ts-ignore
10842        params.push(dependencies[i].apply(null, arguments));
10843      } // apply arguments instead of spreading for performance.
10844
10845
10846      _lastResult = memoizedResultFunc.apply(null, params);
10847      return _lastResult;
10848    });
10849    Object.assign(selector, {
10850      resultFunc: resultFunc,
10851      memoizedResultFunc: memoizedResultFunc,
10852      dependencies: dependencies,
10853      lastResult: function lastResult() {
10854        return _lastResult;
10855      },
10856      recomputations: function recomputations() {
10857        return _recomputations;
10858      },
10859      resetRecomputations: function resetRecomputations() {
10860        return _recomputations = 0;
10861      }
10862    });
10863    return selector;
10864  }; // @ts-ignore
10865
10866
10867  return createSelector;
10868}
10869var createSelector = /* #__PURE__ */createSelectorCreator(defaultMemoize);
10870// Manual definition of state and output arguments
10871var createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) {
10872  if (selectorCreator === void 0) {
10873    selectorCreator = createSelector;
10874  }
10875
10876  if (typeof selectors !== 'object') {
10877    throw new Error('createStructuredSelector expects first argument to be an object ' + ("where each property is a selector, instead received a " + typeof selectors));
10878  }
10879
10880  var objectKeys = Object.keys(selectors);
10881  var resultSelector = selectorCreator( // @ts-ignore
10882  objectKeys.map(function (key) {
10883    return selectors[key];
10884  }), function () {
10885    for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
10886      values[_key3] = arguments[_key3];
10887    }
10888
10889    return values.reduce(function (composition, value, index) {
10890      composition[objectKeys[index]] = value;
10891      return composition;
10892    }, {});
10893  });
10894  return resultSelector;
10895};
10896
10897/***/ }),
10898
10899/***/ 825934:
10900/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10901
10902"use strict";
10903
10904// EXPORTS
10905__webpack_require__.d(__webpack_exports__, {
10906  Z: function() { return /* binding */ esm_browser_v4; }
10907});
10908
10909;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/rng.js
10910// Unique ID creation requires a high quality random # generator. In the browser we therefore
10911// require the crypto API and do not support built-in fallback to lower quality random number
10912// generators (like Math.random()).
10913var getRandomValues;
10914var rnds8 = new Uint8Array(16);
10915function rng() {
10916  // lazy load so that environments that need to polyfill have a chance to do so
10917  if (!getRandomValues) {
10918    // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also,
10919    // find the complete implementation of crypto (msCrypto) on IE11.
10920    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);
10921
10922    if (!getRandomValues) {
10923      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
10924    }
10925  }
10926
10927  return getRandomValues(rnds8);
10928}
10929;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/regex.js
10930/* harmony default export */ var regex = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i);
10931;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/validate.js
10932
10933
10934function validate(uuid) {
10935  return typeof uuid === 'string' && regex.test(uuid);
10936}
10937
10938/* harmony default export */ var esm_browser_validate = (validate);
10939;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/stringify.js
10940
10941/**
10942 * Convert array of 16 byte values to UUID string format of the form:
10943 * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
10944 */
10945
10946var byteToHex = [];
10947
10948for (var i = 0; i < 256; ++i) {
10949  byteToHex.push((i + 0x100).toString(16).substr(1));
10950}
10951
10952function stringify(arr) {
10953  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
10954  // Note: Be careful editing this code!  It's been tuned for performance
10955  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
10956  var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID.  If this throws, it's likely due to one
10957  // of the following:
10958  // - One or more input array values don't map to a hex octet (leading to
10959  // "undefined" in the uuid)
10960  // - Invalid input values for the RFC `version` or `variant` fields
10961
10962  if (!esm_browser_validate(uuid)) {
10963    throw TypeError('Stringified UUID is invalid');
10964  }
10965
10966  return uuid;
10967}
10968
10969/* harmony default export */ var esm_browser_stringify = (stringify);
10970;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/v4.js
10971
10972
10973
10974function v4(options, buf, offset) {
10975  options = options || {};
10976  var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
10977
10978  rnds[6] = rnds[6] & 0x0f | 0x40;
10979  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
10980
10981  if (buf) {
10982    offset = offset || 0;
10983
10984    for (var i = 0; i < 16; ++i) {
10985      buf[offset + i] = rnds[i];
10986    }
10987
10988    return buf;
10989  }
10990
10991  return esm_browser_stringify(rnds);
10992}
10993
10994/* harmony default export */ var esm_browser_v4 = (v4);
10995
10996/***/ }),
10997
10998/***/ 975766:
10999/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
11000
11001"use strict";
11002/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11003/* harmony export */   _: function() { return /* binding */ _define_property; }
11004/* harmony export */ });
11005function _define_property(obj, key, value) {
11006    if (key in obj) {
11007        Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });
11008    } else obj[key] = value;
11009
11010    return obj;
11011}
11012
11013
11014
11015/***/ }),
11016
11017/***/ 727563:
11018/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
11019
11020"use strict";
11021/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11022/* harmony export */   Ab: function() { return /* binding */ COMMENT; },
11023/* harmony export */   Fr: function() { return /* binding */ RULESET; },
11024/* harmony export */   G$: function() { return /* binding */ WEBKIT; },
11025/* harmony export */   JM: function() { return /* binding */ LAYER; },
11026/* harmony export */   K$: function() { return /* binding */ IMPORT; },
11027/* harmony export */   MS: function() { return /* binding */ MS; },
11028/* harmony export */   h5: function() { return /* binding */ DECLARATION; },
11029/* harmony export */   lK: function() { return /* binding */ KEYFRAMES; },
11030/* harmony export */   uj: function() { return /* binding */ MOZ; }
11031/* harmony export */ });
11032/* unused harmony exports PAGE, MEDIA, CHARSET, VIEWPORT, SUPPORTS, DOCUMENT, NAMESPACE, FONT_FACE, COUNTER_STYLE, FONT_FEATURE_VALUES */
11033var MS = '-ms-'
11034var MOZ = '-moz-'
11035var WEBKIT = '-webkit-'
11036
11037var COMMENT = 'comm'
11038var RULESET = 'rule'
11039var DECLARATION = 'decl'
11040
11041var PAGE = '@page'
11042var MEDIA = '@media'
11043var IMPORT = '@import'
11044var CHARSET = '@charset'
11045var VIEWPORT = '@viewport'
11046var SUPPORTS = '@supports'
11047var DOCUMENT = '@document'
11048var NAMESPACE = '@namespace'
11049var KEYFRAMES = '@keyframes'
11050var FONT_FACE = '@font-face'
11051var COUNTER_STYLE = '@counter-style'
11052var FONT_FEATURE_VALUES = '@font-feature-values'
11053var LAYER = '@layer'
11054
11055
11056/***/ }),
11057
11058/***/ 88160:
11059/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
11060
11061"use strict";
11062/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11063/* harmony export */   cD: function() { return /* binding */ rulesheet; },
11064/* harmony export */   qR: function() { return /* binding */ middleware; }
11065/* harmony export */ });
11066/* unused harmony exports prefixer, namespace */
11067/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26686);
11068
11069
11070
11071
11072
11073
11074/**
11075 * @param {function[]} collection
11076 * @return {function}
11077 */
11078function middleware (collection) {
11079	var length = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__/* .sizeof */ .Ei)(collection)
11080
11081	return function (element, index, children, callback) {
11082		var output = ''
11083
11084		for (var i = 0; i < length; i++)
11085			output += collection[i](element, index, children, callback) || ''
11086
11087		return output
11088	}
11089}
11090
11091/**
11092 * @param {function} callback
11093 * @return {function}
11094 */
11095function rulesheet (callback) {
11096	return function (element) {
11097		if (!element.root)
11098			if (element = element.return)
11099				callback(element)
11100	}
11101}
11102
11103/**
11104 * @param {object} element
11105 * @param {number} index
11106 * @param {object[]} children
11107 * @param {function} callback
11108 */
11109function prefixer (element, index, children, callback) {
11110	if (element.length > -1)
11111		if (!element.return)
11112			switch (element.type) {
11113				case DECLARATION: element.return = prefix(element.value, element.length, children)
11114					return
11115				case KEYFRAMES:
11116					return serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)
11117				case RULESET:
11118					if (element.length)
11119						return combine(element.props, function (value) {
11120							switch (match(value, /(::plac\w+|:read-\w+)/)) {
11121								// :read-(only|write)
11122								case ':read-only': case ':read-write':
11123									return serialize([copy(element, {props: [replace(value, /:(read-\w+)/, ':' + MOZ + '$1')]})], callback)
11124								// :placeholder
11125								case '::placeholder':
11126									return serialize([
11127										copy(element, {props: [replace(value, /:(plac\w+)/, ':' + WEBKIT + 'input-$1')]}),
11128										copy(element, {props: [replace(value, /:(plac\w+)/, ':' + MOZ + '$1')]}),
11129										copy(element, {props: [replace(value, /:(plac\w+)/, MS + 'input-$1')]})
11130									], callback)
11131							}
11132
11133							return ''
11134						})
11135			}
11136}
11137
11138/**
11139 * @param {object} element
11140 * @param {number} index
11141 * @param {object[]} children
11142 */
11143function namespace (element) {
11144	switch (element.type) {
11145		case RULESET:
11146			element.props = element.props.map(function (value) {
11147				return combine(tokenize(value), function (value, index, children) {
11148					switch (charat(value, 0)) {
11149						// \f
11150						case 12:
11151							return substr(value, 1, strlen(value))
11152						// \0 ( + > ~
11153						case 0: case 40: case 43: case 62: case 126:
11154							return value
11155						// :
11156						case 58:
11157							if (children[++index] === 'global')
11158								children[index] = '', children[++index] = '\f' + substr(children[index], index = 1, -1)
11159						// \s
11160						case 32:
11161							return index === 1 ? '' : value
11162						default:
11163							switch (index) {
11164								case 0: element = value
11165									return sizeof(children) > 1 ? '' : value
11166								case index = sizeof(children) - 1: case 2:
11167									return index === 2 ? value + element + element : value + element
11168								default:
11169									return value
11170							}
11171					}
11172				})
11173			})
11174	}
11175}
11176
11177
11178/***/ }),
11179
11180/***/ 992190:
11181/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
11182
11183"use strict";
11184/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11185/* harmony export */   MY: function() { return /* binding */ compile; }
11186/* harmony export */ });
11187/* unused harmony exports parse, ruleset, comment, declaration */
11188/* harmony import */ var _Enum_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(727563);
11189/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26686);
11190/* harmony import */ var _Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(146411);
11191
11192
11193
11194
11195/**
11196 * @param {string} value
11197 * @return {object[]}
11198 */
11199function compile (value) {
11200	return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .dealloc */ .cE)(parse('', null, null, null, [''], value = (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .alloc */ .un)(value), 0, [0], value))
11201}
11202
11203/**
11204 * @param {string} value
11205 * @param {object} root
11206 * @param {object?} parent
11207 * @param {string[]} rule
11208 * @param {string[]} rules
11209 * @param {string[]} rulesets
11210 * @param {number[]} pseudo
11211 * @param {number[]} points
11212 * @param {string[]} declarations
11213 * @return {object}
11214 */
11215function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {
11216	var index = 0
11217	var offset = 0
11218	var length = pseudo
11219	var atrule = 0
11220	var property = 0
11221	var previous = 0
11222	var variable = 1
11223	var scanning = 1
11224	var ampersand = 1
11225	var character = 0
11226	var type = ''
11227	var props = rules
11228	var children = rulesets
11229	var reference = rule
11230	var characters = type
11231
11232	while (scanning)
11233		switch (previous = character, character = (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .next */ .lp)()) {
11234			// (
11235			case 40:
11236				if (previous != 108 && (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .charat */ .uO)(characters, length - 1) == 58) {
11237					if ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .indexof */ .Cw)(characters += (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .replace */ .gx)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .delimit */ .iF)(character), '&', '&\f'), '&\f') != -1)
11238						ampersand = -1
11239					break
11240				}
11241			// " ' [
11242			case 34: case 39: case 91:
11243				characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .delimit */ .iF)(character)
11244				break
11245			// \t \n \r \s
11246			case 9: case 10: case 13: case 32:
11247				characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .whitespace */ .Qb)(previous)
11248				break
11249			// \
11250			case 92:
11251				characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .escaping */ .kq)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .caret */ .Ud)() - 1, 7)
11252				continue
11253			// /
11254			case 47:
11255				switch ((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .peek */ .fj)()) {
11256					case 42: case 47:
11257						;(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .append */ .R3)(comment((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .commenter */ .q6)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .next */ .lp)(), (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .caret */ .Ud)()), root, parent), declarations)
11258						break
11259					default:
11260						characters += '/'
11261				}
11262				break
11263			// {
11264			case 123 * variable:
11265				points[index++] = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .strlen */ .to)(characters) * ampersand
11266			// } ; \0
11267			case 125 * variable: case 59: case 0:
11268				switch (character) {
11269					// \0 }
11270					case 0: case 125: scanning = 0
11271					// ;
11272					case 59 + offset: if (ampersand == -1) characters = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .replace */ .gx)(characters, /\f/g, '')
11273						if (property > 0 && ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .strlen */ .to)(characters) - length))
11274							(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .append */ .R3)(property >
11274 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .replace */ .gx)(characters, ' ', '') + ';', rule, parent, length - 2), declarations)
11275						break
11276					// @ ;
11277					case 59: characters += ';'
11278					// { rule/at-rule
11279					default:
11280						;(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .append */ .R3)(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)
11281
11282						if (character === 123)
11283							if (offset === 0)
11284								parse(characters, root, reference, reference, props, rulesets, length, points, children)
11285							else
11286								switch (atrule === 99 && (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .charat */ .uO)(characters, 3) === 110 ? 100 : atrule) {
11287									// d l m s
11288									case 100: case 108: case 109: case 115:
11289										parse(value, reference, reference, rule && (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .append */ .R3)(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)
11290										break
11291									default:
11292										parse(characters, reference, reference, reference, [''], children, 0, points, children)
11293								}
11294				}
11295
11296				index = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo
11297				break
11298			// :
11299			case 58:
11300				length = 1 + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .strlen */ .to)(characters), property = previous
11301			default:
11302				if (variable < 1)
11303					if (character == 123)
11304						--variable
11305					else if (character == 125 && variable++ == 0 && (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .prev */ .mp)() == 125)
11306						continue
11307
11308				switch (characters += (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .from */ .Dp)(character), character * variable) {
11309					// &
11310					case 38:
11311						ampersand = offset > 0 ? 1 : (characters += '\f', -1)
11312						break
11313					// ,
11314					case 44:
11315						points[index++] = ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .strlen */ .to)(characters) - 1) * ampersand, ampersand = 1
11316						break
11317					// @
11318					case 64:
11319						// -
11320						if ((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .peek */ .fj)() === 45)
11321							characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .delimit */ .iF)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .next */ .lp)())
11322
11323						atrule = (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .peek */ .fj)(), offset = length = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .strlen */ .to)(type = characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .identifier */ .QU)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .caret */ .Ud)())), character++
11324						break
11325					// -
11326					case 45:
11327						if (previous === 45 && (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .strlen */ .to)(characters) == 2)
11328							variable = 0
11329				}
11330		}
11331
11332	return rulesets
11333}
11334
11335/**
11336 * @param {string} value
11337 * @param {object} root
11338 * @param {object?} parent
11339 * @param {number} index
11340 * @param {number} offset
11341 * @param {string[]} rules
11342 * @param {number[]} points
11343 * @param {string} type
11344 * @param {string[]} props
11345 * @param {string[]} children
11346 * @param {number} length
11347 * @return {object}
11348 */
11349function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {
11350	var post = offset - 1
11351	var rule = offset === 0 ? rules : ['']
11352	var size = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .sizeof */ .Ei)(rule)
11353
11354	for (var i = 0, j = 0, k = 0; i < index; ++i)
11355		for (var x = 0, y = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .substr */ .tb)(value, post + 1, post = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .abs */ .Wn)(j = points[i])), z = value; x < size; ++x)
11356			if (z = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .trim */ .fy)(j > 0 ? rule[x] + ' ' + y : (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .replace */ .gx)(y, /&\f/g, rule[x])))
11357				props[k++] = z
11358
11359	return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .node */ .dH)(value, root, parent, offset === 0 ? _Enum_js__WEBPACK_IMPORTED_MODULE_2__/* .RULESET */ .Fr : type, props, children, length)
11360}
11361
11362/**
11363 * @param {number} value
11364 * @param {object} root
11365 * @param {object?} parent
11366 * @return {object}
11367 */
11368function comment (value, root, parent) {
11369	return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .node */ .dH)(value, root, parent, _Enum_js__WEBPACK_IMPORTED_MODULE_2__/* .COMMENT */ .Ab, (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .from */ .Dp)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .char */ .Tb)()), (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .substr */ .tb)(value, 2, -2), 0)
11370}
11371
11372/**
11373 * @param {string} value
11374 * @param {object} root
11375 * @param {object?} parent
11376 * @param {number} length
11377 * @return {object}
11378 */
11379function declaration (value, root, parent, length) {
11380	return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__/* .node */ .dH)(value, root, parent, _Enum_js__WEBPACK_IMPORTED_MODULE_2__/* .DECLARATION */ .h5, (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .substr */ .tb)(value, 0, length), (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__/* .substr */ .tb)(value, length + 1, -1), length)
11381}
11382
11383
11384/***/ }),
11385
11386/***/ 520211:
11387/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
11388
11389"use strict";
11390/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11391/* harmony export */   P: function() { return /* binding */ stringify; },
11392/* harmony export */   q: function() { return /* binding */ serialize; }
11393/* harmony export */ });
11394/* harmony import */ var _Enum_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(727563);
11395/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26686);
11396
11397
11398
11399/**
11400 * @param {object[]} children
11401 * @param {function} callback
11402 * @return {string}
11403 */
11404function serialize (children, callback) {
11405	var output = ''
11406	var length = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__/* .sizeof */ .Ei)(children)
11407
11408	for (var i = 0; i < length; i++)
11409		output += callback(children[i], i, children, callback) || ''
11410
11411	return output
11412}
11413
11414/**
11415 * @param {object} element
11416 * @param {number} index
11417 * @param {object[]} children
11418 * @param {function} callback
11419 * @return {string}
11420 */
11421function stringify (element, index, children, callback) {
11422	switch (element.type) {
11423		case _Enum_js__WEBPACK_IMPORTED_MODULE_1__/* .LAYER */ .JM: if (element.children.length) break
11424		case _Enum_js__WEBPACK_IMPORTED_MODULE_1__/* .IMPORT */ .K$: case _Enum_js__WEBPACK_IMPORTED_MODULE_1__/* .DECLARATION */ .h5: return element.return = element.return || element.value
11425		case _Enum_js__WEBPACK_IMPORTED_MODULE_1__/* .COMMENT */ .Ab: return ''
11426		case _Enum_js__WEBPACK_IMPORTED_MODULE_1__/* .KEYFRAMES */ .lK: return element.return = element.value + '{' + serialize(element.children, callback) + '}'
11427		case _Enum_js__WEBPACK_IMPORTED_MODULE_1__/* .RULESET */ .Fr: element.value = element.props.join(',')
11428	}
11429
11430	return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__/* .strlen */ .to)(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''
11431}
11432
11433
11434/***/ }),
11435
11436/***/ 146411:
11437/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
11438
11439"use strict";
11440/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11441/* harmony export */   FK: function() { return /* binding */ position; },
11442/* harmony export */   JG: function() { return /* binding */ copy; },
11443/* harmony export */   QU: function() { return /* binding */ identifier; },
11444/* harmony export */   Qb: function() { return /* binding */ whitespace; },
11445/* harmony export */   Tb: function() { return /* binding */ char; },
11446/* harmony export */   Ud: function() { return /* binding */ caret; },
11447/* harmony export */   cE: function() { return /* binding */ dealloc; },
11448/* harmony export */   dH: function() { return /* binding */ node; },
11449/* harmony export */   fj: function() { return /* binding */ peek; },
11450/* harmony export */   iF: function() { return /* binding */ delimit; },
11451/* harmony export */   kq: function() { return /* binding */ escaping; },
11452/* harmony export */   lp: function() { return /* binding */ next; },
11453/* harmony export */   mp: function() { return /* binding */ prev; },
11454/* harmony export */   q6: function() { return /* binding */ commenter; },
11455/* harmony export */   r: function() { return /* binding */ token; },
11456/* harmony export */   tP: function() { return /* binding */ slice; },
11457/* harmony export */   un: function() { return /* binding */ alloc; }
11458/* harmony export */ });
11459/* unused harmony exports line, column, length, character, characters, tokenize, tokenizer, delimiter */
11460/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26686);
11461
11462
11463var line = 1
11464var column = 1
11465var length = 0
11466var position = 0
11467var character = 0
11468var characters = ''
11469
11470/**
11471 * @param {string} value
11472 * @param {object | null} root
11473 * @param {object | null} parent
11474 * @param {string} type
11475 * @param {string[] | string} props
11476 * @param {object[] | string} children
11477 * @param {number} length
11478 */
11479function node (value, root, parent, type, props, children, length) {
11480	return {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}
11481}
11482
11483/**
11484 * @param {object} root
11485 * @param {object} props
11486 * @return {object}
11487 */
11488function copy (root, props) {
11489	return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__/* .assign */ .f0)(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)
11490}
11491
11492/**
11493 * @return {number}
11494 */
11495function char () {
11496	return character
11497}
11498
11499/**
11500 * @return {number}
11501 */
11502function prev () {
11503	character = position > 0 ? (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__/* .charat */ .uO)(characters, --position) : 0
11504
11505	if (column--, character === 10)
11506		column = 1, line--
11507
11508	return character
11509}
11510
11511/**
11512 * @return {number}
11513 */
11514function next () {
11515	character = position < length ? (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__/* .charat */ .uO)(characters, position++) : 0
11516
11517	if (column++, character === 10)
11518		column = 1, line++
11519
11520	return character
11521}
11522
11523/**
11524 * @return {number}
11525 */
11526function peek () {
11527	return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__/* .charat */ .uO)(characters, position)
11528}
11529
11530/**
11531 * @return {number}
11532 */
11533function caret () {
11534	return position
11535}
11536
11537/**
11538 * @param {number} begin
11539 * @param {number} end
11540 * @return {string}
11541 */
11542function slice (begin, end) {
11543	return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__/* .substr */ .tb)(characters, begin, end)
11544}
11545
11546/**
11547 * @param {number} type
11548 * @return {number}
11549 */
11550function token (type) {
11551	switch (type) {
11552		// \0 \t \n \r \s whitespace token
11553		case 0: case 9: case 10: case 13: case 32:
11554			return 5
11555		// ! + , / > @ ~ isolate token
11556		case 33: case 43: case 44: case 47: case 62: case 64: case 126:
11557		// ; { } breakpoint token
11558		case 59: case 123: case 125:
11559			return 4
11560		// : accompanied token
11561		case 58:
11562			return 3
11563		// " ' ( [ opening delimit token
11564		case 34: case 39: case 40: case 91:
11565			return 2
11566		// ) ] closing delimit token
11567		case 41: case 93:
11568			return 1
11569	}
11570
11571	return 0
11572}
11573
11574/**
11575 * @param {string} value
11576 * @return {any[]}
11577 */
11578function alloc (value) {
11579	return line = column = 1, length = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__/* .strlen */ .to)(characters = value), position = 0, []
11580}
11580
11581
11582/**
11583 * @param {any} value
11584 * @return {any}
11585 */
11586function dealloc (value) {
11587	return characters = '', value
11588}
11589
11590/**
11591 * @param {number} type
11592 * @return {string}
11593 */
11594function delimit (type) {
11595	return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__/* .trim */ .fy)(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))
11596}
11597
11598/**
11599 * @param {string} value
11600 * @return {string[]}
11601 */
11602function tokenize (value) {
11603	return dealloc(tokenizer(alloc(value)))
11604}
11605
11606/**
11607 * @param {number} type
11608 * @return {string}
11609 */
11610function whitespace (type) {
11611	while (character = peek())
11612		if (character < 33)
11613			next()
11614		else
11615			break
11616
11617	return token(type) > 2 || token(character) > 3 ? '' : ' '
11618}
11619
11620/**
11621 * @param {string[]} children
11622 * @return {string[]}
11623 */
11624function tokenizer (children) {
11625	while (next())
11626		switch (token(character)) {
11627			case 0: append(identifier(position - 1), children)
11628				break
11629			case 2: append(delimit(character), children)
11630				break
11631			default: append(from(character), children)
11632		}
11633
11634	return children
11635}
11636
11637/**
11638 * @param {number} index
11639 * @param {number} count
11640 * @return {string}
11641 */
11642function escaping (index, count) {
11643	while (--count && next())
11644		// not 0-9 A-F a-f
11645		if (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))
11646			break
11647
11648	return slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))
11649}
11650
11651/**
11652 * @param {number} type
11653 * @return {number}
11654 */
11655function delimiter (type) {
11656	while (next())
11657		switch (character) {
11658			// ] ) " '
11659			case type:
11660				return position
11661			// " '
11662			case 34: case 39:
11663				if (type !== 34 && type !== 39)
11664					delimiter(character)
11665				break
11666			// (
11667			case 40:
11668				if (type === 41)
11669					delimiter(type)
11670				break
11671			// \
11672			case 92:
11673				next()
11674				break
11675		}
11676
11677	return position
11678}
11679
11680/**
11681 * @param {number} type
11682 * @param {number} index
11683 * @return {number}
11684 */
11685function commenter (type, index) {
11686	while (next())
11687		// //
11688		if (type + character === 47 + 10)
11689			break
11690		// /*
11691		else if (type + character === 42 + 42 && peek() === 47)
11692			break
11693
11694	return '/*' + slice(index, position - 1) + '*' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__/* .from */ .Dp)(type === 47 ? type : next())
11695}
11696
11697/**
11698 * @param {number} index
11699 * @return {string}
11700 */
11701function identifier (index) {
11702	while (!token(peek()))
11703		next()
11704
11705	return slice(index, position)
11706}
11707
11708
11709/***/ }),
11710
11711/***/ 26686:
11712/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
11713
11714"use strict";
11715/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11716/* harmony export */   $e: function() { return /* binding */ combine; },
11717/* harmony export */   Cw: function() { return /* binding */ indexof; },
11718/* harmony export */   Dp: function() { return /* binding */ from; },
11719/* harmony export */   EQ: function() { return /* binding */ match; },
11720/* harmony export */   Ei: function() { return /* binding */ sizeof; },
11721/* harmony export */   R3: function() { return /* binding */ append; },
11722/* harmony export */   Wn: function() { return /* binding */ abs; },
11723/* harmony export */   f0: function() { return /* binding */ assign; },
11724/* harmony export */   fy: function() { return /* binding */ trim; },
11725/* harmony export */   gx: function() { return /* binding */ replace; },
11726/* harmony export */   tb: function() { return /* binding */ substr; },
11727/* harmony export */   to: function() { return /* binding */ strlen; },
11728/* harmony export */   uO: function() { return /* binding */ charat; },
11729/* harmony export */   vp: function() { return /* binding */ hash; }
11730/* harmony export */ });
11731/**
11732 * @param {number}
11733 * @return {number}
11734 */
11735var abs = Math.abs
11736
11737/**
11738 * @param {number}
11739 * @return {string}
11740 */
11741var from = String.fromCharCode
11742
11743/**
11744 * @param {object}
11745 * @return {object}
11746 */
11747var assign = Object.assign
11748
11749/**
11750 * @param {string} value
11751 * @param {number} length
11752 * @return {number}
11753 */
11754function hash (value, length) {
11755	return charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0
11756}
11757
11758/**
11759 * @param {string} value
11760 * @return {string}
11761 */
11762function trim (value) {
11763	return value.trim()
11764}
11765
11766/**
11767 * @param {string} value
11768 * @param {RegExp} pattern
11769 * @return {string?}
11770 */
11771function match (value, pattern) {
11772	return (value = pattern.exec(value)) ? value[0] : value
11773}
11774
11775/**
11776 * @param {string} value
11777 * @param {(string|RegExp)} pattern
11778 * @param {string} replacement
11779 * @return {string}
11780 */
11781function replace (value, pattern, replacement) {
11782	return value.replace(pattern, replacement)
11783}
11784
11785/**
11786 * @param {string} value
11787 * @param {string} search
11788 * @return {number}
11789 */
11790function indexof (value, search) {
11791	return value.indexOf(search)
11792}
11793
11794/**
11795 * @param {string} value
11796 * @param {number} index
11797 * @return {number}
11798 */
11799function charat (value, index) {
11800	return value.charCodeAt(index) | 0
11801}
11802
11803/**
11804 * @param {string} value
11805 * @param {number} begin
11806 * @param {number} end
11807 * @return {string}
11808 */
11809function substr (value, begin, end) {
11810	return value.slice(begin, end)
11811}
11812
11813/**
11814 * @param {string} value
11815 * @return {number}
11816 */
11817function strlen (value) {
11818	return value.length
11819}
11820
11821/**
11822 * @param {any[]} value
11823 * @return {number}
11824 */
11825function sizeof (value) {
11826	return value.length
11827}
11828
11829/**
11830 * @param {any} value
11831 * @param {any[]} array
11832 * @return {any}
11833 */
11834function append (value, array) {
11835	return array.push(value), value
11836}
11837
11838/**
11839 * @param {string[]} array
11840 * @param {function} callback
11841 * @return {string}
11842 */
11843function combine (array, callback) {
11844	return array.map(callback).join('')
11845}
11846
11847
11848/***/ }),
11849
11850/***/ 463792:
11851/***/ (function(module) {
11852
11853"use strict";
11854module.exports = JSON.parse('{"atoms":{"button_cart_add_or_update":{"zip_code_not_served":"Change the postal code to shop"}},"account":{"addresses":{"customer_address_form":{"postal_code":"Postal Code\'"}}},"header":{"zip_code_bar":{"your_zip":"Your postal code","change_zip_code":"Change postal code","enter_zip_code":"Enter postal code","visually_hidden":"When activated, this button opens a dialog to change your Postal Code."},"zip_code_popup":{"initial_message":"We offer delivery! Please enter your postal code so we can serve you better.","initial_input_place_holder":"Enter Delivery Postal code","delivery_change_postal_code_text":"Change Postal code","no_delivery_change_postal_code_text":"Change Postal code","we_remember_you_message":"is it still your delivery postal code?"},"category_mega_dropdown":{"trigger":"Shop By Category","become_a_member":"Become a Member","members_table":"Members Table","shop_now":"Shop Now","shop_prefix":"Shop","top_products_for":"Top Products For:","shop_all":"Shop All","no_products_found":"No products found.","browse_category":"Browse","products_load_error":"Something went wrong loading products.","retry":"Try again"}},"product":{"product_details":{"restricted_product_info":"This product is not available for delivery to postal code"}},"forms":{"form_fields":{"form_text_field":{"aria_label":"Enter delivery postal code"}}},"checkout":{"label":{"corporate_gift_discount":"Corporate Gift","deliveryHandlingFee":"Handling Fee (below $35 order)","recurring_subtotal":"Recurring Subtotal","recurring_monthly":"every month","recurring_annual":"every year"}}}');
11855
11856/***/ }),
11857
11858/***/ 746578:
11859/***/ (function(module) {
11860
11861"use strict";
11862module.exports = JSON.parse('{"atoms":{"button_cart_add_or_update":{"zip_code_not_served":"Change the zip code to shop"}},"account":{"addresses":{"customer_address_form":{"postal_code":"Zip Code\'"}}},"header":{"zip_code_bar":{"your_zip":"Your zip","change_zip_code":"Change zip code","enter_zip_code":"Enter zip code","visually_hidden":"When activated, this button opens a dialog to change your ZIP code."},"zip_code_popup":{"initial_message":"We offer delivery! Please enter your zip code so we can serve you better.","initial_input_place_holder":"Enter Delivery Zip code","delivery_change_postal_code_text":"Change Zip code","no_delivery_change_postal_code_text":"Change Zip code","we_remember_you_message":"is it still your delivery zip code?"},"category_mega_dropdown":{"trigger":"Shop By Category","become_a_member":"Become a Member","members_table":"Members Table","shop_now":"Shop Now","shop_prefix":"Shop","top_products_for":"Top Products For:","shop_all":"Shop All","no_products_found":"No products found.","browse_category":"Browse","products_load_error":"Something went wrong loading products.","retry":"Try again"}},"product":{"product_details":{"restricted_product_info":"This product is not available for delivery to zip code"}},"forms":{"form_fields":{"form_text_field":{"aria_label":"Enter delivery zip code"}}},"checkout":{"label":{"corporate_gift_discount":"Corporate Gift","deliveryHandlingFee":"Handling Fee (below $35 order)","recurring_subtotal":"Recurring Subtotal","recurring_monthly":"every month","recurring_annual":"every year"}}}');
11863
11864/***/ })
11865
11866}]);

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.