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.