{"version":3,"file":"js/ptr.js","mappings":"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","sources":["webpack://pcloud-site/webpack/runtime/chunk loaded","webpack://pcloud-site/./src/lib/move.js","webpack://pcloud-site/./src/lib/utils.js","webpack://pcloud-site/./src/exports/ptr.js","webpack://pcloud-site/./node_modules/clsx/dist/clsx.m.js","webpack://pcloud-site/./node_modules/detect-node/browser.js","webpack://pcloud-site/../src/utils/errors.ts","webpack://pcloud-site/../src/utils/common.ts","webpack://pcloud-site/../src/utils/plugins.ts","webpack://pcloud-site/../src/core/scope.ts","webpack://pcloud-site/../src/core/finalize.ts","webpack://pcloud-site/../src/core/proxy.ts","webpack://pcloud-site/../src/core/immerClass.ts","webpack://pcloud-site/../src/core/current.ts","webpack://pcloud-site/../src/plugins/es5.ts","webpack://pcloud-site/../src/plugins/patches.ts","webpack://pcloud-site/../src/plugins/mapset.ts","webpack://pcloud-site/../src/utils/env.ts","webpack://pcloud-site/../src/immer.ts","webpack://pcloud-site/../src/plugins/all.ts","webpack://pcloud-site/./node_modules/immer/dist/index.js","webpack://pcloud-site/./node_modules/oblivious-set/src/index.ts","webpack://pcloud-site/./node_modules/redux-persist/es/constants.js","webpack://pcloud-site/./node_modules/redux-persist/es/stateReconciler/autoMergeLevel1.js","webpack://pcloud-site/./node_modules/redux-persist/es/createPersistoid.js","webpack://pcloud-site/./node_modules/redux-persist/es/getStoredState.js","webpack://pcloud-site/./node_modules/redux-persist/es/purgeStoredState.js","webpack://pcloud-site/./node_modules/redux-persist/es/persistReducer.js","webpack://pcloud-site/./node_modules/redux-persist/es/stateReconciler/autoMergeLevel2.js","webpack://pcloud-site/./node_modules/redux-persist/es/persistCombineReducers.js","webpack://pcloud-site/./node_modules/redux-persist/es/persistStore.js","webpack://pcloud-site/./node_modules/redux-persist/es/createMigrate.js","webpack://pcloud-site/./node_modules/redux-persist/es/createTransform.js","webpack://pcloud-site/./node_modules/redux-persist/lib/stateReconciler/autoMergeLevel2.js","webpack://pcloud-site/./node_modules/redux-persist/lib/storage/createWebStorage.js","webpack://pcloud-site/./node_modules/redux-persist/lib/storage/getStorage.js","webpack://pcloud-site/./node_modules/redux-persist/lib/storage/index.js","webpack://pcloud-site/./node_modules/redux-state-sync/dist/syncState.js","webpack://pcloud-site/./node_modules/redux-thunk/es/index.js","webpack://pcloud-site/./node_modules/reselect/es/defaultMemoize.js","webpack://pcloud-site/./node_modules/reselect/es/index.js","webpack://pcloud-site/./node_modules/shallowequal/index.js","webpack://pcloud-site/./node_modules/unload/dist/es/browser.js","webpack://pcloud-site/./node_modules/unload/dist/es/index.js","webpack://pcloud-site/external window \"jQuery\"","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/assign.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/define-property.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/keys.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/parse-float.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/parse-int.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/symbol.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/symbol/to-primitive.js","webpack://pcloud-site/./node_modules/immer/dist/immer.esm.mjs","webpack://pcloud-site/./node_modules/tslib/tslib.es6.mjs","webpack://pcloud-site/webpack/bootstrap","webpack://pcloud-site/webpack/runtime/amd options","webpack://pcloud-site/webpack/runtime/compat get default export","webpack://pcloud-site/webpack/runtime/define property getters","webpack://pcloud-site/webpack/runtime/global","webpack://pcloud-site/webpack/runtime/hasOwnProperty shorthand","webpack://pcloud-site/webpack/runtime/make namespace object","webpack://pcloud-site/webpack/runtime/jsonp chunk loading","webpack://pcloud-site/webpack/runtime/nonce","webpack://pcloud-site/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","const _move = (obj, _attachList) => {\n for (var n in obj) {\n if (obj.hasOwnProperty(n)) {\n for (var k = 0; k < _attachList.length; ++k) {\n if (_attachList[k].list.indexOf(n) != -1) {\n _attachList[k].attach[n] = obj[n];\n }\n }\n }\n }\n}\n\nexport default _move;","//@flow\n\nimport {\n DiscountType,\n Userinfo,\n PlanIDType,\n Subscription\n} from \"../lib/types/dataTypes.components\";\n\n// import {\n// ADD_STORAGE_1COUNT_PLAN_ID, \n// ADD_STORAGE_4COUNT_PLAN_ID,\n// MB_PER_STORAGE_COUNT\n// } from \"./plansInfo\";\n\nimport {\n rcookie,\n setcookie,\n hrefSearch\n} from \"@pcloud/web-utilities/dist/lib/utils\";\nimport { __ } from \"@pcloud/web-utilities/dist/lib/langManager\";\nimport { renderQuota } from \"@pcloud/web-utilities/dist/plans/utils.plans\";\n\nimport {\n PREMIUM_PLAN_ID,\n PREMIUM_PLUS_PLAN_ID,\n CUSTOM4TB_PLAN_ID,\n FAMILY2TB_PLAN_ID,\n FAMILY_CUSTOM_PLAN_ID,\n FAMILY_CUSTOM_2COUNT_PLAN_ID,\n FAMILY_CUSTOM_5COUNT_PLAN_ID,\n FAMILY_ADD_1COUNT_PLAN_ID,\n FAMILY_ADD_2COUNT_PLAN_ID,\n FAMILY_ADD_5COUNT_PLAN_ID,\n CUSTOM_PLAN_ID,\n ADD_STORAGE_1COUNT_PLAN_ID,\n ADD_STORAGE_4COUNT_PLAN_ID,\n ADD_STORAGE_8COUNT_PLAN_ID,\n ADD_STORAGE_12COUNT_PLAN_ID,\n ADD_STORAGE_20COUNT_PLAN_ID,\n CUSTOM_20COUNT_PLAN_ID,\n CRYPTO_PLAN_ID,\n EFH_PLAN_ID,\n ADDITIONAL_TRAFFIC_ID,\n MAX_CUSTOM_STORAGE_COUNT,\n MAX_FAMILY_STORAGE_COUNT,\n PASS_PREMIUM_PLAN_ID,\n PASS_FAMILY_PLAN_ID,\n} from \"@pcloud/web-utilities/dist/plans/constants.plans\";\n\nexport {\n rcookie,\n setcookie,\n hrefSearch,\n __,\n renderQuota\n};\n\nexport const removeHrefSearch = (params: Array, forceRefresh?: boolean) => {\n if (params && typeof params == 'string') {\n params = [params];\n }\n\n if (params && params.length && location.search.length) {\n var currentQueriesArr = location.search.substring(1).split('&');\n var currentQueriesMap = {};\n var finalQueriesArr = [];\n var finalURL;\n\n // Create object map with all current search queries\n for (var i in currentQueriesArr) {\n currentQueriesMap[currentQueriesArr[i].split('=').shift()] = currentQueriesArr[i].split('=').pop();\n }\n\n // Delete requested queries\n for (var i in params) {\n if (params[i].split('=').shift() in currentQueriesMap) {\n delete currentQueriesMap[params[i].split('=').shift()];\n }\n }\n\n if (Object.keys(currentQueriesMap).length) {\n for (var i in currentQueriesMap) {\n finalQueriesArr.push(i + '=' + currentQueriesMap[i]);\n }\n\n finalURL = location.origin + location.pathname + '?' + finalQueriesArr.join('&');\n } else {\n finalURL = location.origin + location.pathname;\n }\n\n if (forceRefresh) {\n location = finalURL;\n } else {\n window.history.pushState({}, null, finalURL);\n }\n }\n};\n\nexport const addHrefSearch = (params: Array | string, forceRefresh: boolean, newLocationUrl?: string) => {\n if (!params) {\n return;\n }\n\n let finalURL;\n\n if (typeof params == 'string') {\n params = [params];\n }\n\n if (location.search.length) {\n let oldQueriesArr = location.search.substring(1).split('&');\n let oldQueriesMap = {};\n let givenQueriesMap = {};\n let finalQueriesMap = {};\n let finalQueriesArr = [];\n\n // Create object map with all current search queries\n for (let i in oldQueriesArr) {\n oldQueriesMap[oldQueriesArr[i].split('=').shift()] = oldQueriesArr[i].split('=').pop();\n }\n\n for (let i in params) {\n givenQueriesMap[params[i].split('=').shift()] = params[i].split('=').pop();\n\n // Delete queries which will be duplicated in the end and remove them\n if (params[i].split('=').shift() in oldQueriesMap) {\n delete oldQueriesMap[params[i].split('=').shift()];\n }\n }\n\n finalQueriesMap = Object.assign(oldQueriesMap, givenQueriesMap);\n\n for (let i in finalQueriesMap) {\n finalQueriesArr.push(i + '=' + finalQueriesMap[i]);\n }\n\n finalURL = (newLocationUrl ? newLocationUrl : (location.origin + location.pathname)) + '?' + finalQueriesArr.join('&');\n\n } else {\n // Directly append newly provided params\n finalURL = (newLocationUrl ? newLocationUrl : location.href) + '?' + params.join('&');\n }\n\n if (forceRefresh) {\n location = finalURL;\n } else {\n if (!window.history.state || window.history.state.page != finalURL) {\n window.history.pushState({ \"page\": finalURL }, null, finalURL);\n }\n }\n};\n\nexport const saveToSessionstorage = (label: string, value: any) => {\n if (\n typeof Storage === \"undefined\" ||\n typeof sessionStorage === \"undefined\" ||\n sessionStorage === null\n ) {\n setcookie(label, value, 0);\n } else {\n sessionStorage.setItem(label, value);\n }\n};\n\nexport const signToCurrency = {\n \"$\": \"USD\",\n \"€\": \"EUR\",\n \"₤\": \"GBP\",\n \"BGN\": \"BGN\"\n};\n\nexport const currencyMap = {\n 'USD': '$',\n 'EUR': '€',\n 'GBP': '₤',\n // Used for Vivacom plans only\n 'BGN': 'BGN'\n};\n\nconst _repl = (str: string, repl: {} = {}) => {\n str = _properSpaces(str);\n\n if (!obLength(repl)) {\n return str;\n }\n\n for (var n in repl) {\n str = str.replace(new RegExp(\"%\" + n + \"%\", \"g\"), repl[n]);\n }\n\n return str;\n};\n\nconst _properSpaces = str => {\n return str.split(String.fromCharCode(160)).join(\" \");\n};\n\nexport const obLength = (obj: {}) => {\n var size = 0,\n key;\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n size++;\n }\n }\n return size;\n};\n\ntype getDisabledPlanReasonParams = {\n user: Userinfo,\n forPlan: PlanIDType,\n forPeriod: \"trial\" | \"month\" | \"year\" | \"lifetime\",\n downgradeAllowed?: boolean,\n add500GBAllowed?: boolean,\n trafficCount?: number,\n maxCustomStorageCount?: number\n};\n\nexport const getDisabledPlanReason = ({\n user = {},\n forPlan,\n forPeriod,\n downgradeAllowed,\n add500GBAllowed,\n trafficCount,\n canAddStorage,\n maxCustomStorageCount = MAX_CUSTOM_STORAGE_COUNT,\n maxFamilyStorageCount = MAX_FAMILY_STORAGE_COUNT\n}: getDisabledPlanReasonParams) => {\n if (!user || !forPlan || !forPeriod) {\n return \"\";\n }\n\n const {\n business,\n lastsubscription,\n cryptolifetime,\n plan,\n premium,\n premiumlifetime,\n premiumexpires,\n cryptosubscription,\n efh,\n planparams,\n additionaltraffic,\n additionaltrafficlifetime,\n family,\n passmanagerdata,\n usepassmanagertrial: isfreetrialused\n } = user;\n\n const hasUserInfo = Object.keys(user).length > 0\n let islifetime;\n let isfreetrialactive;\n let passplan;\n let passpremiumexpire;\n let passFamily;\n\n if (passmanagerdata) {\n islifetime = passmanagerdata.islifetime\n isfreetrialactive = passmanagerdata.isfreetrialactive;\n passplan = passmanagerdata.plan;\n passpremiumexpire = passmanagerdata.premiumexpires;\n passFamily = passmanagerdata.family;\n }\n\n if (hasUserInfo) {\n // const {\n // islifetime,\n // istrial: isfreetrialactive,\n // plan: passplan,\n // planexpires: passpremiumexpire\n // } = passmanagerdata\n\n if (business) {\n return (\"business\");\n } else {\n let hasStorageSubscription = premium && !premiumlifetime;\n let hasCryptoSubscription = cryptosubscription;\n let hasSubscriptionPeriod = false;\n let isCanceled = lastsubscription && lastsubscription.status === \"canceled\";\n let incStorage = 0;\n if (!isCanceled && lastsubscription) {\n hasSubscriptionPeriod = lastsubscription.period;\n }\n\n const isCustomPlanId = forPlan === ADD_STORAGE_1COUNT_PLAN_ID || forPlan === ADD_STORAGE_4COUNT_PLAN_ID || forPlan === ADD_STORAGE_8COUNT_PLAN_ID || forPlan === ADD_STORAGE_12COUNT_PLAN_ID || forPlan === ADD_STORAGE_20COUNT_PLAN_ID || forPlan === CUSTOM_20COUNT_PLAN_ID;\n const isFamilyPlanId = forPlan === FAMILY_ADD_1COUNT_PLAN_ID || forPlan === FAMILY_ADD_2COUNT_PLAN_ID || forPlan === FAMILY_ADD_5COUNT_PLAN_ID || forPlan === FAMILY_CUSTOM_2COUNT_PLAN_ID || forPlan === FAMILY_CUSTOM_5COUNT_PLAN_ID;\n\n if (isCustomPlanId || isFamilyPlanId) {\n const parts = forPlan.split(\"_\");\n incStorage = Number(parts[1]);\n forPlan = Number(parts[0]);\n }\n\n if ((!lastsubscription || (hasSubscriptionPeriod && lastsubscription.products.indexOf(forPlan) === -1) && !downgradeAllowed) && forPeriod != \"lifetime\") {\n if (hasStorageSubscription && plan) {\n if (plan == forPlan && hasStorageSubscription == forPeriod) {\n return (\"current_plan\");\n } else if (plan > forPlan) {\n return (\"lower_plan\");\n }\n } else if (efh && forPlan === EFH_PLAN_ID) {\n return (\"current_plan\");\n } else if (additionaltraffic && forPlan == ADDITIONAL_TRAFFIC_ID) {\n if (!additionaltrafficlifetime && planparams.additionaltraffic == trafficCount) {\n return (\"current_plan\");\n } else if (planparams.additionaltraffic > trafficCount) {\n return (\"traffic_downgrade_restriction\");\n }\n }\n } else if (!lastsubscription && forPeriod === \"lifetime\" && hasStorageSubscription && plan && plan > forPlan) {\n return (\"lower_plan\");\n } else if (plan && hasStorageSubscription && hasSubscriptionPeriod && lastsubscription.products.indexOf(plan) === -1 && forPeriod != \"lifetime\" && !downgradeAllowed) {\n if (forPlan == plan) {\n return (\"current_plan\");\n } else if (plan > forPlan) {\n return (\"lower_plan\");\n }\n }\n\n // Buying Crypto\n if (forPlan == CRYPTO_PLAN_ID) {\n if (cryptolifetime) {\n return (\"crypto_lifetime\");\n } else if (hasSubscriptionPeriod && !hasCryptoSubscription) {\n if (hasCryptoSubscription == \"month\" && forPeriod == \"month\") {\n return (\"current_plan\");\n } else if (hasSubscriptionPeriod == \"year\" && forPeriod == \"month\") {\n return (\"lower_period\");\n }\n } else if (\n hasCryptoSubscription &&\n hasSubscriptionPeriod &&\n isCanceled == false\n ) {\n if (hasSubscriptionPeriod == \"month\" && forPeriod == \"month\") {\n return (\"current_plan\");\n } else if (hasSubscriptionPeriod == \"year\") {\n if (forPeriod == \"month\") {\n return (\"lower_period\");\n } else if (forPeriod == \"year\") {\n return (\"current_plan\");\n }\n }\n }\n } else if (forPlan == EFH_PLAN_ID) {\n if (efh) {\n if (hasSubscriptionPeriod == forPeriod) {\n return (\"current_plan\");\n } else if (hasSubscriptionPeriod == \"year\") {\n if (forPeriod == \"month\") {\n return (\"lower_period\");\n }\n }\n }\n // Buying Traffic\n } else if (forPlan == ADDITIONAL_TRAFFIC_ID) {\n if (plan === CUSTOM4TB_PLAN_ID) {\n return (\"custom_subscription\");\n } else if (forPeriod === \"lifetime\" && !premiumlifetime) {\n return \"traffic_lifetime_restriction\";\n } else if (plan == FAMILY2TB_PLAN_ID || plan == FAMILY_CUSTOM_PLAN_ID) {\n return \"custom_subscription\";\n } else if (forPeriod !== \"lifetime\" && additionaltrafficlifetime) {\n return \"traffic_lifetime_restriction_subs\";\n } else if (forPeriod === \"month\" && hasSubscriptionPeriod == \"year\" && (!downgradeAllowed || lastsubscription.billingprovider === 11)) {\n return (\"traffic_downgrade_restriction\");\n } else if (additionaltraffic && !additionaltrafficlifetime && (forPeriod === \"month\" || forPeriod === \"year\") && planparams.additionaltraffic == trafficCount && forPeriod === hasSubscriptionPeriod) {\n return (\"current_plan\");\n } else if (additionaltrafficlifetime && forPeriod === \"lifetime\" && planparams.additionaltraffic == trafficCount) {\n return (\"current_plan\");\n } else if (additionaltraffic && planparams.additionaltraffic > trafficCount && ((forPeriod === hasSubscriptionPeriod && !downgradeAllowed) || (forPeriod === \"lifetime\" && additionaltrafficlifetime))) {\n return (\"traffic_lifetime_restriction_subs\");\n }\n // Buying Pass\n } else if (forPlan == PASS_PREMIUM_PLAN_ID) {\n if ((isfreetrialactive && forPeriod === \"trial\") || (islifetime && forPeriod === \"lifetime\" && passplan === 1)) {\n return (\"current_plan\");\n } else if (passmanagerdata && forPeriod === \"free\") {\n return (\"current_active_plan\");\n } else if (isfreetrialused && forPeriod === 'trial') {\n return \"plan_upgrade_restrictions\";\n } else if ((islifetime && forPeriod != \"lifetime\") || passplan === 2) {\n return (\"custom_subscription\");\n // } else if (!emailverified) {\n // return (\"verify_email\")\n } else if (lastsubscription && !isCanceled) {\n if (lastsubscription.planid) {\n let activePlanId = lastsubscription.planid;\n let activePlanPeriod = lastsubscription.period;\n if (activePlanId === forPlan) {\n if (activePlanPeriod === forPeriod) {\n return \"current_plan\";\n } else if (activePlanPeriod === 'month' && (forPeriod === 'trial' || forPeriod === 'free')) {\n return \"plan_upgrade_restrictions\";\n } else if (activePlanPeriod === 'year' && (forPeriod === 'trial' || forPeriod === 'free' || forPeriod === 'month')) {\n return \"plan_upgrade_restrictions\";\n }\n }\n\n } else if (lastsubscription.products) {\n let products = lastsubscription.products;\n let activePlanPeriod = lastsubscription.period;\n if (products.indexOf(PASS_PREMIUM_PLAN_ID) !== -1) {\n if (activePlanPeriod === forPeriod) {\n return \"current_plan\";\n } else if (activePlanPeriod === 'month' && (forPeriod === 'trial' || forPeriod === 'free')) {\n return \"plan_upgrade_restrictions\";\n } else if (activePlanPeriod === 'year' && (forPeriod === 'trial' || forPeriod === 'free' || forPeriod === 'month')) {\n return \"plan_upgrade_restrictions\";\n }\n }\n }\n } else if ((!lastsubscription || (lastsubscription && isCanceled)) && passplan == 1 && !isfreetrialactive) {\n if (islifetime || (!islifetime && forPeriod != \"lifetime\")) {\n return \"plan_upgrade_restrictions\";\n }\n }\n\n // Active Pass Lifetime plan = disable any other Pass Plans.\n if (!isfreetrialactive && (passplan === 1 || passplan === 2) && islifetime) {\n return \"plan_upgrade_restrictions\";\n }\n } else if (forPlan == PASS_FAMILY_PLAN_ID) {\n if (passplan === 2 && passFamily && !passFamily.owner) {\n return \"custom_subscription\";\n };\n\n if ((isfreetrialactive && forPeriod === \"trial\") || (islifetime && forPeriod === \"lifetime\" && passplan === 2)) {\n return \"current_plan\";\n }\n\n if (lastsubscription && !isCanceled) {\n let activePlanPeriod = lastsubscription.period;\n\n if (activePlanPeriod === 'year' && forPeriod === 'month') {\n return \"plan_upgrade_restrictions\";\n }\n\n if (lastsubscription.planid) {\n let activePlanId = lastsubscription.planid;\n\n if (activePlanId === forPlan && activePlanPeriod === forPeriod) {\n return \"current_plan\";\n }\n } else if (lastsubscription.products) {\n let products = lastsubscription.products;\n\n if (products.indexOf(forPlan) !== -1 && activePlanPeriod === forPeriod) {\n return \"current_plan\";\n }\n }\n }\n\n // Active Pass Lifetime plan = disable any other Pass Plans.\n if (!isfreetrialactive && (passplan === 1 || passplan === 2) && islifetime) {\n return \"plan_upgrade_restrictions\";\n }\n\n // Buying Storage\n } else {\n if (plan == PREMIUM_PLAN_ID || plan == PREMIUM_PLUS_PLAN_ID || plan == CUSTOM4TB_PLAN_ID) {\n if (premiumlifetime) {\n if (plan == CUSTOM4TB_PLAN_ID && typeof planparams != 'undefined' && planparams.storage > 1 && canAddStorage) {\n return (\"custom_plan_upgrade_exceeded\");\n } else if (forPlan == CUSTOM_PLAN_ID && canAddStorage) {\n if ((incStorage == maxCustomStorageCount && (plan == PREMIUM_PLAN_ID || plan == CUSTOM4TB_PLAN_ID)) || (incStorage > maxCustomStorageCount && plan == PREMIUM_PLAN_ID)) {\n return (\"plan_upgrade_restrictions\");\n } else if (incStorage == 1 && !add500GBAllowed) {\n return ((plan == PREMIUM_PLUS_PLAN_ID || plan == CUSTOM4TB_PLAN_ID) ? \"plan_upgrade_restrictions\" : \"custom_plan_upgrade_restrictions\");\n }\n } else if (forPlan <= plan || forPlan == FAMILY2TB_PLAN_ID || forPlan == FAMILY_CUSTOM_PLAN_ID || (forPlan == CUSTOM_PLAN_ID && !canAddStorage)) {\n return (\"storage_lifetime\");\n }\n } else if (hasSubscriptionPeriod && isCanceled == false) {\n if (forPeriod == \"lifetime\") {\n if (forPlan < plan) {\n return (\"lower_plan\");\n }\n } else if (hasSubscriptionPeriod == \"month\") {\n if (forPeriod == \"month\") {\n if (forPlan < plan && !downgradeAllowed) {\n return (\"lower_plan\");\n } else if (forPlan == plan) {\n return (\"current_plan\");\n }\n } else if (\n (forPeriod == \"year\" && forPlan < plan) ||\n (forPlan < plan && premiumexpires)\n ) {\n return (\"lower_plan\");\n }\n } else if (hasSubscriptionPeriod == \"year\") {\n if (forPeriod == \"month\" && !downgradeAllowed) {\n return (\"lower_period\");\n } else {\n if (forPlan < plan && !downgradeAllowed) {\n return (\"lower_plan\");\n } else if (forPlan == plan) {\n if (!downgradeAllowed || hasSubscriptionPeriod == forPeriod) {\n return (\"current_plan\");\n }\n }\n }\n }\n } else if (isCanceled == false) {\n if (forPlan < plan) {\n return (\"lower_plan\");\n } else if (forPlan <= plan && premiumexpires) {\n let now = new Date();\n let expires = new Date(premiumexpires);\n //Get 1 day in milliseconds\n let oneDay = 1000 * 60 * 60 * 24;\n let daysLeft = Number(expires) - Number(now) / oneDay;\n\n let monthlyTabisActive = forPeriod === \"month\";\n let annualTabisActive = forPeriod === \"year\";\n\n if (daysLeft > 10 && (annualTabisActive || monthlyTabisActive)) {\n return (\"lower_period\");\n }\n }\n }\n } else if (plan == CUSTOM_PLAN_ID) {\n if (typeof planparams != 'undefined' && planparams.storage >= maxCustomStorageCount && forPlan == CUSTOM_PLAN_ID && canAddStorage) {\n return (\"custom_plan_upgrade_exceeded\");\n } else if (typeof planparams != 'undefined' && ((planparams.storage + incStorage) > maxCustomStorageCount) && forPlan == CUSTOM_PLAN_ID && canAddStorage) {\n return (\"plan_upgrade_restrictions\");\n } else if (forPlan == CUSTOM_PLAN_ID && incStorage == 1 && !add500GBAllowed) {\n if (typeof planparams != 'undefined' && planparams.storage <= 3) {\n return (\"custom_plan_upgrade_restrictions\");\n } else {\n return (\"plan_upgrade_restrictions\");\n }\n } else if (forPlan < plan || (!canAddStorage && forPlan == CUSTOM_PLAN_ID)) {\n return (\"storage_lifetime\");\n } else if (forPeriod === \"year\" || forPeriod === \"month\") {\n return (\"storage_lifetime\");\n }\n } else if ((plan == FAMILY2TB_PLAN_ID || plan == FAMILY_CUSTOM_PLAN_ID) && forPlan !== FAMILY_CUSTOM_PLAN_ID) {\n return (\"family\");\n } else if (forPlan == FAMILY_CUSTOM_PLAN_ID || forPlan == FAMILY2TB_PLAN_ID) {\n if ((plan == FAMILY_CUSTOM_PLAN_ID || plan == FAMILY2TB_PLAN_ID) && family && !family.owner) {\n return \"family\";\n } else if (plan == FAMILY_CUSTOM_PLAN_ID && typeof planparams != 'undefined') {\n if (planparams.storage >= maxFamilyStorageCount && canAddStorage) {\n return (\"custom_plan_upgrade_exceeded\");\n } else if (((planparams.storage + incStorage) > maxFamilyStorageCount) && canAddStorage) {\n return (\"plan_upgrade_restrictions\");\n }\n }\n } else {\n if (forPlan == CUSTOM_PLAN_ID && incStorage > maxCustomStorageCount) {\n return (\"plan_upgrade_restrictions\");\n }\n }\n }\n }\n }\n};\n\nexport const preventEnteringNumbers = (event) => {\n const key = event.which || event.keyCode || event.charCode;\n const pressedCharacter = String.fromCharCode(key);\n\n if (!(/[a-zA-Z '-]/).test(pressedCharacter)) {\n event.preventDefault();\n }\n}\n\ntype creditCardValidation = {\n name: string,\n range: string,\n valid_length: Array\n}\n\nexport const findCardType = (cardNumber: string): creditCardValidation => {\n const creditCardValidations = [\n {\n name: \"amex\",\n range: \"34, 37\",\n valid_length: [\"15\"]\n },\n {\n name: \"diners\",\n range: \"301, 302, 303, 304, 305, 36\",\n valid_length: [\"16\"]\n },\n {\n name: \"jcb\",\n range: \"352, 353, 354, 355, 356, 357, 358\",\n valid_length: [\"16\"]\n },\n {\n name: \"visa\",\n range: \"4\",\n valid_length: [\"19\", \"18\", \"17\", \"16\", \"15\", \"14\", \"13\"]\n },\n {\n name: \"mastercard\",\n range: \"50, 51, 52, 53, 54, 55, 222\",\n valid_length: [\"16\"]\n },\n {\n name: \"discover\",\n range: \"6011, 622, 644, 645, 646, 647, 648, 649\",\n valid_length: [\"16\"]\n }\n ];\n\n return creditCardValidations.find((cardTemplate: creditCardValidation): (creditCardValidation | false) => {\n let isThereAMatch = cardTemplate.range.split(\", \").some((range: string) => {\n const rangeLength = range.length;\n return range === cardNumber.slice(0, rangeLength);\n });\n return isThereAMatch;\n });\n}\n\nexport const getExpiryDatePeriod = (expiryDate: string, period: string): string => {\n const periods = {\n month: Number(expiryDate.split(\"/\")[0]),\n year: Number(expiryDate.split(\"/\")[1])\n }\n\n if (periods.year > 2000 && periods.year < 2100) {\n periods.year -= 2000;\n }\n\n return periods[period];\n}\n\nexport const validateExpiryDate = (expiryDate: string): boolean => {\n const month = getExpiryDatePeriod(expiryDate, \"month\");\n const year = getExpiryDatePeriod(expiryDate, \"year\");\n const currentYear = new Date().getFullYear() - 2000;\n const currentMonth = new Date().getMonth() + 1;\n\n const validateExpression =\n month <= 12 &&\n ((month > 0 && year > currentYear) || (month >= currentMonth && year == currentYear)) &&\n year <= 40;\n\n return validateExpression;\n};\n\n\nexport const getDeviceID = () => {\n if (!window.localStorage.getItem(\"deviceid\") && !rcookie(\"deviceid\")) {\n return rcookie(\"deviceid\");\n } else if (rcookie(\"deviceid\")) {\n if (window.localStorage.getItem(\"deviceid\")) {\n window.localStorage.removeItem(\"deviceid\");\n }\n return rcookie(\"deviceid\");\n } else if (window.localStorage.getItem(\"deviceid\")) {\n setcookie(\"deviceid\", window.localStorage.getItem(\"deviceid\"), 365);\n window.localStorage.removeItem(\"deviceid\");\n return rcookie(\"deviceid\");\n }\n};\n\nexport const getCurrency = ({ auth, callback = () => { } }: { auth: string, callback: () => void }) => {\n const params = {};\n let getCurrencyTries = 0;\n\n if (getCurrencyTries >= 5) {\n onSuccess(\"$\");\n return;\n }\n\n if (auth) {\n params[\"auth\"] = $.cookie(\"pcauth\");\n }\n\n if (rcookie(\"forcecurrency\")) {\n params[\"currency\"] = $.cookie(\"forcecurrency\");\n }\n\n if (rcookie(\"forcecountry\")) {\n params[\"country\"] = $.cookie(\"forcecountry\");\n }\n\n const onSuccess = (currency) => {\n if (typeof Storage !== \"undefined\" && currencyMap[currency]) {\n sessionStorage.setItem(\"pclCurrency\", currencyMap[currency]);\n }\n\n callback(currency);\n };\n\n const getCurrencyApiCall = () => {\n getCurrencyTries++;\n const onError = () => {\n setTimeout(() => {\n getCurrencyApiCall();\n }, 300);\n };\n\n pCloudGlobals.apiMethod && pCloudGlobals.apiMethod(\n \"getcurrency\",\n params,\n (data) => {\n if (data.currency) {\n onSuccess(data.currency);\n } else {\n onError();\n }\n },\n {\n errorCallback: onError\n }\n );\n };\n\n getCurrencyApiCall();\n};\n\nexport const areArraysEqual = (array1: Array, array2: Array): boolean => {\n if (!array1 || !array2) {\n return false;\n }\n\n if (array1.length !== array2.length) {\n return false;\n }\n\n for (let index1 = 0; index1 < array1.length; index1++) {\n const e1 = array1[index1];\n const e2 = array2[index1];\n\n if (Array.isArray(e1) && Array.isArray(e2)) {\n compareArrays(e1, e2);\n } else if (e1 !== e2) {\n return false;\n }\n }\n\n return true;\n}\n\nexport const formatMS = (milliseconds: number, type: \"day\" | \"hour\" | \"minute\" | \"second\"): number => {\n const typeMap = {\n \"day\": { \"divider\": 86400000, \"modulo\": milliseconds + 1 },\n \"hour\": { \"divider\": 3600000, \"modulo\": 24 },\n \"minute\": { \"divider\": 60000, \"modulo\": 60 },\n \"second\": { \"divider\": 1000, \"modulo\": 60 }\n };\n\n if (!(type in typeMap)) {\n console.error(\"Invalid duration type: \" + type);\n\n return 0;\n }\n\n return parseInt((milliseconds / typeMap[type].divider) % typeMap[type].modulo);\n};\n\nexport const msToTime = (duration: number, showHours = true): string => {\n let seconds = parseInt((duration / 1000) % 60);\n let minutes = parseInt((duration / 60000) % 60);\n let hours = parseInt((duration / 3600000) % 24);\n\n hours = hours < 10 ? '0' + hours : hours;\n minutes = minutes < 10 ? '0' + minutes : minutes;\n seconds = seconds < 10 ? '0' + seconds : seconds;\n\n return (showHours ? hours + ':' : '') + minutes + ':' + seconds;\n};\n\nexport const cleanFloat = (number: number): number => {\n let value = Number(number);\n let decimal = value % 1 == 0 ? 0 : 2;\n let result = Number(value.toFixed(decimal));\n\n if (result % 1 == 0) {\n decimal = 0;\n }\n\n return Number(value.toFixed(decimal));\n};\n\nexport const browserVersion = (userAgent, regex) => {\n return userAgent.match(regex) ? userAgent.match(regex)[2] : null;\n}\n\nexport const detectBrowser = (version) => {\n const userAgent = navigator.userAgent;\n let browser = \"unkown\";\n // Detect browser name\n browser = (/ucbrowser/i).test(userAgent) ? 'UCBrowser' : browser;\n browser = (/edg/i).test(userAgent) ? 'Edge' : browser;\n browser = (/googlebot/i).test(userAgent) ? 'GoogleBot' : browser;\n browser = (/chromium/i).test(userAgent) ? 'Chromium' : browser;\n browser = (/firefox|fxios/i).test(userAgent) && !(/seamonkey/i).test(userAgent) ? 'Firefox' : browser;\n browser = (/; msie|trident/i).test(userAgent) && !(/ucbrowser/i).test(userAgent) ? 'IE' : browser;\n browser = (/chrome|crios/i).test(userAgent) && !(/opr|opera|chromium|edg|ucbrowser|googlebot/i).test(userAgent) ? 'Chrome' : browser;;\n browser = (/safari/i).test(userAgent) && !(/chromium|edg|ucbrowser|chrome|crios|opr|opera|fxios|firefox/i).test(userAgent) ? 'Safari' : browser;\n browser = (/opr|opera/i).test(userAgent) ? 'Opera' : browser;\n browser = navigator.brave ? \"Brave\" : browser;\n\n if (version) {\n switch (browser) {\n case 'UCBrowser': return `${browser}/${browserVersion(userAgent, /(ucbrowser)\\/([\\d\\.]+)/i)}`;\n case 'Edge': return `${browser}/${browserVersion(userAgent, /(edge|edga|edgios|edg)\\/([\\d\\.]+)/i)}`;\n case 'GoogleBot': return `${browser}/${browserVersion(userAgent, /(googlebot)\\/([\\d\\.]+)/i)}`;\n case 'Chromium': return `${browser}/${browserVersion(userAgent, /(chromium)\\/([\\d\\.]+)/i)}`;\n case 'Firefox': return `${browser}/${browserVersion(userAgent, /(firefox|fxios)\\/([\\d\\.]+)/i)}`;\n case 'Chrome': return `${browser}/${browserVersion(userAgent, /(chrome|crios)\\/([\\d\\.]+)/i)}`;\n case 'Safari': return `${browser}/${browserVersion(userAgent, /(safari)\\/([\\d\\.]+)/i)}`;\n case 'Opera': return `${browser}/${browserVersion(userAgent, /(opera|opr)\\/([\\d\\.]+)/i)}`;\n case 'IE': const version = browserVersion(userAgent, /(trident)\\/([\\d\\.]+)/i);\n // IE version is mapped using trident version \n // IE/8.0 = Trident/4.0, IE/9.0 = Trident/5.0\n return version ? `${browser}/${parseFloat(version) + 4.0}` : `${browser}/7.0`;\n default: return `unknown/0.0.0.0`;\n }\n }\n\n return browser;\n}\n\nexport const isValidEmailAddress = (email: string): boolean => {\n const pattern = new RegExp(/^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\t\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/);\n return pattern.test(email);\n};\n\nexport const apiCall = (method, params, onSuccess, onError, opts) => {\n const dfd = jQuery.Deferred();\n opts = {\n errorCallback: (data) => {\n dfd.reject(data);\n if (typeof onError === 'function') {\n onError(data);\n }\n },\n ...opts\n }\n\n pCloudGlobals.apiMethod(\n method,\n params,\n (data) => {\n if (typeof onSuccess === 'function') {\n onSuccess(data);\n }\n dfd.resolve(data);\n },\n opts\n );\n\n return dfd.promise();\n};\n\nexport const apiCallPost = (method, params, onSuccess, onError, opts) => {\n const dfd = jQuery.Deferred();\n opts = {\n type: \"POST\",\n errorCallback: (data) => {\n dfd.reject(data);\n if (typeof onError === 'function') {\n onError(data);\n }\n },\n ...opts\n }\n\n pCloudGlobals.apiMethod(\n method,\n params,\n (data) => {\n dfd.resolve(data);\n if (typeof onSuccess === 'function') {\n onSuccess(data);\n }\n },\n opts\n );\n\n return dfd.promise();\n};\n\nexport const detectIsMobile = () => {\n return /Mobile|mini|Fennec|Android|iP(od|hone)/.test(navigator.appVersion);\n};\n\nexport const onMouseOut = (event, callback) => {\n const e = event ? event : window.event;\n // If this is an autocomplete element.\n if (e.target && e.target.tagName && e.target.tagName.toLowerCase() == \"input\") {\n return;\n }\n\n // Get the current viewport width.\n const vpWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n\n // If the current mouse X position is within 50px of the right edge of the viewport, return.\n if (e.clientX >= (vpWidth - 50)) {\n return;\n }\n\n // If the current mouse Y position is not within 50px of the top edge of the viewport, return.\n if (e.clientY >= 50) {\n return;\n }\n\n // Fixes mozila problem where event is getting triggered on rigth click. -83 seems to be a constant value for clientY in that case.\n if (e.clientY === -83) {\n return;\n }\n\n // Reliable, works on mouse exiting window and user switching active program\n const from = e.relatedTarget || e.toElement;\n\n // User is exiting window\n if (!from && callback) {\n callback();\n }\n}\n\nexport const isInternetExplorer = () => {\n return !!document.documentMode;\n}\n\nexport const scrollToTop = () => {\n window.scrollTo(0);\n};\n\nexport const bytesToSize = (bytes) => {\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\n if (bytes == 0) return null;\n const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));\n if (i == 0) return bytes + ' ' + sizes[i];\n return (bytes / Math.pow(1024, i)).toFixed(0) + ' ' + sizes[i];\n};\n\nexport const setTitleByCodeUrl = (codeUrl, setTitle, setRegisterTitle, setLoginTitle) => {\n if (codeUrl) {\n if (codeUrl == 'DROPBOX2PCLOUD') {\n setTitle('Special for Dropbox users - press submit and enjoy 3 months of Premium 500 GB for Free');\n } else if (codeUrl == 'HUBIC2PCLOUD') {\n setTitle('Special for hubiC users - press submit and enjoy 3 months of Premium 500 GB for Free');\n } else if (codeUrl == 'APPO') {\n setTitle('Special for\"APPO\" members - register now and enjoy 3 months of Premium 500 GB for Free');\n } else if (codeUrl == 'BIRTHDAY4U') {\n setTitle(__(\"PromoPage_birthday_text\"));\n } else if (codeUrl == 'PCLOUDMUSIC') {\n setTitle(__(\"pCloud_Music_coupon_submit\").replace(\"%url_promo%\", codeUrl));\n setRegisterTitle(__(\"pCloud_Music_coupon_register\").replace(\"%url_promo%\", codeUrl));\n setLoginTitle(__(\"pCloud_Music_coupon_login\").replace(\"%url_promo%\", codeUrl));\n } else if (codeUrl == 'BDAY3MONTHS') {\n setTitle(__(\"pm_coupon_submit\").replace(\"%url_promo%\", codeUrl).replace(\"%months%\", 3));\n setRegisterTitle(__(\"pm_coupon_register\").replace(\"%url_promo%\", codeUrl).replace(\"%months%\", 3));\n setLoginTitle(__(\"pm_coupon_login\").replace(\"%url_promo%\", codeUrl).replace(\"%months%\", 3));\n } else if (codeUrl == 'PM6MONTHS' || codeUrl == \"INT6MONTHS\"|| codeUrl == \"LFS6MONTHS\") {\n setTitle(__(\"pm_coupon_submit\").replace(\"%url_promo%\", codeUrl).replace(\"%months%\", 6));\n setRegisterTitle(__(\"pm_coupon_register\").replace(\"%url_promo%\", codeUrl).replace(\"%months%\", 6));\n setLoginTitle(__(\"pm_coupon_login\").replace(\"%url_promo%\", codeUrl).replace(\"%months%\", 6));\n } else {\n setTitle(__(\"promo_submit_with_url\").replace(\"%url_promo%\", codeUrl));\n setRegisterTitle(__(\"Register for Free and enter your promo code. It will become effective immediately!\"));\n setLoginTitle(__(\"Enter your promo code upon Login and it will become effective immediately.\"));\n }\n }\n else {\n setTitle(__('Have a promo code? Enter it below.'));\n setRegisterTitle(__(\"Register for Free and enter your promo code. It will become effective immediately!\"));\n setLoginTitle(__(\"Enter your promo code upon Login and it will become effective immediately.\"));\n }\n};\n\nexport const getMonthsFromCode = (code) => {\n if (!code) {\n return \"\"\n };\n\n const indexPosition = code.indexOf(\"MONTHS\");\n let monthsCountIndex;\n\n if (indexPosition === -1) {\n return \"\";\n }\n\n if (indexPosition > 0) {\n monthsCountIndex = indexPosition - 1;\n } else {\n monthsCountIndex = indexPosition + 7;\n }\n\n if (!isNaN(code[monthsCountIndex])) {\n return code[monthsCountIndex]\n }\n\n return \"\";\n};\n\nexport const getLanguage = () => {\n return currentLang || $.cookie('set_lang') || $.cookie('lang') || 'en'\n}\n\nexport const countriesInEuropeList = {\n \"AT\": \"Austria\",\n \"BE\": \"Belgium\",\n \"BG\": \"Bulgaria\",\n \"HR\": \"Croatia\",\n \"CY\": \"Cyprus\",\n \"CZ\": \"Czech Republic\",\n \"DK\": \"Denmark\",\n \"EE\": \"Estonia\",\n \"FI\": \"Finland\",\n \"FR\": \"France\",\n \"DE\": \"Germany\",\n \"GR\": \"Greece\",\n \"HU\": \"Hungary\",\n \"IE\": \"Ireland\",\n \"IT\": \"Italy\",\n \"LV\": \"Latvia\",\n \"LT\": \"Lithuania\",\n \"LU\": \"Luxembourg\",\n \"MT\": \"Malta\",\n \"NL\": \"Netherlands\",\n \"PL\": \"Poland\",\n \"PT\": \"Portugal\",\n \"RO\": \"Romania\",\n \"SK\": \"Slovakia\",\n \"SI\": \"Slovenia\",\n \"ES\": \"Spain\",\n \"SE\": \"Sweden\",\n \"CH\": \"Switzerland\",\n \"GB\": \"United Kingdom\",\n \"AL\": \"Albania\",\n \"AD\": \"Andorra\",\n \"AM\": \"Armenia\",\n \"BY\": \"Belarus\",\n \"BA\": \"Bosnia and Herzegovina\",\n \"FO\": \"Faroe Islands\",\n \"GE\": \"Georgia\",\n \"GI\": \"Gibraltar\",\n \"IS\": \"Iceland\",\n \"IM\": \"Isle of Man\",\n \"XK\": \"Kosovo\",\n \"LI\": \"Liechtenstein\",\n \"MK\": \"Macedonia\",\n \"MD\": \"Moldova\",\n \"MC\": \"Monaco\",\n \"ME\": \"Montenegro\",\n \"NO\": \"Norway\",\n \"RU\": \"Russian Federation\",\n \"SM\": \"San Marino\",\n \"RS\": \"Serbia\",\n \"CH\": \"Switzerland\",\n \"TR\": \"Turkey\",\n \"UA\": \"Ukraine\",\n \"GB\": \"United Kingdom\",\n \"VA\": \"Vatican City State\"\n};\n\nexport const isCountryInEurope = (countryCodeToNameMap, country) => {\n return countryCodeToNameMap[country];\n};\n\nexport const encodeQueryData = (data) => {\n const ret = [];\n\n for (let d in data) {\n ret.push(encodeURIComponent(d) + '=' + encodeURIComponent(data[d]));\n }\n\n return ret.join('&');\n};\n\nexport const calculateDiscountPercent = (price, oldPrice) => Math.floor((1 - (price/oldPrice)) * 100);\n\nexport const convertDateToDDMMMYY = (date: string, shortMonthName = true, dayMonthSeparator = \" \", monthYearSeparator = \" \") => {\n const monthNames = [\n \"jan\",\n \"feb\",\n \"mar\",\n \"apr\",\n \"may\",\n \"jun\",\n \"jul\",\n \"aug\",\n \"sep\",\n \"oct\",\n \"nov\",\n \"dec\"\n ];\n const dateObj = new Date(date);\n const day = dateObj.getDate();\n const month = monthNames[dateObj.getMonth()];\n const monthKey = \"month_\" + (!shortMonthName ? \"full_\" : \"\") + month;\n const year = dateObj.getFullYear();\n\n return day + dayMonthSeparator + __(monthKey) + monthYearSeparator + year;\n};\n\nexport const daysDiff = (dateTo: string, dateFrom: string = null) => {\n const dateFromObj = dateFrom !== null && dateFrom !== \"\" ? new Date(dateFrom) : new Date();\n const dateToObj = new Date(dateTo);\n\n // Change hours and minutes to be from the start of the day.\n dateFromObj.setHours(0,0,0,0);\n dateToObj.setHours(0,0,0,0);\n return (dateToObj.getTime() - dateFromObj.getTime() + ((dateFromObj.getTimezoneOffset() - dateToObj.getTimezoneOffset()) * 60 * 1000)) / (1000 * 3600 * 24);\n};","import { sha256 } from 'js-sha256';\n\nimport _move from \"../lib/move\";\nimport * as ptr from \"@pcloud/web-utilities/dist/lib/ptr\";\n\nimport * as cjAffiliate from \"@pcloud/web-utilities/dist/lib/cjAffiliate\";\nimport * as SHAgancy from \"@pcloud/web-utilities/dist/lib/6HAgancy\";\nimport * as utils from \"../lib/utils\";\n\nconst _attachList = [\n {\n attach: self,\n list: [\n //tracking,\n \"getPurchaseData\",\n \"initAnalytics\",\n \"initFacebookTracking\",\n \"initBingTracking\",\n \"setPromoParam\",\n \"getPromoParam\",\n \"sendAnalyticsEvent\",\n \"sendPassAnalyticsEvent\",\n \"sendAnalyticsEventFromStorage\",\n \"sendAnalyticsTag\",\n \"setFBTrackingForReferral\",\n \"initTracking\",\n \"saveToSessionstorage\",\n \"setTracking\",\n \"sha256\",\n\n //CJ AFFILIATE\n \"CJ_PAGE_TYPE_MAP\",\n \"CJ_PLANS_PREFIX\",\n \"saveCJCookie\",\n \"sendCJPageVisitTag\",\n \"sendCJConversionTag\",\n \"sendCJTokenOnLogin\",\n\n //6H Agancy\n \"get6HData\",\n \"set6HData\",\n \"send6HData\"\n ]\n }\n];\n\n_move(utils, _attachList);\n_move(ptr, _attachList);\n_move({sha256: sha256}, _attachList);\n_move(cjAffiliate, _attachList);\n_move(SHAgancy, _attachList);\n\n(() => {\n // mockup all tracking methods used and unused\n window.twq = function() {};\n window.pintrk = function() {};\n window.lintrk = function() {};\n var URL_PRODUCT = utils.hrefSearch(\"product\");\n \n\tif (!(URL_PRODUCT && (URL_PRODUCT.indexOf(\"pass-premium\") !== -1 || URL_PRODUCT.indexOf(\"pass-family\") !== -1))) {\n\t\tptr.setTracking({ initialCall: true, forceTrack: utils.rcookie(\"pcauth\") ? true : false });\n\t\tcjAffiliate.saveCJCookie();\n\t}\n})();\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtype,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === Archtype.Object) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): Archtype {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? Archtype.Array\n\t\t: isMap(thing)\n\t\t? Archtype.Map\n\t\t: isSet(thing)\n\t\t? Archtype.Set\n\t\t: Archtype.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === Archtype.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === Archtype.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === Archtype.Map) thing.set(propOrOldValue, value)\n\telse if (t === Archtype.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze(obj: T, deep?: boolean): T\nexport function freeze(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: ProxyType.ES5Object\n\tdraft_: Drafted\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: ProxyType.ES5Array\n\tdraft_: Drafted\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ProxyType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ProxyType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyType,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyType.ProxyObject ||\n\t\tstate.type_ === ProxyType.ProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumerable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyType.ES5Object || state.type_ === ProxyType.ES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ProxyType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(resultEach, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path, isSet)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyType\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyType.ProxyArray : (ProxyType.ProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyType.ProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\n\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\treturn result.then(nextState => [nextState, patches!, inversePatches!])\n\t\t}\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches(base: T, patches: Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtype,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === Archtype.Set ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase Archtype.Map:\n\t\t\treturn new Map(value)\n\t\tcase Archtype.Set:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyType,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyType.ES5Array : (ProxyType.ES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyType.ES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyType.ES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyType.ES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyType.ES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (!draft_.hasOwnProperty(i)) {\n\t\t\t\t\tassigned_[i] = true\n\t\t\t\t}\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\t// last descriptor can be not a trap, if the array was extended\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// if we miss a property, it has been deleted, so array probobaly changed\n\t\tfor (let i = 0; i < draft_.length; i++) {\n\t\t\tif (!draft_.hasOwnProperty(i)) return true\n\t\t}\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyType.ES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","import {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tES5ArrayState,\n\tProxyArrayState,\n\tMapState,\n\tES5ObjectState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tProxyType,\n\tArchtype,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tswitch (state.type_) {\n\t\t\tcase ProxyType.ProxyObject:\n\t\t\tcase ProxyType.ES5Object:\n\t\t\tcase ProxyType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t\tcase ProxyType.ES5Array:\n\t\t\tcase ProxyType.ProxyArray:\n\t\t\t\treturn generateArrayPatches(state, basePath, patches, inversePatches)\n\t\t\tcase ProxyType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ES5ArrayState | ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tif (assigned_[i] && copy_[i] !== base_[i]) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(base_[i])\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tif (base_.length < copy_.length) {\n\t\t\tinversePatches.push({\n\t\t\t\top: REPLACE,\n\t\t\t\tpath: basePath.concat([\"length\"]),\n\t\t\t\tvalue: base_.length\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ES5ObjectState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key)\n\t\t\tconst value = get(copy_!, key)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(op === REMOVE ? {op, path} : {op, path, value})\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tpatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_(draft: T, patches: Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === Archtype.Object || parentType === Archtype.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === \"constructor\")\n\t\t\t\t)\n\t\t\t\t\tdie(24)\n\t\t\t\tif (typeof base === \"function\" && p === \"prototype\") die(24)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (typeof base !== \"object\") die(15, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase Archtype.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase Archtype.Set:\n\t\t\t\t\t\t\tdie(16)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase Archtype.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase Archtype.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase Archtype.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase Archtype.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase Archtype.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase Archtype.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(17, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (Array.isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(Object.getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(\"Patches\", {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_\n\t})\n}\n","// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\titeratorSymbol,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tProxyType,\n\tdie,\n\teach\n} from \"../internal\"\n\nexport function enableMapSet() {\n\t/* istanbul ignore next */\n\tvar extendStatics = function(d: any, b: any): any {\n\t\textendStatics =\n\t\t\tObject.setPrototypeOf ||\n\t\t\t({__proto__: []} instanceof Array &&\n\t\t\t\tfunction(d, b) {\n\t\t\t\t\td.__proto__ = b\n\t\t\t\t}) ||\n\t\t\tfunction(d, b) {\n\t\t\t\tfor (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]\n\t\t\t}\n\t\treturn extendStatics(d, b)\n\t}\n\n\t// Ugly hack to resolve #502 and inherit built in Map / Set\n\tfunction __extends(d: any, b: any): any {\n\t\textendStatics(d, b)\n\t\tfunction __(this: any): any {\n\t\t\tthis.constructor = d\n\t\t}\n\t\td.prototype =\n\t\t\t// @ts-ignore\n\t\t\t((__.prototype = b.prototype), new __())\n\t}\n\n\tconst DraftMap = (function(_super) {\n\t\t__extends(DraftMap, _super)\n\t\t// Create class manually, cause #502\n\t\tfunction DraftMap(this: any, target: AnyMap, parent?: ImmerState): any {\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ProxyType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false\n\t\t\t} as MapState\n\t\t\treturn this\n\t\t}\n\t\tconst p = DraftMap.prototype\n\n\t\tObject.defineProperty(p, \"size\", {\n\t\t\tget: function() {\n\t\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t\t}\n\t\t\t// enumerable: false,\n\t\t\t// configurable: true\n\t\t})\n\n\t\tp.has = function(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tp.set = function(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tp.delete = function(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tif (state.base_.has(key)) {\n\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t} else {\n\t\t\t\tstate.assigned_!.delete(key)\n\t\t\t}\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tp.clear = function() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tp.forEach = function(\n\t\t\tcb: (value: any, key: any, self: any) => void,\n\t\t\tthisArg?: any\n\t\t) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tp.get = function(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(state.scope_.immer_, value, state)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tp.keys = function(): IterableIterator {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tp.values = function(): IterableIterator {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[iteratorSymbol]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tp.entries = function(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[iteratorSymbol]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tp[iteratorSymbol] = function() {\n\t\t\treturn this.entries()\n\t\t}\n\n\t\treturn DraftMap\n\t})(Map)\n\n\tfunction proxyMap_(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftMap(target, parent)\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tconst DraftSet = (function(_super) {\n\t\t__extends(DraftSet, _super)\n\t\t// Create class manually, cause #502\n\t\tfunction DraftSet(this: any, target: AnySet, parent?: ImmerState) {\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ProxyType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false\n\t\t\t} as SetState\n\t\t\treturn this\n\t\t}\n\t\tconst p = DraftSet.prototype\n\n\t\tObject.defineProperty(p, \"size\", {\n\t\t\tget: function() {\n\t\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t\t}\n\t\t\t// enumerable: true,\n\t\t})\n\n\t\tp.has = function(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tp.add = function(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tp.delete = function(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tp.clear = function() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tp.values = function(): IterableIterator {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tp.entries = function entries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tp.keys = function(): IterableIterator {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tp[iteratorSymbol] = function() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tp.forEach = function forEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\n\t\treturn DraftSet\n\t})(Set)\n\n\tfunction proxySet_(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftSet(target, parent)\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(state.scope_.immer_, value, state)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"MapSet\", {proxyMap_, proxySet_})\n}\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","import {enableES5} from \"./es5\"\nimport {enableMapSet} from \"./mapset\"\nimport {enablePatches} from \"./patches\"\n\nexport function enableAllPlugins() {\n\tenableES5()\n\tenableMapSet()\n\tenablePatches()\n}\n","\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./immer.cjs.production.min.js')\n} else {\n module.exports = require('./immer.cjs.development.js')\n}\n","\n/**\n * this is a set which automatically forgets\n * a given entry when a new entry is set and the ttl\n * of the old one is over\n */\nexport class ObliviousSet {\n public readonly set = new Set();\n public readonly timeMap = new Map();\n constructor(\n public readonly ttl: number\n ) { }\n\n has(value: T): boolean {\n return this.set.has(value);\n }\n\n add(value: T): void {\n this.timeMap.set(value, now());\n this.set.add(value);\n\n /**\n * When a new value is added,\n * start the cleanup at the next tick\n * to not block the cpu for more important stuff\n * that might happen.\n */\n setTimeout(() => {\n removeTooOldValues(this);\n }, 0);\n }\n\n clear() {\n this.set.clear();\n this.timeMap.clear();\n }\n}\n\n\n/**\n * Removes all entries from the set\n * where the TTL has expired\n */\nexport function removeTooOldValues(\n obliviousSet: ObliviousSet\n) {\n const olderThen = now() - obliviousSet.ttl;\n const iterator = obliviousSet.set[Symbol.iterator]();\n\n /**\n * Because we can assume the new values are added at the bottom,\n * we start from the top and stop as soon as we reach a non-too-old value.\n */\n while (true) {\n const value = iterator.next().value;\n if (!value) {\n return; // no more elements\n }\n const time = obliviousSet.timeMap.get(value);\n if (time < olderThen) {\n obliviousSet.timeMap.delete(value);\n obliviousSet.set.delete(value);\n } else {\n // We reached a value that is not old enough\n return;\n }\n }\n}\n\nexport function now(): number {\n return new Date().getTime();\n}\n\n\n","export var KEY_PREFIX = 'persist:';\nexport var FLUSH = 'persist/FLUSH';\nexport var REHYDRATE = 'persist/REHYDRATE';\nexport var PAUSE = 'persist/PAUSE';\nexport var PERSIST = 'persist/PERSIST';\nexport var PURGE = 'persist/PURGE';\nexport var REGISTER = 'persist/REGISTER';\nexport var DEFAULT_VERSION = -1;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n autoMergeLevel1: \n - merges 1 level of substate\n - skips substate if already modified\n*/\nexport default function autoMergeLevel1(inboundState, originalState, reducedState, _ref) {\n var debug = _ref.debug;\n\n var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n if (inboundState && _typeof(inboundState) === 'object') {\n Object.keys(inboundState).forEach(function (key) {\n // ignore _persist data\n if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n if (originalState[key] !== reducedState[key]) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n return;\n } // otherwise hard set the new value\n\n\n newState[key] = inboundState[key];\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n return newState;\n}","import { KEY_PREFIX, REHYDRATE } from './constants';\n// @TODO remove once flow < 0.63 support is no longer required.\nexport default function createPersistoid(config) {\n // defaults\n var blacklist = config.blacklist || null;\n var whitelist = config.whitelist || null;\n var transforms = config.transforms || [];\n var throttle = config.throttle || 0;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var serialize;\n\n if (config.serialize === false) {\n serialize = function serialize(x) {\n return x;\n };\n } else if (typeof config.serialize === 'function') {\n serialize = config.serialize;\n } else {\n serialize = defaultSerialize;\n }\n\n var writeFailHandler = config.writeFailHandler || null; // initialize stateful values\n\n var lastState = {};\n var stagedState = {};\n var keysToProcess = [];\n var timeIterator = null;\n var writePromise = null;\n\n var update = function update(state) {\n // add any changed keys to the queue\n Object.keys(state).forEach(function (key) {\n if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop\n\n if (lastState[key] === state[key]) return; // value unchanged? noop\n\n if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop\n\n keysToProcess.push(key); // add key to queue\n }); //if any key is missing in the new state which was present in the lastState,\n //add it for processing too\n\n Object.keys(lastState).forEach(function (key) {\n if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {\n keysToProcess.push(key);\n }\n }); // start the time iterator if not running (read: throttle)\n\n if (timeIterator === null) {\n timeIterator = setInterval(processNextKey, throttle);\n }\n\n lastState = state;\n };\n\n function processNextKey() {\n if (keysToProcess.length === 0) {\n if (timeIterator) clearInterval(timeIterator);\n timeIterator = null;\n return;\n }\n\n var key = keysToProcess.shift();\n var endState = transforms.reduce(function (subState, transformer) {\n return transformer.in(subState, key, lastState);\n }, lastState[key]);\n\n if (endState !== undefined) {\n try {\n stagedState[key] = serialize(endState);\n } catch (err) {\n console.error('redux-persist/createPersistoid: error serializing state', err);\n }\n } else {\n //if the endState is undefined, no need to persist the existing serialized content\n delete stagedState[key];\n }\n\n if (keysToProcess.length === 0) {\n writeStagedState();\n }\n }\n\n function writeStagedState() {\n // cleanup any removed keys just before write.\n Object.keys(stagedState).forEach(function (key) {\n if (lastState[key] === undefined) {\n delete stagedState[key];\n }\n });\n writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);\n }\n\n function passWhitelistBlacklist(key) {\n if (whitelist && whitelist.indexOf(key) === -1 && key !== '_persist') return false;\n if (blacklist && blacklist.indexOf(key) !== -1) return false;\n return true;\n }\n\n function onWriteFail(err) {\n // @TODO add fail handlers (typically storage full)\n if (writeFailHandler) writeFailHandler(err);\n\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('Error storing data', err);\n }\n }\n\n var flush = function flush() {\n while (keysToProcess.length !== 0) {\n processNextKey();\n }\n\n return writePromise || Promise.resolve();\n }; // return `persistoid`\n\n\n return {\n update: update,\n flush: flush\n };\n} // @NOTE in the future this may be exposed via config\n\nfunction defaultSerialize(data) {\n return JSON.stringify(data);\n}","import { KEY_PREFIX } from './constants';\nexport default function getStoredState(config) {\n var transforms = config.transforms || [];\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var debug = config.debug;\n var deserialize;\n\n if (config.deserialize === false) {\n deserialize = function deserialize(x) {\n return x;\n };\n } else if (typeof config.deserialize === 'function') {\n deserialize = config.deserialize;\n } else {\n deserialize = defaultDeserialize;\n }\n\n return storage.getItem(storageKey).then(function (serialized) {\n if (!serialized) return undefined;else {\n try {\n var state = {};\n var rawState = deserialize(serialized);\n Object.keys(rawState).forEach(function (key) {\n state[key] = transforms.reduceRight(function (subState, transformer) {\n return transformer.out(subState, key, rawState);\n }, deserialize(rawState[key]));\n });\n return state;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log(\"redux-persist/getStoredState: Error restoring data \".concat(serialized), err);\n throw err;\n }\n }\n });\n}\n\nfunction defaultDeserialize(serial) {\n return JSON.parse(serial);\n}","import { KEY_PREFIX } from './constants';\nexport default function purgeStoredState(config) {\n var storage = config.storage;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n return storage.removeItem(storageKey, warnIfRemoveError);\n}\n\nfunction warnIfRemoveError(err) {\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('redux-persist/purgeStoredState: Error purging data stored state', err);\n }\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { FLUSH, PAUSE, PERSIST, PURGE, REHYDRATE, DEFAULT_VERSION } from './constants';\nimport autoMergeLevel1 from './stateReconciler/autoMergeLevel1';\nimport createPersistoid from './createPersistoid';\nimport defaultGetStoredState from './getStoredState';\nimport purgeStoredState from './purgeStoredState';\nvar DEFAULT_TIMEOUT = 5000;\n/*\n @TODO add validation / handling for:\n - persisting a reducer which has nested _persist\n - handling actions that fire before reydrate is called\n*/\n\nexport default function persistReducer(config, baseReducer) {\n if (process.env.NODE_ENV !== 'production') {\n if (!config) throw new Error('config is required for persistReducer');\n if (!config.key) throw new Error('key is required in persistor config');\n if (!config.storage) throw new Error(\"redux-persist: config.storage is required. Try using one of the provided storage engines `import storage from 'redux-persist/lib/storage'`\");\n }\n\n var version = config.version !== undefined ? config.version : DEFAULT_VERSION;\n var debug = config.debug || false;\n var stateReconciler = config.stateReconciler === undefined ? autoMergeLevel1 : config.stateReconciler;\n var getStoredState = config.getStoredState || defaultGetStoredState;\n var timeout = config.timeout !== undefined ? config.timeout : DEFAULT_TIMEOUT;\n var _persistoid = null;\n var _purge = false;\n var _paused = true;\n\n var conditionalUpdate = function conditionalUpdate(state) {\n // update the persistoid only if we are rehydrated and not paused\n state._persist.rehydrated && _persistoid && !_paused && _persistoid.update(state);\n return state;\n };\n\n return function (state, action) {\n var _ref = state || {},\n _persist = _ref._persist,\n rest = _objectWithoutProperties(_ref, [\"_persist\"]); // $FlowIgnore need to update State type\n\n\n var restState = rest;\n\n if (action.type === PERSIST) {\n var _sealed = false;\n\n var _rehydrate = function _rehydrate(payload, err) {\n // dev warning if we are already sealed\n if (process.env.NODE_ENV !== 'production' && _sealed) console.error(\"redux-persist: rehydrate for \\\"\".concat(config.key, \"\\\" called after timeout.\"), payload, err); // only rehydrate if we are not already sealed\n\n if (!_sealed) {\n action.rehydrate(config.key, payload, err);\n _sealed = true;\n }\n };\n\n timeout && setTimeout(function () {\n !_sealed && _rehydrate(undefined, new Error(\"redux-persist: persist timed out for persist key \\\"\".concat(config.key, \"\\\"\")));\n }, timeout); // @NOTE PERSIST resumes if paused.\n\n _paused = false; // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set\n\n if (!_persistoid) _persistoid = createPersistoid(config); // @NOTE PERSIST can be called multiple times, noop after the first\n\n if (_persist) {\n // We still need to call the base reducer because there might be nested\n // uses of persistReducer which need to be aware of the PERSIST action\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n }\n\n if (typeof action.rehydrate !== 'function' || typeof action.register !== 'function') throw new Error('redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.');\n action.register(config.key);\n getStoredState(config).then(function (restoredState) {\n var migrate = config.migrate || function (s, v) {\n return Promise.resolve(s);\n };\n\n migrate(restoredState, version).then(function (migratedState) {\n _rehydrate(migratedState);\n }, function (migrateErr) {\n if (process.env.NODE_ENV !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);\n\n _rehydrate(undefined, migrateErr);\n });\n }, function (err) {\n _rehydrate(undefined, err);\n });\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: {\n version: version,\n rehydrated: false\n }\n });\n } else if (action.type === PURGE) {\n _purge = true;\n action.result(purgeStoredState(config));\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === FLUSH) {\n action.result(_persistoid && _persistoid.flush());\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === PAUSE) {\n _paused = true;\n } else if (action.type === REHYDRATE) {\n // noop on restState if purging\n if (_purge) return _objectSpread({}, restState, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n }) // @NOTE if key does not match, will continue to default else below\n\n });\n\n if (action.key === config.key) {\n var reducedState = baseReducer(restState, action);\n var inboundState = action.payload; // only reconcile state if stateReconciler and inboundState are both defined\n\n var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;\n\n var _newState = _objectSpread({}, reconciledRest, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n })\n });\n\n return conditionalUpdate(_newState);\n }\n } // if we have not already handled PERSIST, straight passthrough\n\n\n if (!_persist) return baseReducer(state, action); // run base reducer:\n // is state modified ? return original : return updated\n\n var newState = baseReducer(restState, action);\n if (newState === restState) return state;\n return conditionalUpdate(_objectSpread({}, newState, {\n _persist: _persist\n }));\n };\n}","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n autoMergeLevel2: \n - merges 2 level of substate\n - skips substate if already modified\n - this is essentially redux-perist v4 behavior\n*/\nexport default function autoMergeLevel2(inboundState, originalState, reducedState, _ref) {\n var debug = _ref.debug;\n\n var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n if (inboundState && _typeof(inboundState) === 'object') {\n Object.keys(inboundState).forEach(function (key) {\n // ignore _persist data\n if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n if (originalState[key] !== reducedState[key]) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n return;\n }\n\n if (isPlainEnoughObject(reducedState[key])) {\n // if object is plain enough shallow merge the new values (hence \"Level2\")\n newState[key] = _objectSpread({}, newState[key], {}, inboundState[key]);\n return;\n } // otherwise hard set\n\n\n newState[key] = inboundState[key];\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n return newState;\n}\n\nfunction isPlainEnoughObject(o) {\n return o !== null && !Array.isArray(o) && _typeof(o) === 'object';\n}","import { combineReducers } from 'redux';\nimport persistReducer from './persistReducer';\nimport autoMergeLevel2 from './stateReconciler/autoMergeLevel2';\n// combineReducers + persistReducer with stateReconciler defaulted to autoMergeLevel2\nexport default function persistCombineReducers(config, reducers) {\n config.stateReconciler = config.stateReconciler === undefined ? autoMergeLevel2 : config.stateReconciler;\n return persistReducer(config, combineReducers(reducers));\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { createStore } from 'redux';\nimport { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE } from './constants';\nvar initialState = {\n registry: [],\n bootstrapped: false\n};\n\nvar persistorReducer = function persistorReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case REGISTER:\n return _objectSpread({}, state, {\n registry: [].concat(_toConsumableArray(state.registry), [action.key])\n });\n\n case REHYDRATE:\n var firstIndex = state.registry.indexOf(action.key);\n\n var registry = _toConsumableArray(state.registry);\n\n registry.splice(firstIndex, 1);\n return _objectSpread({}, state, {\n registry: registry,\n bootstrapped: registry.length === 0\n });\n\n default:\n return state;\n }\n};\n\nexport default function persistStore(store, options, cb) {\n // help catch incorrect usage of passing PersistConfig in as PersistorOptions\n if (process.env.NODE_ENV !== 'production') {\n var optionsToTest = options || {};\n var bannedKeys = ['blacklist', 'whitelist', 'transforms', 'storage', 'keyPrefix', 'migrate'];\n bannedKeys.forEach(function (k) {\n if (!!optionsToTest[k]) console.error(\"redux-persist: invalid option passed to persistStore: \\\"\".concat(k, \"\\\". You may be incorrectly passing persistConfig into persistStore, whereas it should be passed into persistReducer.\"));\n });\n }\n\n var boostrappedCb = cb || false;\n\n var _pStore = createStore(persistorReducer, initialState, options && options.enhancer ? options.enhancer : undefined);\n\n var register = function register(key) {\n _pStore.dispatch({\n type: REGISTER,\n key: key\n });\n };\n\n var rehydrate = function rehydrate(key, payload, err) {\n var rehydrateAction = {\n type: REHYDRATE,\n payload: payload,\n err: err,\n key: key // dispatch to `store` to rehydrate and `persistor` to track result\n\n };\n store.dispatch(rehydrateAction);\n\n _pStore.dispatch(rehydrateAction);\n\n if (boostrappedCb && persistor.getState().bootstrapped) {\n boostrappedCb();\n boostrappedCb = false;\n }\n };\n\n var persistor = _objectSpread({}, _pStore, {\n purge: function purge() {\n var results = [];\n store.dispatch({\n type: PURGE,\n result: function result(purgeResult) {\n results.push(purgeResult);\n }\n });\n return Promise.all(results);\n },\n flush: function flush() {\n var results = [];\n store.dispatch({\n type: FLUSH,\n result: function result(flushResult) {\n results.push(flushResult);\n }\n });\n return Promise.all(results);\n },\n pause: function pause() {\n store.dispatch({\n type: PAUSE\n });\n },\n persist: function persist() {\n store.dispatch({\n type: PERSIST,\n register: register,\n rehydrate: rehydrate\n });\n }\n });\n\n if (!(options && options.manualPersist)) {\n persistor.persist();\n }\n\n return persistor;\n}","import { DEFAULT_VERSION } from './constants';\nexport default function createMigrate(migrations, config) {\n var _ref = config || {},\n debug = _ref.debug;\n\n return function (state, currentVersion) {\n if (!state) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: no inbound state, skipping migration');\n return Promise.resolve(undefined);\n }\n\n var inboundVersion = state._persist && state._persist.version !== undefined ? state._persist.version : DEFAULT_VERSION;\n\n if (inboundVersion === currentVersion) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: versions match, noop migration');\n return Promise.resolve(state);\n }\n\n if (inboundVersion > currentVersion) {\n if (process.env.NODE_ENV !== 'production') console.error('redux-persist: downgrading version is not supported');\n return Promise.resolve(state);\n }\n\n var migrationKeys = Object.keys(migrations).map(function (ver) {\n return parseInt(ver);\n }).filter(function (key) {\n return currentVersion >= key && key > inboundVersion;\n }).sort(function (a, b) {\n return a - b;\n });\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: migrationKeys', migrationKeys);\n\n try {\n var migratedState = migrationKeys.reduce(function (state, versionKey) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: running migration for versionKey', versionKey);\n return migrations[versionKey](state);\n }, state);\n return Promise.resolve(migratedState);\n } catch (err) {\n return Promise.reject(err);\n }\n };\n}","export default function createTransform( // @NOTE inbound: transform state coming from redux on its way to being serialized and stored\ninbound, // @NOTE outbound: transform state coming from storage, on its way to be rehydrated into redux\noutbound) {\n var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var whitelist = config.whitelist || null;\n var blacklist = config.blacklist || null;\n\n function whitelistBlacklistCheck(key) {\n if (whitelist && whitelist.indexOf(key) === -1) return true;\n if (blacklist && blacklist.indexOf(key) !== -1) return true;\n return false;\n }\n\n return {\n in: function _in(state, key, fullState) {\n return !whitelistBlacklistCheck(key) && inbound ? inbound(state, key, fullState) : state;\n },\n out: function out(state, key, fullState) {\n return !whitelistBlacklistCheck(key) && outbound ? outbound(state, key, fullState) : state;\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = autoMergeLevel2;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n autoMergeLevel2: \n - merges 2 level of substate\n - skips substate if already modified\n - this is essentially redux-perist v4 behavior\n*/\nfunction autoMergeLevel2(inboundState, originalState, reducedState, _ref) {\n var debug = _ref.debug;\n\n var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n if (inboundState && _typeof(inboundState) === 'object') {\n Object.keys(inboundState).forEach(function (key) {\n // ignore _persist data\n if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n if (originalState[key] !== reducedState[key]) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n return;\n }\n\n if (isPlainEnoughObject(reducedState[key])) {\n // if object is plain enough shallow merge the new values (hence \"Level2\")\n newState[key] = _objectSpread({}, newState[key], {}, inboundState[key]);\n return;\n } // otherwise hard set\n\n\n newState[key] = inboundState[key];\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n return newState;\n}\n\nfunction isPlainEnoughObject(o) {\n return o !== null && !Array.isArray(o) && _typeof(o) === 'object';\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = createWebStorage;\n\nvar _getStorage = _interopRequireDefault(require(\"./getStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createWebStorage(type) {\n var storage = (0, _getStorage.default)(type);\n return {\n getItem: function getItem(key) {\n return new Promise(function (resolve, reject) {\n resolve(storage.getItem(key));\n });\n },\n setItem: function setItem(key, item) {\n return new Promise(function (resolve, reject) {\n resolve(storage.setItem(key, item));\n });\n },\n removeItem: function removeItem(key) {\n return new Promise(function (resolve, reject) {\n resolve(storage.removeItem(key));\n });\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = getStorage;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction noop() {}\n\nvar noopStorage = {\n getItem: noop,\n setItem: noop,\n removeItem: noop\n};\n\nfunction hasStorage(storageType) {\n if ((typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) !== 'object' || !(storageType in self)) {\n return false;\n }\n\n try {\n var storage = self[storageType];\n var testKey = \"redux-persist \".concat(storageType, \" test\");\n storage.setItem(testKey, 'test');\n storage.getItem(testKey);\n storage.removeItem(testKey);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') console.warn(\"redux-persist \".concat(storageType, \" test failed, persistence will be disabled.\"));\n return false;\n }\n\n return true;\n}\n\nfunction getStorage(type) {\n var storageType = \"\".concat(type, \"Storage\");\n if (hasStorage(storageType)) return self[storageType];else {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\"redux-persist failed to create sync storage. falling back to noop storage.\");\n }\n\n return noopStorage;\n }\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _createWebStorage = _interopRequireDefault(require(\"./createWebStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = (0, _createWebStorage.default)('local');\n\nexports.default = _default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.initMessageListener = exports.initStateWithPrevTab = exports.withReduxStateSync = exports.createReduxStateSync = exports.createStateSyncMiddleware = exports.WINDOW_STATE_SYNC_ID = exports.INIT_MESSAGE_LISTENER = exports.RECEIVE_INIT_STATE = exports.SEND_INIT_STATE = exports.GET_INIT_STATE = undefined;\nexports.generateUuidForAction = generateUuidForAction;\nexports.isActionAllowed = isActionAllowed;\nexports.isActionSynced = isActionSynced;\nexports.MessageListener = MessageListener;\n\nvar _broadcastChannel = require('broadcast-channel');\n\nvar lastUuid = 0;\nvar GET_INIT_STATE = exports.GET_INIT_STATE = '&_GET_INIT_STATE';\nvar SEND_INIT_STATE = exports.SEND_INIT_STATE = '&_SEND_INIT_STATE';\nvar RECEIVE_INIT_STATE = exports.RECEIVE_INIT_STATE = '&_RECEIVE_INIT_STATE';\nvar INIT_MESSAGE_LISTENER = exports.INIT_MESSAGE_LISTENER = '&_INIT_MESSAGE_LISTENER';\n\nvar defaultConfig = {\n channel: 'redux_state_sync',\n predicate: null,\n blacklist: [],\n whitelist: [],\n broadcastChannelOption: undefined,\n prepareState: function prepareState(state) {\n return state;\n },\n receiveState: function receiveState(prevState, nextState) {\n return nextState;\n }\n};\n\nvar getIniteState = function getIniteState() {\n return { type: GET_INIT_STATE };\n};\nvar sendIniteState = function sendIniteState() {\n return { type: SEND_INIT_STATE };\n};\nvar receiveIniteState = function receiveIniteState(state) {\n return { type: RECEIVE_INIT_STATE, payload: state };\n};\nvar initListener = function initListener() {\n return { type: INIT_MESSAGE_LISTENER };\n};\n\nfunction s4() {\n return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);\n}\n\nfunction guid() {\n return '' + s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n}\n\n// generate current window unique id\nvar WINDOW_STATE_SYNC_ID = exports.WINDOW_STATE_SYNC_ID = guid();\n// export for test\nfunction generateUuidForAction(action) {\n var stampedAction = action;\n stampedAction.$uuid = guid();\n stampedAction.$wuid = WINDOW_STATE_SYNC_ID;\n return stampedAction;\n}\n// export for test\nfunction isActionAllowed(_ref) {\n var predicate = _ref.predicate,\n blacklist = _ref.blacklist,\n whitelist = _ref.whitelist;\n\n var allowed = function allowed() {\n return true;\n };\n\n if (predicate && typeof predicate === 'function') {\n allowed = predicate;\n } else if (Array.isArray(blacklist)) {\n allowed = function allowed(action) {\n return blacklist.indexOf(action.type) < 0;\n };\n } else if (Array.isArray(whitelist)) {\n allowed = function allowed(action) {\n return whitelist.indexOf(action.type) >= 0;\n };\n }\n return allowed;\n}\n// export for test\nfunction isActionSynced(action) {\n return !!action.$isSync;\n}\n// export for test\nfunction MessageListener(_ref2) {\n var channel = _ref2.channel,\n dispatch = _ref2.dispatch,\n allowed = _ref2.allowed;\n\n var isSynced = false;\n var tabs = {};\n this.handleOnMessage = function (stampedAction) {\n // Ignore if this action is triggered by this window\n if (stampedAction.$wuid === WINDOW_STATE_SYNC_ID) {\n return;\n }\n // IE bug https://stackoverflow.com/questions/18265556/why-does-internet-explorer-fire-the-window-storage-event-on-the-window-that-st\n if (stampedAction.type === RECEIVE_INIT_STATE) {\n return;\n }\n // ignore other values that saved to localstorage.\n if (stampedAction.$uuid && stampedAction.$uuid !== lastUuid) {\n if (stampedAction.type === GET_INIT_STATE && !tabs[stampedAction.$wuid]) {\n tabs[stampedAction.$wuid] = true;\n dispatch(sendIniteState());\n } else if (stampedAction.type === SEND_INIT_STATE && !tabs[stampedAction.$wuid]) {\n if (!isSynced) {\n isSynced = true;\n dispatch(receiveIniteState(stampedAction.payload));\n }\n } else if (allowed(stampedAction)) {\n lastUuid = stampedAction.$uuid;\n dispatch(Object.assign(stampedAction, {\n $isSync: true\n }));\n }\n }\n };\n this.messageChannel = channel;\n this.messageChannel.onmessage = this.handleOnMessage;\n}\n\nvar createStateSyncMiddleware = exports.createStateSyncMiddleware = function createStateSyncMiddleware() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultConfig;\n\n var allowed = isActionAllowed(config);\n var channel = new _broadcastChannel.BroadcastChannel(config.channel, config.broadcastChannelOption);\n var prepareState = config.prepareState || defaultConfig.prepareState;\n var messageListener = null;\n\n return function (_ref3) {\n var getState = _ref3.getState,\n dispatch = _ref3.dispatch;\n return function (next) {\n return function (action) {\n // create message receiver\n if (!messageListener) {\n messageListener = new MessageListener({ channel: channel, dispatch: dispatch, allowed: allowed });\n }\n // post messages\n if (action && !action.$uuid) {\n var stampedAction = generateUuidForAction(action);\n lastUuid = stampedAction.$uuid;\n try {\n if (action.type === SEND_INIT_STATE) {\n if (getState()) {\n stampedAction.payload = prepareState(getState());\n channel.postMessage(stampedAction);\n }\n return next(action);\n }\n if (allowed(stampedAction) || action.type === GET_INIT_STATE) {\n channel.postMessage(stampedAction);\n }\n } catch (e) {\n console.error(\"Your browser doesn't support cross tab communication\");\n }\n }\n return next(Object.assign(action, {\n $isSync: typeof action.$isSync === 'undefined' ? false : action.$isSync\n }));\n };\n };\n };\n};\n\n// eslint-disable-next-line max-len\nvar createReduxStateSync = exports.createReduxStateSync = function createReduxStateSync(appReducer) {\n var receiveState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultConfig.receiveState;\n return function (state, action) {\n var initState = state;\n if (action.type === RECEIVE_INIT_STATE) {\n initState = receiveState(state, action.payload);\n }\n return appReducer(initState, action);\n };\n};\n\n// init state with other tab's state\nvar withReduxStateSync = exports.withReduxStateSync = createReduxStateSync;\n\nvar initStateWithPrevTab = exports.initStateWithPrevTab = function initStateWithPrevTab(_ref4) {\n var dispatch = _ref4.dispatch;\n\n dispatch(getIniteState());\n};\n\n/*\nif don't dispath any action, the store.dispath will not be available for message listener.\ntherefor need to trigger an empty action to init the messageListener.\n\nhowever, if already using initStateWithPrevTab, this function will be redundant\n*/\nvar initMessageListener = exports.initMessageListener = function initMessageListener(_ref5) {\n var dispatch = _ref5.dispatch;\n\n dispatch(initListener());\n};","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","// Cache implementation based on Erik Rasmussen's `lru-memoize`:\n// https://github.com/erikras/lru-memoize\nvar NOT_FOUND = 'NOT_FOUND';\n\nfunction createSingletonCache(equals) {\n var entry;\n return {\n get: function get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n\n return NOT_FOUND;\n },\n put: function put(key, value) {\n entry = {\n key: key,\n value: value\n };\n },\n getEntries: function getEntries() {\n return entry ? [entry] : [];\n },\n clear: function clear() {\n entry = undefined;\n }\n };\n}\n\nfunction createLruCache(maxSize, equals) {\n var entries = [];\n\n function get(key) {\n var cacheIndex = entries.findIndex(function (entry) {\n return equals(key, entry.key);\n }); // We found a cached entry\n\n if (cacheIndex > -1) {\n var entry = entries[cacheIndex]; // Cached entry not at top of cache, move it to the top\n\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n\n return entry.value;\n } // No entry found in cache, return sentinel\n\n\n return NOT_FOUND;\n }\n\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n // TODO Is unshift slow?\n entries.unshift({\n key: key,\n value: value\n });\n\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n\n function getEntries() {\n return entries;\n }\n\n function clear() {\n entries = [];\n }\n\n return {\n get: get,\n put: put,\n getEntries: getEntries,\n clear: clear\n };\n}\n\nexport var defaultEqualityCheck = function defaultEqualityCheck(a, b) {\n return a === b;\n};\nexport function createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n } // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n\n\n var length = prev.length;\n\n for (var i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n };\n}\n// defaultMemoize now supports a configurable cache size with LRU behavior,\n// and optional comparison of the result value with existing values\nexport function defaultMemoize(func, equalityCheckOrOptions) {\n var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : {\n equalityCheck: equalityCheckOrOptions\n };\n var _providedOptions$equa = providedOptions.equalityCheck,\n equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa,\n _providedOptions$maxS = providedOptions.maxSize,\n maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS,\n resultEqualityCheck = providedOptions.resultEqualityCheck;\n var comparator = createCacheKeyComparator(equalityCheck);\n var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); // we reference arguments instead of spreading them for performance reasons\n\n function memoized() {\n var value = cache.get(arguments);\n\n if (value === NOT_FOUND) {\n // @ts-ignore\n value = func.apply(null, arguments);\n\n if (resultEqualityCheck) {\n var entries = cache.getEntries();\n var matchingEntry = entries.find(function (entry) {\n return resultEqualityCheck(entry.value, value);\n });\n\n if (matchingEntry) {\n value = matchingEntry.value;\n }\n }\n\n cache.put(arguments, value);\n }\n\n return value;\n }\n\n memoized.clearCache = function () {\n return cache.clear();\n };\n\n return memoized;\n}","import { defaultMemoize, defaultEqualityCheck } from './defaultMemoize';\nexport { defaultMemoize, defaultEqualityCheck };\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep === 'function' ? \"function \" + (dep.name || 'unnamed') + \"()\" : typeof dep;\n }).join(', ');\n throw new Error(\"createSelector expects all input-selectors to be functions, but received the following types: [\" + dependencyTypes + \"]\");\n }\n\n return dependencies;\n}\n\nexport function createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptionsFromArgs[_key - 1] = arguments[_key];\n }\n\n var createSelector = function createSelector() {\n for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var _recomputations = 0;\n\n var _lastResult; // Due to the intricacies of rest params, we can't do an optional arg after `...funcs`.\n // So, start by declaring the default value here.\n // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\n\n\n var directlyPassedOptions = {\n memoizeOptions: undefined\n }; // Normally, the result func or \"output selector\" is the last arg\n\n var resultFunc = funcs.pop(); // If the result func is actually an _object_, assume it's our options object\n\n if (typeof resultFunc === 'object') {\n directlyPassedOptions = resultFunc; // and pop the real result func off\n\n resultFunc = funcs.pop();\n }\n\n if (typeof resultFunc !== 'function') {\n throw new Error(\"createSelector expects an output function after the inputs, but received: [\" + typeof resultFunc + \"]\");\n } // Determine which set of options we're using. Prefer options passed directly,\n // but fall back to options given to createSelectorCreator.\n\n\n var _directlyPassedOption = directlyPassedOptions,\n _directlyPassedOption2 = _directlyPassedOption.memoizeOptions,\n memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\n // is an array. In most libs I've looked at, it's an equality function or options object.\n // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\n // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\n // we wrap it in an array so we can apply it.\n\n var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];\n var dependencies = getDependencies(funcs);\n var memoizedResultFunc = memoize.apply(void 0, [function recomputationWrapper() {\n _recomputations++; // apply arguments instead of spreading for performance.\n\n return resultFunc.apply(null, arguments);\n }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n\n var selector = memoize(function dependenciesChecker() {\n var params = [];\n var length = dependencies.length;\n\n for (var i = 0; i < length; i++) {\n // apply arguments instead of spreading and mutate a local list of params for performance.\n // @ts-ignore\n params.push(dependencies[i].apply(null, arguments));\n } // apply arguments instead of spreading for performance.\n\n\n _lastResult = memoizedResultFunc.apply(null, params);\n return _lastResult;\n });\n Object.assign(selector, {\n resultFunc: resultFunc,\n memoizedResultFunc: memoizedResultFunc,\n dependencies: dependencies,\n lastResult: function lastResult() {\n return _lastResult;\n },\n recomputations: function recomputations() {\n return _recomputations;\n },\n resetRecomputations: function resetRecomputations() {\n return _recomputations = 0;\n }\n });\n return selector;\n }; // @ts-ignore\n\n\n return createSelector;\n}\nexport var createSelector = /* #__PURE__ */createSelectorCreator(defaultMemoize);\n// Manual definition of state and output arguments\nexport var createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) {\n if (selectorCreator === void 0) {\n selectorCreator = createSelector;\n }\n\n if (typeof selectors !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + (\"where each property is a selector, instead received a \" + typeof selectors));\n }\n\n var objectKeys = Object.keys(selectors);\n var resultSelector = selectorCreator( // @ts-ignore\n objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n values[_key3] = arguments[_key3];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\n });\n return resultSelector;\n};","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/* global WorkerGlobalScope */\nfunction add(fn) {\n if (typeof WorkerGlobalScope === 'function' && self instanceof WorkerGlobalScope) {// this is run inside of a webworker\n } else {\n /**\n * if we are on react-native, there is no window.addEventListener\n * @link https://github.com/pubkey/unload/issues/6\n */\n if (typeof window.addEventListener !== 'function') return;\n /**\n * for normal browser-windows, we use the beforeunload-event\n */\n\n window.addEventListener('beforeunload', function () {\n fn();\n }, true);\n /**\n * for iframes, we have to use the unload-event\n * @link https://stackoverflow.com/q/47533670/3443137\n */\n\n window.addEventListener('unload', function () {\n fn();\n }, true);\n }\n /**\n * TODO add fallback for safari-mobile\n * @link https://stackoverflow.com/a/26193516/3443137\n */\n\n}\n\nexport default {\n add: add\n};","import isNode from 'detect-node';\nimport BrowserMethod from './browser.js';\nimport NodeMethod from './node.js';\nvar USE_METHOD = isNode ? NodeMethod : BrowserMethod;\nvar LISTENERS = new Set();\nvar startedListening = false;\n\nfunction startListening() {\n if (startedListening) return;\n startedListening = true;\n USE_METHOD.add(runAll);\n}\n\nexport function add(fn) {\n startListening();\n if (typeof fn !== 'function') throw new Error('Listener is no function');\n LISTENERS.add(fn);\n var addReturn = {\n remove: function remove() {\n return LISTENERS[\"delete\"](fn);\n },\n run: function run() {\n LISTENERS[\"delete\"](fn);\n return fn();\n }\n };\n return addReturn;\n}\nexport function runAll() {\n var promises = [];\n LISTENERS.forEach(function (fn) {\n promises.push(fn());\n LISTENERS[\"delete\"](fn);\n });\n return Promise.all(promises);\n}\nexport function removeAll() {\n LISTENERS.clear();\n}\nexport function getSize() {\n return LISTENERS.size;\n}\nexport default {\n add: add,\n runAll: runAll,\n removeAll: removeAll,\n getSize: getSize\n};","module.exports = window[\"jQuery\"];","module.exports = require(\"core-js/library/fn/array/is-array\");","module.exports = require(\"core-js/library/fn/object/assign\");","module.exports = require(\"core-js/library/fn/object/define-properties\");","module.exports = require(\"core-js/library/fn/object/define-property\");","module.exports = require(\"core-js/library/fn/object/get-own-property-descriptor\");","module.exports = require(\"core-js/library/fn/object/get-own-property-descriptors\");","module.exports = require(\"core-js/library/fn/object/get-own-property-symbols\");","module.exports = require(\"core-js/library/fn/object/keys\");","module.exports = require(\"core-js/library/fn/parse-float\");","module.exports = require(\"core-js/library/fn/parse-int\");","module.exports = require(\"core-js/library/fn/symbol\");","module.exports = require(\"core-js/library/fn/symbol/iterator\");","module.exports = require(\"core-js/library/fn/symbol/to-primitive\");","function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?n.add(t):n[r]=t}function c(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,r){return d(r,!0)}),!0)),n}function h(){n(2)}function y(n){return null==n||\"object\"!=typeof n||Object.isFrozen(n)}function b(r){var t=tn[r];return t||n(18,r),t}function m(n,r){tn[n]||(tn[n]=r)}function _(){return\"production\"===process.env.NODE_ENV||U||n(0),U}function j(n,r){r&&(b(\"Patches\"),n.u=[],n.s=[],n.v=r)}function g(n){O(n),n.p.forEach(S),n.p=null}function O(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.g=!0}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.O||b(\"ES5\").S(e,r,o),o?(i[Q].P&&(g(e),n(4)),t(r)&&(r=M(e,r),e.l||x(e,r)),e.u&&b(\"Patches\").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),g(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o,u=o,a=!1;3===e.i&&(u=new Set(o),o.clear(),a=!0),i(u,(function(r,i){return A(n,e,o,r,i,t,a)})),x(n,o,!1),t&&n.u&&b(\"Patches\").N(e,t,n.u,n.s)}return e.o}function A(e,i,o,a,c,s,v){if(\"production\"!==process.env.NODE_ENV&&c===o&&n(5),r(c)){var p=M(e,c,s&&i&&3!==i.i&&!u(i.R,a)?s.concat(a):void 0);if(f(o,a,p),!r(p))return;e.m=!1}else v&&o.add(c);if(t(c)&&!y(c)){if(!e.h.D&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,r,t){void 0===t&&(t=!1),!n.l&&n.h.D&&n.m&&d(r,t)}function z(n,r){var t=n[Q];return(t?p(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function N(n,r,t){var e=s(r)?b(\"MapSet\").F(r,t):v(r)?b(\"MapSet\").T(r,t):n.O?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,R:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b(\"ES5\").J(r,t);return(t?t.A:_()).p.push(e),e}function R(e){return r(e)||n(22,e),function n(r){if(!t(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b(\"ES5\").K(u)))return u.t;u.I=!0,e=D(r,c),u.I=!1}else e=D(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f(e,r,n(t))})),3===c?new Set(e):e}(e)}function D(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function F(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return\"production\"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];\"production\"!==process.env.NODE_ENV&&f(t),en.set(t,n,r)}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k(t);break;case 4:o(t)&&k(t)}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u(r,o))return!0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return!0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return!0;for(var e=0;e1?t-1:0),o=1;o1?t-1:0),o=1;o=0;e--){var i=t[e];if(0===i.path.length&&\"replace\"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b(\"Patches\").$;return r(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);export default fn;export{un as Immer,pn as applyPatches,K as castDraft,$ as castImmutable,ln as createDraft,R as current,J as enableAllPlugins,F as enableES5,C as enableMapSet,T as enablePatches,dn as finishDraft,d as freeze,L as immerable,r as isDraft,t as isDraftable,H as nothing,e as original,fn as produce,cn as produceWithPatches,sn as setAutoFreeze,vn as setUseProxies};\n//# sourceMappingURL=immer.esm.js.map\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n 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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t64: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkpcloud_site\"] = self[\"webpackChunkpcloud_site\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [0], () => (__webpack_require__(2890)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","obj","_attachList","n","hasOwnProperty","k","length","list","indexOf","attach","removeHrefSearch","params","forceRefresh","location","search","finalURL","currentQueriesArr","substring","split","currentQueriesMap","finalQueriesArr","i","shift","pop","_Object$keys","push","origin","pathname","join","window","history","pushState","addHrefSearch","newLocationUrl","finalQueriesMap","oldQueriesArr","oldQueriesMap","givenQueriesMap","_Object$assign","href","state","page","saveToSessionstorage","label","value","Storage","sessionStorage","setcookie","setItem","signToCurrency","currencyMap","obLength","key","size","getDisabledPlanReason","_ref","_ref$user","user","forPlan","forPeriod","downgradeAllowed","add500GBAllowed","trafficCount","canAddStorage","_ref$maxCustomStorage","maxCustomStorageCount","MAX_CUSTOM_STORAGE_COUNT","_ref$maxFamilyStorage","maxFamilyStorageCount","MAX_FAMILY_STORAGE_COUNT","islifetime","isfreetrialactive","passplan","passFamily","business","lastsubscription","cryptolifetime","plan","premium","premiumlifetime","premiumexpires","cryptosubscription","efh","planparams","additionaltraffic","additionaltrafficlifetime","family","passmanagerdata","isfreetrialused","usepassmanagertrial","hasUserInfo","hasStorageSubscription","hasCryptoSubscription","hasSubscriptionPeriod","isCanceled","status","incStorage","period","isCustomPlanId","ADD_STORAGE_1COUNT_PLAN_ID","ADD_STORAGE_4COUNT_PLAN_ID","ADD_STORAGE_8COUNT_PLAN_ID","ADD_STORAGE_12COUNT_PLAN_ID","ADD_STORAGE_20COUNT_PLAN_ID","CUSTOM_20COUNT_PLAN_ID","isFamilyPlanId","FAMILY_ADD_1COUNT_PLAN_ID","FAMILY_ADD_2COUNT_PLAN_ID","FAMILY_ADD_5COUNT_PLAN_ID","FAMILY_CUSTOM_2COUNT_PLAN_ID","FAMILY_CUSTOM_5COUNT_PLAN_ID","parts","Number","products","EFH_PLAN_ID","ADDITIONAL_TRAFFIC_ID","CRYPTO_PLAN_ID","CUSTOM4TB_PLAN_ID","FAMILY2TB_PLAN_ID","FAMILY_CUSTOM_PLAN_ID","billingprovider","PASS_PREMIUM_PLAN_ID","planid","activePlanId","activePlanPeriod","PASS_FAMILY_PLAN_ID","owner","PREMIUM_PLAN_ID","PREMIUM_PLUS_PLAN_ID","storage","CUSTOM_PLAN_ID","now","Date","expires","preventEnteringNumbers","event","which","keyCode","charCode","pressedCharacter","String","fromCharCode","test","preventDefault","findCardType","cardNumber","name","range","valid_length","find","cardTemplate","some","rangeLength","slice","getExpiryDatePeriod","expiryDate","periods","month","year","validateExpiryDate","currentYear","getFullYear","currentMonth","getMonth","getDeviceID","localStorage","getItem","rcookie","removeItem","getCurrency","_ref2","auth","_ref2$callback","callback","getCurrencyTries","onSuccess","$","cookie","currency","getCurrencyApiCall","onError","setTimeout","pCloudGlobals","apiMethod","data","errorCallback","areArraysEqual","array1","array2","index1","e1","e2","_Array$isArray","compareArrays","formatMS","milliseconds","type","typeMap","_parseInt","divider","modulo","console","error","msToTime","duration","showHours","arguments","undefined","seconds","minutes","hours","cleanFloat","number","decimal","toFixed","browserVersion","userAgent","regex","match","detectBrowser","version","navigator","browser","brave","concat","_parseFloat","isValidEmailAddress","email","RegExp","apiCall","method","opts","dfd","jQuery","Deferred","_objectSpread","reject","resolve","promise","apiCallPost","detectIsMobile","appVersion","onMouseOut","e","target","tagName","toLowerCase","vpWidth","Math","max","document","documentElement","clientWidth","innerWidth","clientX","clientY","relatedTarget","toElement","isInternetExplorer","documentMode","scrollToTop","scrollTo","bytesToSize","bytes","sizes","floor","log","pow","setTitleByCodeUrl","codeUrl","setTitle","setRegisterTitle","setLoginTitle","__","replace","getMonthsFromCode","code","monthsCountIndex","indexPosition","isNaN","getLanguage","currentLang","countriesInEuropeList","_defineProperty","_countriesInEuropeLis","isCountryInEurope","countryCodeToNameMap","country","encodeQueryData","ret","d","encodeURIComponent","calculateDiscountPercent","price","oldPrice","convertDateToDDMMMYY","date","shortMonthName","dayMonthSeparator","monthYearSeparator","dateObj","day","getDate","monthKey","daysDiff","dateTo","dateFrom","dateFromObj","dateToObj","setHours","getTime","getTimezoneOffset","self","_move","utils","ptr","sha256","cjAffiliate","SHAgancy","twq","pintrk","lintrk","URL_PRODUCT","hrefSearch","setTracking","initialCall","forceTrack","saveCJCookie","r","t","f","Array","isArray","clsx","module","exports","die","args","Error","map","s","isDraft","DRAFT_STATE","isDraftable","proto","Object","getPrototypeOf","Ctor","call","constructor","Function","toString","objectCtorString","DRAFTABLE","_value$constructor","isMap","isSet","each","iter","enumerableOnly","getArchtype","keys","ownKeys","forEach","entry","index","thing","type_","has","prop","prototype","get","set","propOrOldValue","add","is","x","y","hasMap","Map","hasSet","Set","latest","copy_","base_","shallowCopy","base","descriptors","getOwnPropertyDescriptors","desc","writable","configurable","enumerable","create","freeze","deep","isFrozen","clear","delete","dontMutateFrozenCollections","getPlugin","pluginKey","plugin","plugins","loadPlugin","implementation","getCurrentScope","currentScope","usePatchesInScope","scope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer","immer_","canAutoFreeze_","unfinalizedDrafts_","draft","revoke_","revoked_","processResult","result","baseDraft","isReplaced","useProxies_","willFinalizeES5_","modified_","finalize","maybeFreeze","generateReplacementPatches_","NOTHING","rootScope","path","childValue","finalizeProperty","scope_","finalized_","draft_","resultEach","generatePatches_","parentState","targetObject","rootPath","targetIsSet","res","assigned_","autoFreeze_","peek","getDescriptorFromProto","source","getOwnPropertyDescriptor","markChanged","prepareCopy","createProxy","parent","proxyMap_","proxySet_","isManual_","traps","objectTraps","arrayTraps","Proxy","revocable","revoke","proxy","createES5Proxy_","current","currentImpl","copy","archType","hasChanges_","copyHelper","from","enableES5","proxyProperty","this","markChangesSweep","drafts","hasArrayChanges","hasObjectChanges","baseValue","baseIsDraft","descriptor","defineProperty","markChangesRecursively","object","min","enablePatches","deepClonePatchValue","entries","cloned","immerable","clonePatchValueIfNeeded","ADD","applyPatches_","patches","patch","op","parentType","p","splice","basePath","inversePatches","assignedValue","origValue","unshift","replacement","enableMapSet","__extends","b","extendStatics","prepareMapCopy","prepareSetCopy","assertUnrevoked","JSON","stringify","setPrototypeOf","__proto__","DraftMap","cb","thisArg","_value","_this","values","iterator","iteratorSymbol","_this2","next","done","_this3","DraftSet","hasSymbol","Symbol","hasProxies","Reflect","for","getOwnPropertySymbols","getOwnPropertyNames","_desc$get","currentState","deleteProperty","fn","apply","Immer","config","recipe","defaultBase","produce","hasError","Promise","then","ip","produceWithPatches","nextState","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","applyPatchesImpl","bind","ttl","timeMap","obliviousSet","olderThen","removeTooOldValues","KEY_PREFIX","FLUSH","REHYDRATE","PAUSE","PERSIST","PURGE","REGISTER","DEFAULT_VERSION","_typeof","symbols","filter","sym","autoMergeLevel1","inboundState","originalState","reducedState","debug","newState","defineProperties","createPersistoid","serialize","blacklist","whitelist","transforms","throttle","storageKey","keyPrefix","defaultSerialize","writeFailHandler","lastState","stagedState","keysToProcess","timeIterator","writePromise","processNextKey","clearInterval","endState","reduce","subState","transformer","in","err","catch","onWriteFail","passWhitelistBlacklist","update","setInterval","flush","deserialize","defaultDeserialize","serialized","rawState","reduceRight","out","serial","parse","purgeStoredState","warnIfRemoveError","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","DEFAULT_TIMEOUT","persistReducer","baseReducer","stateReconciler","getStoredState","timeout","_persistoid","_purge","_paused","conditionalUpdate","_persist","rehydrated","action","restState","_sealed","_rehydrate","payload","rehydrate","register","restoredState","migrate","v","migratedState","migrateErr","_newState","autoMergeLevel2","o","persistCombineReducers","reducers","combineReducers","_toConsumableArray","arr","arr2","_arrayWithoutHoles","_iterableToArray","TypeError","_nonIterableSpread","initialState","registry","bootstrapped","persistorReducer","firstIndex","persistStore","store","options","boostrappedCb","_pStore","createStore","enhancer","dispatch","rehydrateAction","persistor","getState","purge","results","purgeResult","all","flushResult","pause","persist","manualPersist","createMigrate","migrations","currentVersion","inboundVersion","migrationKeys","ver","parseInt","sort","a","versionKey","createTransform","inbound","outbound","whitelistBlacklistCheck","fullState","__esModule","_getStorage","default","item","noop","storageType","testKey","hasStorage","noopStorage","_default","initMessageListener","initStateWithPrevTab","withReduxStateSync","createReduxStateSync","createStateSyncMiddleware","WINDOW_STATE_SYNC_ID","INIT_MESSAGE_LISTENER","RECEIVE_INIT_STATE","SEND_INIT_STATE","GET_INIT_STATE","generateUuidForAction","isActionAllowed","isActionSynced","$isSync","MessageListener","_broadcastChannel","lastUuid","defaultConfig","channel","predicate","broadcastChannelOption","prepareState","receiveState","prevState","sendIniteState","receiveIniteState","s4","random","guid","stampedAction","$uuid","$wuid","allowed","isSynced","tabs","handleOnMessage","assign","messageChannel","onmessage","BroadcastChannel","messageListener","_ref3","postMessage","appReducer","initState","_ref4","_ref5","createThunkMiddleware","extraArgument","thunk","withExtraArgument","NOT_FOUND","defaultEqualityCheck","defaultMemoize","func","equalityCheckOrOptions","equals","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","maxSize","resultEqualityCheck","comparator","prev","createCacheKeyComparator","cache","put","getEntries","cacheIndex","findIndex","createLruCache","memoized","matchingEntry","clearCache","createSelectorCreator","memoize","_len","memoizeOptionsFromArgs","_key","_len2","funcs","_key2","_lastResult","_recomputations","directlyPassedOptions","memoizeOptions","resultFunc","_directlyPassedOption2","finalMemoizeOptions","dependencies","every","dep","dependencyTypes","getDependencies","memoizedResultFunc","selector","lastResult","recomputations","resetRecomputations","createSelector","objA","objB","compare","compareContext","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","WorkerGlobalScope","addEventListener","USE_METHOD","LISTENERS","startedListening","runAll","promises","remove","run","removeAll","getSize","Q","Z","L","nn","u","c","X","q","l","rn","h","tn","m","_","U","j","g","O","S","w","P","M","H","A","I","N","R","D","z","E","F","T","C","en","on","J","K","G","W","B","un","an","__assign","__spreadArray","to","pack","ar","SuppressedError","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","chunkIds","priority","notFulfilled","Infinity","fulfilled","getter","definition","globalThis","toStringTag","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","id","chunkLoadingGlobal","nc","__webpack_exports__"],"sourceRoot":""}