{"version":3,"file":"js/planspaymentwrapper.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/componentMount.js","webpack://pcloud-site/./src/lib/utils.js","webpack://pcloud-site/./src/lib/subscriptions.js","webpack://pcloud-site/./src/lib/diffs.js","webpack://pcloud-site/./src/lib/payments.js","webpack://pcloud-site/./src/components/PaymentComponents/SharedStyledComponents.js","webpack://pcloud-site/./src/components/PaymentComponents/CreditCardFormTemplate.js","webpack://pcloud-site/./src/components/PaymentComponents/PrefilledCreditCardForm.js","webpack://pcloud-site/./src/components/PaymentComponents/CreditCardBox.js","webpack://pcloud-site/./src/lib/hooks/SafeChargeInputsValidations.js","webpack://pcloud-site/./src/components/SpinContainer.js","webpack://pcloud-site/./src/svg/loading-icon.svg","webpack://pcloud-site/./src/components/PaymentComponents/PaypalTemplate.js","webpack://pcloud-site/./src/components/PaymentComponents/PaypalBox.js","webpack://pcloud-site/./src/svg/check-icon.svg","webpack://pcloud-site/./src/components/PricingPage/styles/Plans.js","webpack://pcloud-site/./src/components/PricingPage/styles/CryptoPlans.js","webpack://pcloud-site/./src/components/PricingPage/styles/StoragePlans.js","webpack://pcloud-site/./src/components/PricingPage/styles/StorageFamilyPlans.js","webpack://pcloud-site/./src/components/PricingPage/styles/TrafficPlans.js","webpack://pcloud-site/./src/components/PricingPage/styles/PassPlans.js","webpack://pcloud-site/./src/components/PricingPage/views/Style.js","webpack://pcloud-site/./src/svg/check-icon-v2.svg","webpack://pcloud-site/./src/components/PricingPage/styles/PlansTypeComponent.js","webpack://pcloud-site/./src/components/PlansBox/BoxHeader.js","webpack://pcloud-site/./src/components/CommonStyledComponents.js","webpack://pcloud-site/./src/components/PlansBox/BoxPrices.js","webpack://pcloud-site/./src/components/BusinessPageComponents/BoxPricesBusiness.js","webpack://pcloud-site/./src/svg/info-icon.svg","webpack://pcloud-site/./src/components/PlansBox/BoxFeature.js","webpack://pcloud-site/./src/components/PlansBox/BoxDiscount.js","webpack://pcloud-site/./src/components/PlansBox/BoxDisabled.js","webpack://pcloud-site/./src/components/PlansBox/PaymentOptions.js","webpack://pcloud-site/./src/components/Tabs.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/planBoxTemplates/PaymentViewBoxDefault.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/planBoxTemplates/Styles/PriceOnTheLeftStyles.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/planBoxTemplates/PaymentViewBoxPriceOnTheLeft.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/planBoxTemplates/Styles/PricesOnTheLseftStyles2.js","webpack://pcloud-site/./src/components/ToggleTabs.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/planBoxTemplates/PaymentViewBoxPriceOnTheLeft2.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/PaymentViewBox.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/planBoxTemplates/PlanBoxDefaultView.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/planBoxTemplates/PlanBoxPriceOnTheLeftView.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/planBoxTemplates/PlanBoxPriceOnTheLeft2View.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/PlanViewBox.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/planBoxTemplates/LoginViewBoxDefault.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/planBoxTemplates/LoginViewBoxPriceOnTheLeft.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/planBoxTemplates/LoginViewBoxPriceOnTheLeft2.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/LoginViewBox.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/planBoxTemplates/DisabledViewBoxDefault.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/planBoxTemplates/DisabledViewBoxPriceOnTheLeft.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/planBoxTemplates/DisabledViewBoxPriceOnTheLeft2.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/DisabledViewBox.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/common.style.js","webpack://pcloud-site/./src/svg/success-icon.svg","webpack://pcloud-site/./src/components/Animation/AnimationContainer.js","webpack://pcloud-site/./src/components/Animation/SwitchAnimation.js","webpack://pcloud-site/./src/components/PlansBox/BoxPricesInline.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/UpsellModalv1.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/UpsellModalv2.js","webpack://pcloud-site/./src/components/PaymentPlanBox/views/SuccessViewBox.js","webpack://pcloud-site/./new_site/images/p_promo/warning.svg","webpack://pcloud-site/./src/components/PaymentPlanBox/views/PaymentDisruptionViewBox.js","webpack://pcloud-site/./src/svg/error-icon.svg","webpack://pcloud-site/./src/components/PaymentPlanBox/PaymentPlanWrapper.js","webpack://pcloud-site/./src/exports/planspaymentwrapper.js","webpack://pcloud-site/./node_modules/clsx/dist/clsx.m.js","webpack://pcloud-site/./node_modules/detect-node/browser.js","webpack://pcloud-site/./node_modules/dom-helpers/esm/addClass.js","webpack://pcloud-site/./node_modules/dom-helpers/esm/hasClass.js","webpack://pcloud-site/./node_modules/dom-helpers/esm/removeClass.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/lodash/_Symbol.js","webpack://pcloud-site/./node_modules/lodash/_arrayMap.js","webpack://pcloud-site/./node_modules/lodash/_arrayPush.js","webpack://pcloud-site/./node_modules/lodash/_baseFlatten.js","webpack://pcloud-site/./node_modules/lodash/_baseGetTag.js","webpack://pcloud-site/./node_modules/lodash/_baseIsArguments.js","webpack://pcloud-site/./node_modules/lodash/_baseIsRegExp.js","webpack://pcloud-site/./node_modules/lodash/_baseToString.js","webpack://pcloud-site/./node_modules/lodash/_baseUnary.js","webpack://pcloud-site/./node_modules/lodash/_freeGlobal.js","webpack://pcloud-site/./node_modules/lodash/_getRawTag.js","webpack://pcloud-site/./node_modules/lodash/_isFlattenable.js","webpack://pcloud-site/./node_modules/lodash/_nodeUtil.js","webpack://pcloud-site/./node_modules/lodash/_objectToString.js","webpack://pcloud-site/./node_modules/lodash/_root.js","webpack://pcloud-site/./node_modules/lodash/escapeRegExp.js","webpack://pcloud-site/./node_modules/lodash/flatten.js","webpack://pcloud-site/./node_modules/lodash/isArguments.js","webpack://pcloud-site/./node_modules/lodash/isArray.js","webpack://pcloud-site/./node_modules/lodash/isObjectLike.js","webpack://pcloud-site/./node_modules/lodash/isRegExp.js","webpack://pcloud-site/./node_modules/lodash/isString.js","webpack://pcloud-site/./node_modules/lodash/isSymbol.js","webpack://pcloud-site/./node_modules/lodash/toString.js","webpack://pcloud-site/./node_modules/oblivious-set/src/index.ts","webpack://pcloud-site/./node_modules/react-simple-flipclock/build/index.js","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/from.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/date/now.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/json/stringify.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/create.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/get-prototype-of.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/keys.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.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/promise.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/classnames/index.js","webpack://pcloud-site/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://pcloud-site/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://pcloud-site/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","webpack://pcloud-site/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","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/node module decorator","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 * as React from \"react\";\nimport { createRoot } from 'react-dom/client';\n\nconst usedReactRoots = {};\n\nconst getExistingOrNewRoot = (element: HTMLElement) => {\n // Existing ID or create new unique ID.\n const reactRootId = element.dataset.reactRootId || Math.random().toString(16).slice(2);\n let root = usedReactRoots[reactRootId] || null;\n\n if (root === null) {\n // Save the generated new ID to the element to be reused if we change the props and call this again.\n element.dataset.reactRootId = reactRootId;\n root = createRoot(element);\n }\n\n // Cache the root.\n usedReactRoots[reactRootId] = root;\n\n return {reactRootId , root};\n}\n\nconst componentMount = (render: (props: {}) => React.Node) => (element: HTMLElement, props: {}) => {\n if (!element) {\n return null;\n }\n\n const {reactRootId, root} = getExistingOrNewRoot(element);\n root.render(render(props));\n\n return () => {\n root.unmount();\n delete usedReactRoots[reactRootId];\n };\n};\n\nexport function componentRender(element: HTMLElement, render: React.Element
) {\n const {reactRootId, root} = getExistingOrNewRoot(element);\n root.render(render);\n\n return () => {\n root.unmount();\n delete usedReactRoots[reactRootId];\n };\n}\n\nexport default componentMount;\n","//@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};","export function onDocumentReady(func: Function) {\n if (document.readyState == \"complete\") {\n func();\n } else {\n $(window).on(\"load\", func);\n }\n}\n\nlet onSentSubscribeRequestResolve = null;\nconst onSentSubscribeRequest = new Promise((resolve, reject) => onSentSubscribeRequestResolve = resolve); \n\nconst subscriptions = {\n xhr: null,\n chkint: null,\n resetTo: null,\n resetTimeoutMilisec: 10000,\n subscribers: [],\n onSentSubscribeRequestResolve: onSentSubscribeRequestResolve,\n onSentSubscribeRequest: onSentSubscribeRequest,\n\n add: function (subscriber, instance) {\n console.log(\"Adding new subscriber: \", subscriber, instance);\n this.remove(subscriber);\n this.checkInstanceInterface(instance);\n\n var subs = { name: subscriber, state: 'preparing', instance: instance };\n this.subscribers.push(subs);\n return this;\n },\n\n checkInstanceInterface: function (instance) {\n var requiredMethods = ['getParams', 'handleEvents'];\n requiredMethods.forEach(function (method) {\n if (typeof instance[method] !== 'function') {\n throw Error(\"Instance must provide method: \", method);\n }\n });\n },\n\n remove: function (subscriber) {\n console.log(\"removing subscriber\", subscriber);\n\n var subs = this.subscribers;\n this.subscribers = subs.filter(function (sub) { return sub.name !== subscriber; });\n\n if (this.subscribers.length === 0) {\n console.log(\"zero subscribers\");\n this.abort();\n }\n },\n\n setState: function (subscriber, state) {\n var subs = this._getSubscriber(subscriber);\n\n if (subs === undefined) {\n console.log(subscriber);\n //console.trace();\n }\n\n subs.state = state;\n\n this.listen();\n //setTimeout(this.listen.bind(this), 0);\n\n return this;\n },\n\n _getSubscriber: function (subscriber) {\n return this.subscribers.filter(function (sub) { return sub.name == subscriber; })[0];\n },\n\n _getReady: function () {\n return this.subscribers.filter(function (sub) { return sub.state == 'ready'; });\n },\n\n reset: function() {\n this.abort();\n this.subscribers = [];\n },\n\n stop: function () {\n this.abort();\n },\n\n resume: function () {\n this.listen();\n },\n\n listen: function () {\n var self = this;\n var params = {};\n var subscribefor = [];\n var subsrdy = this._getReady();\n\n if (this.isRunning()) {\n this.abort();\n }\n if (subsrdy.length == 0) {\n return;\n }\n\n // waiting all subscribers to get ready\n if (subsrdy.length != this.subscribers.length) {\n return;\n }\n\n subsrdy.forEach(function (sub) {\n subscribefor.push(sub.name);\n params = $.extend(params, sub.instance.getParams());\n });\n\n params.subscribefor = subscribefor.join(',');\n params._t = $.now;\n\n console.log(subsrdy);\n console.log(\"running\", params);\n\n onDocumentReady(() => {\n this.xhr = pCloudGlobals.apiMethod('subscribe', params, function (ret) {\n if (self.chkint) {\n clearInterval(self.chkint);\n }\n\n console.log(\"receiving update: \", ret);\n\n self.setState(ret.from, 'processing');\n var sub = self._getSubscriber(ret.from);\n if (sub) {\n sub.instance.handleEvents(ret);\n }\n\n if (self.restartTo) {\n clearTimeout(self.restartTo);\n self.restartTo = null;\n }\n if (!sub) {\n self.restartTo = setTimeout(self.listen.bind(self), 100);\n }\n }, {\n timeout: 0,\n errorCallback: function(ret) {\n console.log(\"Subscription API Error\", ret);\n\n self.abort();\n },\n onXhrError: function(xhr, status, error) {\n console.log('subscribe rejected: ', arguments, xhr.status);\n\n if (self.resetTo)\n clearTimeout(self.resetTo);\n\n self.resetTo = setTimeout(self.listen.bind(self), self.resetTimeoutMilisec);\n self.resetTimeoutMilisec += Math.round(10 / 100 * self.resetTimeoutMilisec);\n }\n });\n this.onSentSubscribeRequestResolve();\n this.setCheck();\n });\n },\n setCheck: function () {\n var self = this;\n\n if (this.chkint) {\n clearInterval(this.chkint);\n this.chkint = null;\n }\n\n this.chkint = setInterval(function () {\n var xhr = self.xhr;\n if (xhr && xhr.readyState > 0 && xhr.readyState < 4) {\n } else if (xhr) {\n console.log('subscriptions: ', xhr.readyState)\n self.listen();\n }\n }, 3000);\n },\n isRunning: function () {\n return (this.xhr && this.xhr.readyState > 0 && this.xhr.readyState < 4);\n },\n abort: function () {\n if (this.xhr && typeof this.xhr.abort == 'function') {\n console.log('Aborting xhr...');\n try {\n this.xhr.abort();\n } catch(e) {};\n this.xhr = null;\n console.log('Done aborting');\n }\n\n if (this.restartTo) { // this restarts the listen after successfull listen\n clearTimeout(this.restartTo);\n this.restartTo = null;\n }\n if (this.resetTo) { // this resets the listen after killed/aborted listen\n clearTimeout(this.resetTo);\n this.resetTo = null;\n }\n if (this.chkint) { // this checks diff from time to time using interval (mainly for waking apps)\n clearInterval(this.chkint);\n this.chkint = null;\n }\n }\n}\n\nexport default subscriptions;\n","import subscriptions from \"./subscriptions\";\n\nlet authToken = false;\nlet listeners = [];\nlet isRunning = false;\nlet lastDiffId = -1;\nlet xhr;\nlet diffIsReadyResolve = null;\nlet diffIsReadyReject = null;\nconst setDiffIsReady = () => new Promise((resolve, reject) => {\n diffIsReadyResolve = resolve;\n diffIsReadyReject = reject;\n });\n\nlet diffIsReady = {promise: setDiffIsReady()};\nconst onDiffIsReady = () => diffIsReady.promise;\n\nconst diffInstance = {\n getParams: function() {\n return {\n diffid: lastDiffId,\n iconformat: \"id\",\n difflimit: 500,\n auth: authToken\n };\n },\n handleEvents: function(ret) {\n lastDiffId = ret.diffid;\n\n processDiffEvents(ret.entries);\n setTimeout(\n subscriptions.setState.bind(subscriptions, \"diff\", \"ready\"),\n ret.entries.length\n );\n }\n};\n\nfunction processDiffEvents(entries) {\n listeners.forEach(listener => listener(entries));\n}\n\nfunction listen(token, callback) {\n\n if (authToken !== token) {\n authToken = token;\n }\n\n if (typeof callback === \"function\") {\n listeners.push(callback);\n }\n\n start();\n\n return (skipStop) => {\n if (typeof callback !== \"function\") {\n return;\n }\n\n listeners.splice(listeners.indexOf(callback));\n\n console.log(\"removed diff listener\", `#${listeners.length}`);\n\n if (!listeners.length && !skipStop) {\n stop();\n }\n };\n}\n\nfunction start() {\n if (isRunning) {\n return;\n }\n\n isRunning = true;\n subscriptions.add(\"diff\", diffInstance);\n\n const onErrorDiffRequest = () => {\n isRunning = false;\n diffIsReadyReject();\n }\n\n xhr = pCloudGlobals.apiMethod(\"diff\", { last: 0, auth: authToken }, function(ret) {\n lastDiffId = ret.diffid;\n\n subscriptions.setState(\"diff\", \"ready\");\n \n subscriptions.onSentSubscribeRequest.then(() => {\n diffIsReadyResolve();\n });\n\n xhr = false;\n }, \n { \n errorCallback: onErrorDiffRequest,\n onXhrError: onErrorDiffRequest\n });\n}\n\nfunction stop() {\n if (xhr) {\n xhr.abort();\n }\n\n lastDiffId = -1;\n subscriptions.remove(\"diff\");\n isRunning = false;\n diffIsReady.promise = setDiffIsReady();\n}\n\nexport default { listen, stop, onDiffIsReady };","import React from \"react\";\nimport { sha256 } from \"js-sha256\";\n\nimport { __ } from \"./utils\";\nimport {\n STRIPE_PK,\n SAFECHARGE_MERCHANT_SITE_ID,\n SAFECHARGE_MERCHANT_ID,\n} from \"@pcloud/web-utilities/dist/config\";\nimport { signToCurrency } from \"@pcloud/web-utilities/dist/payments/constants.payments\";\nimport { rcookie, removeCyclic } from \"@pcloud/web-utilities/dist/lib/utils\";\nimport apiConfig from \"@pcloud/web-utilities/dist/api/config.api\";\nimport { EU_LOCATIONID, US_LOCATIONID } from \"@pcloud/web-utilities/dist/config/constants\";\n\nimport diffs from \"../lib/diffs\";\n\nimport VisaSVG from \"../svg/card-logo/visa.svg\";\nimport VisaV2SVG from \"../svg/card-logo/visa-v2.svg\";\nimport MasterCardSVG from \"../svg/card-logo/mastercard.svg\";\nimport MasterCardV2SVG from \"../svg/card-logo/mastercard-v2.svg\";\n// import MaestroSVG from \"../svg/card-logo/maestro.svg\";\nimport AmexCardSVG from \"../svg/card-logo/amex.svg\";\nimport AmexCardV2SVG from \"../svg/card-logo/amex-v2.svg\";\nimport DinersCardSVG from \"../svg/card-logo/diners.svg\";\nimport DinersCardV2SVG from \"../svg/card-logo/diners-v2.svg\";\nimport JCBSVG from \"../svg/card-logo/jcb.svg\";\nimport DiscoverSVG from \"../svg/card-logo/discover.svg\";\nimport DiscoverV2SVG from \"../svg/card-logo/discover-v2.svg\";\nimport PaypalSVG from \"../svg/paypal-logo.svg\";\nimport PaypalV2SVG from \"../svg/card-logo/paypal-logo-v2.svg\";\nimport DefaultCardSVG from \"../svg/card-logo/card-default.svg\";\nimport GooglePlaySVG from \"../svg/google-play.svg\";\nimport ItunesSVG from \"../svg/itunes.svg\";\nimport VivacomSVG from \"../svg/vivacom-logo.svg\";\nimport { loadSafecharge } from \"@pcloud/web-utilities/dist/payments/insertSafechargeForm\";\n\nconst paymentApiUrls = {};\npaymentApiUrls[EU_LOCATIONID] = \"eqapayments.pcloud.com\";\npaymentApiUrls[US_LOCATIONID] = \"qabraintree.pcloud.com\";\n\nexport const getPaymentsApiUrl = () => {\n return paymentApiUrls[apiConfig.locationid];\n};\n\nlet passedOpts;\nlet errorCallback;\n\nexport function SubscriptionUpdate({\n provider,\n period,\n discountcode,\n billingAddress,\n userAuth,\n products = [],\n traffic,\n storage,\n toggleLoader,\n showPaymentError,\n providerSourceId,\n newCC,\n authorizeCard,\n isBusinessTrial = false,\n downgrade = false,\n onBraintreeCreatePayment = () => {}\n}) {\n const apiMethods = {\n stripe: \"paystripe\",\n safecharge: \"paysafecharge\",\n paypal: isBusinessTrial ? \"subscription/createbusiness\" : \"purchase/create\",\n adyen: \"payadyen\"\n };\n\n this.method = apiMethods[provider];\n this.checkout = null;\n this.safeChargeCCToken = \"\";\n this.amountToPay = 1;\n this.userTokenId = \"\";\n this.orderid = null;\n this.metapixeleventid = null;\n\n this.paymentInfo = {\n auth: userAuth,\n products: products.join(\",\"),\n period,\n discountcode\n };\n\n if (traffic !== 0) {\n this.paymentInfo.traffic = traffic;\n }\n\n if (storage !== 0) {\n this.paymentInfo.storage = storage;\n }\n\n if (downgrade) {\n this.paymentInfo.isdowngrade = 1;\n }\n\n if (rcookie(\"_fbp\")) {\n this.paymentInfo.fbp = rcookie(\"_fbp\");\n }\n\n if (rcookie(\"_fbc\")) {\n this.paymentInfo.fbc = rcookie(\"_fbc\");\n }\n\n this.errors = {\n \"1120\": __(\"discount_error_1120\"),\n \"1126\": \"Invalid usage.\",\n \"1131\": \"Please provide ‘period’.\",\n \"2247\": __(\"discount_error_2247\"),\n \"2248\": __(\"discount_error_2248\"),\n \"2249\": __(\"discount_error_2249\"),\n \"2250\": __(\"discount_error_2250\"),\n \"2252\": __(\"discount_error_2252\"),\n \"2253\": __(\"discount_error_2253\"),\n \"2256\": \"You can’t use your own referral code.\",\n \"2257\": \"You already bought this lifetime product.\",\n \"2289\": \"This custom plan can’t be bought.\",\n \"1101\": \"Invalid request.\",\n \"1056\": __(\"payment_error_1056\"),\n \"2209\": __(\"payment_error_2209\"),\n \"2215\": __(\"payment_error_2215\"),\n \"2273\": __(\"payment_method_limit_reached\"),\n \"93107\": __(\"payment_error_93107\"),\n \"93109\": __(\"payment_error_93109\"),\n \"82901\": __(\"payment_error_82901\"),\n \"92910\": __(\"payment_error_92910\"),\n \"92911\": __(\"payment_error_92911\"),\n \"93108\": __(\"payment_error_93108\"),\n \"81901\": __(\"payment_error_81901\"),\n \"81905\": __(\"payment_error_81905\"),\n \"91609\": __(\"payment_error_91609\"),\n api_connection_error: __(\"stripe_api_connection_error\"),\n api_error: __(\"stripe_api_error\"),\n authentication_error: __(\"stripe_authentication_error\"),\n invalid_request_error: __(\"stripe_invalid_request_error\"),\n rate_limit_error: __(\"stripe_rate_limit_error\"),\n invalid_number: __(\"stripe_invalid_number\"),\n invalid_expiry_month: __(\"stripe_invalid_expiry_month\"),\n invalid_expiry_year: __(\"stripe_invalid_expiry_year\"),\n invalid_cvc: __(\"stripe_invalid_cvc\"),\n incorrect_number: __(\"stripe_incorrect_number\"),\n expired_card: __(\"stripe_expired_card\"),\n incorrect_cvc: __(\"stripe_incorrect_cvc\"),\n incorrect_zip: __(\"stripe_incorrect_zip\"),\n card_declined: __(\"stripe_card_declined\"),\n processing_error: __(\"stripe_processing_error,\"),\n missing: __(\"stripe_missing\"),\n // triggered by window.sfc.createPayment in errorDescription field\n incorrect_card_number: __(\"stripe_incorrect_number\"),\n xhr_error: __(\"payment_error_1056\")\n };\n\n this.handlePaymenterror = (data) => {\n const translated = this.errors[data.reasoncode] || this.errors[data.reason] || this.errors[data.result] || this.errors[data.error] || this.errors[data.code] || this.errors[data.errorDescription];\n let message;\n if (translated) {\n message = translated;\n } else {\n if (data.reason && data.reason.indexOf(\"TRANSID\") != -1) {\n message = __(\"payment_error_unhandled\");\n } else {\n message = data.reason || data.error || data.errorDescription || data.result || data.message;\n }\n\n if (message instanceof Object) {\n message = message.message || message.code\n }\n }\n \n toggleLoader(\"hide\");\n showPaymentError(message);\n };\n\n this.onPaymentSuccess = (res, opt) => {\n if (opt.callback && typeof opt.callback == \"function\") {\n opt.callback({...res, metapixeleventid: this.metapixeleventid}, () => {}, (data) => {\n this.handlePaymenterror(data);\n });\n } else {\n toggleLoader(\"hide\", \"success\");\n }\n };\n\n this.createCardData = (\n numberProp,\n expMonthProp,\n expYearProp,\n nameProp,\n cvcProp\n ) => {\n if (newCC) {\n const forCardData = {};\n forCardData[numberProp] = newCC.cardNumber;\n forCardData[expMonthProp] = newCC.expirationMonth;\n forCardData[expYearProp] = newCC.expirationYear;\n forCardData[nameProp] = newCC.cardHolderName;\n forCardData[cvcProp] = newCC.CVV;\n return forCardData;\n }\n };\n\n this.paymentApiCall = opt => {\n toggleLoader(\"show\");\n apiCall(\n this.method,\n this.paymentInfo,\n data => {\n if (data?.eventid) {\n this.metapixeleventid = data.eventid;\n }\n\n if (\n data.redirecturl || (data.action && data.action.type === \"redirect\")\n ) {\n window.showSafeChargeError = message => {\n this.onPaymentError(message);\n };\n } else {\n this.onPaymentSuccess(data, opt);\n }\n },\n ret => {\n this.handlePaymenterror(ret);\n },\n {\n onXhrError: (xhr, status, error) => {\n this.handlePaymenterror({reasoncode: \"xhr_error\", xhrError: {error: xhr, status, error}});\n }\n }\n );\n };\n\n this.createStripePayment = ({ newpaymentmethod, paymentmethodid, paymentintentsecret }, opt) => {\n const stripe = Stripe('pk_test_rqxCBCYuPZVO5zmwMeD0yEvk');\n let params = {};\n const self = this;\n \n // if (newpaymentmethod) {\n // params = {\n // payment_method_data: {\n // card: { token: this.paymentInfo[\"token\"] },\n // billing_details: { name: newCC && newCC.cardHolderName }\n // },\n // save_payment_method: true,\n // setup_future_usage: \"off_session\"\n // }\t\n // } \n \n if (paymentmethodid) {\n params = {\n payment_method: paymentmethodid,\n setup_future_usage: \"off_session\"\n };\n } else {\n params = { \n payment_method: {card: { token: this.paymentInfo[\"token\"] }},\n setup_future_usage: \"off_session\"\n };\n }\n\n stripe.confirmCardPayment(paymentintentsecret, params)\n .then(function(result) {\n if (result?.paymentIntent && result?.paymentIntent?.id) {\n self.metapixeleventid = sha256(result.paymentIntent.id.toString());\n }\n\n if (result.error) {\n self.handlePaymenterror(result);\n } else {\n self.onPaymentSuccess(result, opt);\n }\n });\n }\n\n this.confirmStripeCard = ({ newpaymentmethod, paymentmethodid, clientsecret }, opt) => {\n const stripe = Stripe('pk_test_rqxCBCYuPZVO5zmwMeD0yEvk');\n const params = {\n payment_method: {\n card: { token: this.paymentInfo[\"token\"] }\n }\n }\t\n const self = this;\n \n if (paymentmethodid && !newCC) {\n params.payment_method = paymentmethodid;\n }\n\n stripe.confirmCardSetup(clientsecret, params)\n .then(function(result) {\n if (result?.setupIntent && result?.setupIntent?.id) {\n self.metapixeleventid = sha256(result.setupIntent.id.toString());\n }\n\n if (result?.error) {\n self.handlePaymenterror(result);\n } else if (opt.shoudUpdateDefaultSource) {\n self.updateStripeDefaultSource(result.setupIntent.payment_method, {\n refresh: false,\n callback: opt.callback\n });\n } else if (opt.paymentCallback) {\n opt.paymentCallback();\n } else {\n self.onPaymentSuccess(result, opt);\n }\n });\n }\n\n this.updateStripeSubscription = async(opt, skipModal) => {\n toggleLoader(\"show\");\n const self = this;\n\n // Wait for API to be ready to listen for user info change == successfully paid new plan.\n diffs.listen(userAuth);\n await diffs.onDiffIsReady().catch(err => console.error('Failed to create /subscribe request before payment.'));\n\n if (opt.changeCard) {\n self.paymentInfo.changecard = true;\n }\n\n if (opt.showPaymentConfirmationModal && !skipModal) {\n modalManager.open('PaymentConfirmationModal', {\n handleButtonClick: () => {\n self.updateStripeSubscription(opt, true);\n },\n handleModalClose: () => {\n toggleLoader(\"hide\");\n }\n });\n\n return;\n }\n\n if (newCC) {\n this.setStripePaymentSource({\n paymentCallback: () => {\n delete self.paymentInfo.token;\n this.paymentApiCall({\n callback: (res) => {\n if (res.paymentintentsecret) {\n this.createStripePayment(res, opt);\n } else {\n opt.callback(res);\n }\n }\n });\n }\n });\n } else {\n this.paymentApiCall({\n callback: (res) => {\n if (res.paymentintentsecret) {\n this.createStripePayment(res, opt);\n } else {\n opt.callback(res);\n }\n }\n });\n }\n };\n\n this.updateStripeDefaultSource = (methodid, opt) => {\n toggleLoader(\"show\");\n\n apiCall(\n \"billing/stripe/setdefaultpaymentmethod\",\n { auth: userAuth, methodid: methodid },\n res => {\n this.onPaymentSuccess(res, opt);\n },\n ret => {\n this.handlePaymenterror(ret);\n },\n {\n onXhrError: (xhr, status, error) => {\n this.handlePaymenterror({reasoncode: \"xhr_error\", xhrError: {error: xhr, status, error}});\n }\n }\n );\n };\n \n this.openSafechargeOrder = ({ successCallback }) => {\n if (pCloudGlobals && pCloudGlobals.apiMethod) {\n const openorderParams = authorizeCard ? {\n authorizecard: 1,\n auth: userAuth\n } : this.paymentInfo;\n\n pCloudGlobals.apiMethod('safecharge/openorder', openorderParams, data => {\n if (data.sessiontoken) {\n this.safeChargeCCToken = data.sessiontoken;\n this.userTokenId = data.usertokenid;\n this.amountToPay = data.amounttopay / 100;\n\n if (data.orderid) {\n this.orderid = data.orderid;\n }\n\n if (successCallback && typeof successCallback === \"function\") {\n successCallback(data);\n }\n }\n }, {\n errorCallback: (res) => {\n this.handlePaymenterror(res);\n },\n onXhrError: (xhr, status, error) => {\n this.handlePaymenterror({reasoncode: \"xhr_error\", xhrError: {error: xhr, status, error}});\n }\n })\n }\n }\n\n this.applySafechargeOrder = (opt) => {\n if (pCloudGlobals && pCloudGlobals.apiMethod) {\n pCloudGlobals.apiMethod('safecharge/applyorder', {\n auth: userAuth,\n orderid: this.orderid\n }, res => {\n // this.onPaymentSuccess(res, opt);\n opt.callback(res, () => {}, (data) => {\n this.handlePaymenterror(data);\n }, true);\n }, {\n errorCallback: (res) => {\n this.handlePaymenterror(res);\n toggleLoader(\"hide\");\n },\n onXhrError: (xhr, status, error) => {\n this.handlePaymenterror({reasoncode: \"xhr_error\", xhrError: {error: xhr, status, error}});\n }\n })\n }\n }\n\n this.callSafechargePayment = (opt) => {\n if (!this.safeChargeCCToken) {\n return;\n }\n const currency = sessionStorage.pclCurrency || '$';\n let billingAddressFormatted; \n \n if (billingAddress) {\n billingAddressFormatted = { ...billingAddress };\n billingAddressFormatted.country = billingAddressFormatted.country ? billingAddressFormatted.country.toUpperCase() : \"LU\";\n }\n\n const params = {\n sessionToken: this.safeChargeCCToken, //received from openOrder API \n userTokenId: this.userTokenId,\n merchantId: SAFECHARGE_MERCHANT_ID.replace('SC_TEST_MERCHANT_ID_', ''),\n merchantSiteId : SAFECHARGE_MERCHANT_SITE_ID.replace('SC_TEST_MERCHANT_ID_', ''),\n clientUniqueId: Date.now(),\n currency: signToCurrency[currency],\n amount: this.amountToPay,\n billingAddress: billingAddressFormatted,\n }\n if (newCC && SFCardNumber) {\n removeCyclic(SFCardNumber);\n params.paymentOption = SFCardNumber;\n params.cardHolderName = newCC.cardHolderName\n } else if (providerSourceId) {\n params.paymentOption = { userPaymentOptionId: providerSourceId };\n }\n \n // Safecharge don't call the new callback, but the fist one provided\n // this we updated the opts used in the original callback\n passedOpts = opt;\n errorCallback = this.handlePaymenterror;\n\n window.sfc.createPayment(params, res => {\n if (res?.transactionId) {\n this.metapixeleventid = sha256(res.transactionId.toString());\n };\n\n if (res.result === \"SUCCESS\" || res.result === \"APPROVED\") {\n this.onPaymentSuccess(res, passedOpts);\n } else {\n errorCallback(res);\n }\n });\n }\n\n this.initSafechargePayment = async(opt) => {\n const self = this;\n passedOpts = opt;\n\n const afterOpenOrder = (res) => {\n if (res.amounttopay === 0 && res.orderid && !newCC && typeof SFCardNumber === \"undefined\") {\n this.applySafechargeOrder(passedOpts);\n } else {\n if (window.sfc) {\n this.callSafechargePayment(passedOpts);\n } else {\n // Await for safecharge.js to be ready. Loaded inside insertSafechargeForm.js.\n loadSafecharge().then(() => {\n this.callSafechargePayment(passedOpts)\n });\n }\n }\n }\n\n toggleLoader(\"show\");\n\n // Wait for API to be ready to listen for user info change == successfully paid new plan.\n diffs.listen(userAuth);\n await diffs.onDiffIsReady().catch(err => console.error('Failed to create /subscribe request before payment.'));\n \n if (opt.showPaymentConfirmationModal) {\n modalManager.open('PaymentConfirmationModal', {\n handleButtonClick: () => {\n self.openSafechargeOrder({\n successCallback: (res) => afterOpenOrder(res),\n });\n },\n handleModalClose: () => {\n toggleLoader(\"hide\");\n }\n });\n } else {\n self.openSafechargeOrder({\n successCallback: (res) => afterOpenOrder(res)\n });\n }\n };\n\n this.createBraintreePayment = async (opt, skipModal) => {\n const self = this;\n onBraintreeCreatePayment();\n \n if (opt.showPaymentConfirmationModal && !skipModal) {\n modalManager.open('PaymentConfirmationModal', {\n handleButtonClick: () => {\n self.createBraintreePayment(opt, true);\n },\n handleModalClose: () => {\n toggleLoader(\"hide\");\n }\n });\n\n return;\n }\n\n toggleLoader(\"show\");\n\n // Wait for API to be ready to listen for user info change == successfully paid new plan.\n diffs.listen(userAuth);\n await diffs.onDiffIsReady().catch(err => console.error('Failed to create /subscribe request before payment.'));\n\n apiCall(\n this.method,\n this.paymentInfo,\n res => {\n if (self.checkout) {\n self.checkout.teardown(() => {\n self.checkout = null;\n })\n }\n\n if (res?.transactionid) {\n this.metapixeleventid = `${res.transactionid}-${apiConfig.locationid}`\n }\n this.onPaymentSuccess(res, opt);\n },\n ret => {\n this.handlePaymenterror(ret);\n },\n {\n apiServer: getPaymentsApiUrl(),\n onXhrError: (xhr, status, error) => {\n this.handlePaymenterror({reasoncode: \"xhr_error\", xhrError: {error: xhr, status, error}});\n }\n }\n );\n };\n\n this.initBrainTree = (token, opt) => {\n const self = this;\n\n braintree.client.create({\n authorization: token\n }, function (clientErr, clientInstance) {\n \n // Stop if there was a problem creating the client.\n // This could happen if there is a network error or if the authorization\n // is invalid.\n if (clientErr) {\n console.error('Error creating client:', clientErr);\n return;\n }\n \n // Create a PayPal Checkout component.\n braintree.paypalCheckout.create({\n client: clientInstance\n }, function (paypalCheckoutErr, paypalCheckoutInstance) {\n paypalCheckoutInstance.loadPayPalSDK({\n vault: true\n }, function () {\n paypal.Buttons({\n fundingSource: paypal.FUNDING.PAYPAL,\n style: {\n color: opt.color || 'blue',\n label: opt.label || ''\n },\n createBillingAgreement: function () {\n return paypalCheckoutInstance.createPayment({\n flow: 'vault', // Required\n });\n },\n \n onApprove: function (data, actions) {\n toggleLoader(\"show\");\n return paypalCheckoutInstance.tokenizePayment(data, function (err, payload) {\n if (payload.nonce) {\n self.paymentInfo[\"nonce\"] = payload.nonce;\n if (isBusinessTrial) {\n opt.callback({ nonce: payload.nonce })\n } else {\n self.createBraintreePayment(opt);\n }\n } else {\n showPaymentError(\n __(\n \"something_went_wrong_refresh_and_try_again\",\n \"Something went wrong. Refresh and try again.\"\n )\n );\n }\n // Submit `payload.nonce` to your server\n });\n },\n \n onCancel: function (data) {\n toggleLoader(\"hide\");\n },\n \n onError: function (err) {\n console.error('PayPal error', err);\n toggleLoader(\"hide\");\n }\n }).render('#paypal-button').then(function () {\n // The PayPal button will be rendered in an html element with the ID\n // `paypal-button`. This function will be called when the PayPal button\n // is set up and ready to be used\n if (opt.onReady) {\n opt.onReady();\n }\n });\n \n });\n });\n });\n };\n\n this.getTokenBraintree = (opt) => {\n // toggleLoader(\"show\");\n apiCall(\n \"./token/get\",\n {auth: userAuth},\n res => {\n this.initBrainTree(res.token, opt);\n },\n ret => {\n this.handlePaymenterror(ret);\n },\n {\n apiServer: getPaymentsApiUrl(),\n onXhrError: (xhr, status, error) => {\n this.handlePaymenterror({reasoncode: \"xhr_error\", xhrError: {error: xhr, status, error}});\n }\n }\n );\n };\n\n this.setupIntent = (token, { callback }) => {\n apiCall(\n \"billing/stripe/setupintent\",\n { auth: userAuth },\n res => {\n if (callback && typeof callback === \"function\") {\n if (res.setupIntent && res.setupIntent.payment_method) {\n this.paymentInfo.paymentmethodid = res.setupresult.setupIntent.payment_method;\n }\n callback(res);\n }\n },\n ret => {\n this.handlePaymenterror(ret);\n },\n {\n onXhrError: (xhr, status, error) => {\n this.handlePaymenterror({reasoncode: \"xhr_error\", xhrError: {error: xhr, status, error}});\n }\n }\n );\n }\n\n this.setStripePaymentSource = (opt) => {\n toggleLoader(\"show\");\n const self = this;\n opt.shoudUpdateDefaultSource = typeof opt.shoudUpdateDefaultSource !== \"undefined\" ? opt.shoudUpdateDefaultSource : false;\n\n if (newCC) {\n Stripe.setPublishableKey(STRIPE_PK);\n const cardData = this.createCardData(\"number\", \"exp_month\", \"exp_year\", \"name\", \"cvc\");\n\n Stripe.card.createToken(cardData, (status, tokenInfo) => {\n if (status == 200) {\n self.paymentInfo[\"token\"] = tokenInfo.id;\n self.setupIntent(tokenInfo, {\n callback: (res) => {\n if (res.clientsecret) {\n self.confirmStripeCard(res, opt);\n } else {\n opt.callback(res);\n }\n }\n });\n } else {\n toggleLoader(\"hide\");\n self.handlePaymenterror(tokenInfo.error);\n }\n });\n }\n }\n\n this.createAlipayPayment = (opt, skipModal) => {\n toggleLoader(\"show\");\n this.paymentInfo.instrument = \"alipay\";\n const self = this;\n\n if (opt.showPaymentConfirmationModal && !skipModal) {\n modalManager.open('PaymentConfirmationModal', {\n handleButtonClick: () => {\n self.createAlipayPayment(opt, true);\n },\n handleModalClose: () => {\n toggleLoader(\"hide\");\n }\n });\n\n return;\n }\n\n apiCall(\n \"paystripe\",\n self.paymentInfo,\n data => {\n const {paymentintentsecret} = data;\n const stripe = Stripe('pk_test_rqxCBCYuPZVO5zmwMeD0yEvk');\n stripe.confirmAlipayPayment(paymentintentsecret, {\n // Return URL where the customer should be redirected to after payment\n return_url: window.location.href,\n }).then((result) => {\n if (result.error) {\n self.handlePaymenterror(result);\n }\n });\n },\n ret => {\n self.handlePaymenterror(ret);\n },\n {\n onXhrError: (xhr, status, error) => {\n this.handlePaymenterror({reasoncode: \"xhr_error\", xhrError: {error: xhr, status, error}});\n }\n }\n );\n }\n\n this.createWechatPayment = (opt, skipModal) => {\n toggleLoader(\"show\");\n this.paymentInfo.instrument = \"wechat\";\n const self = this;\n\n if (opt.showPaymentConfirmationModal && !skipModal) {\n modalManager.open('PaymentConfirmationModal', {\n handleButtonClick: () => {\n self.createWechatPayment(opt, true);\n },\n handleModalClose: () => {\n toggleLoader(\"hide\");\n }\n });\n\n return;\n }\n\n apiCall(\n \"paystripe\",\n this.paymentInfo,\n data => {\n const {paymentintentsecret} = data;\n const stripe = Stripe('pk_test_rqxCBCYuPZVO5zmwMeD0yEvk');\n\n stripe.confirmWechatPayPayment(\n paymentintentsecret,\n {\n payment_method_options: {\n wechat_pay: {\n client: 'web',\n }\n }\n }, {\n handleActions: false\n }).then(({error, paymentIntent}) => {\n if (error) {\n this.handlePaymenterror(result);\n } else if (paymentIntent && paymentIntent.status === 'requires_action') {\n if (paymentIntent && paymentIntent.next_action) {\n opt.onNextAction(paymentIntent.next_action.wechat_pay_display_qr_code.image_url_png);\n }\n } \n })\n },\n ret => {\n this.handlePaymenterror(ret);\n },\n {\n onXhrError: (xhr, status, error) => {\n this.handlePaymenterror({reasoncode: \"xhr_error\", xhrError: {error: xhr, status, error}});\n }\n }\n );\n }\n}\n\nexport const providers = {\n\t1: {name: 'iTunes', short_name: 'itunes', type: 'mobile'},\n\t2: {name: 'PayPal', short_name: 'paypal', type: 'paypal'}, // Old Paypal\n\t3: {name: 'Bitcoin', short_name: 'bitcoin', type: 'bitcoin'},\n\t4: {name: 'Authorize', short_name: 'authorize', type: 'authorize'},\n\t5: {name: 'Vivacom', short_name: 'vivacom', type: 'vivacom'},\n\t6: {name: 'Bank', short_name: 'bank', type: 'bank'},\n\t7: {name: 'PaymentWall', short_name: 'paymentwall', type: 'paymentwall'},\n\t8: {name: 'SEP', short_name: 'sep', type: 'sep'},\n\t9: {name: 'Stripe', short_name: 'stripe', type: 'ccard'},\n\t11: {name: 'PayPal', short_name: 'paypal', type: 'paypal'}, // BrainTree\n\t12: {name: 'Google Play', short_name: 'googleplay', type: 'mobile'},\n\t13: {name: 'SafeCharge', short_name: 'safecharge', type: 'ccard'},\n 15: {name: 'Vivacom', short_name: 'vivacom', type: 'vivacom'},\n 16: {name: 'Adyen', short_name: 'adyen', type: 'ccard'}\n};\n\nexport const internalProviders = [\n {id: 11, short_name: 'paypal'},\n {id: 9, short_name: 'stripe'},\n {id: 13, short_name: 'safecharge'},\n];\n\nexport const isInternalPaymentProvider = providerId => internalProviders.find((internalProvider) => internalProvider.id === providerId);\n\nexport const getPurchaseData = () => {\n\tif (typeof(Storage) === 'undefined' || typeof(localStorage) === 'undefined' || localStorage === null) {\n\t\treturn [];\n }\n \n const purchases = localStorage.getItem(\"purchases\");\n \n\tif (purchases) {\n\t\treturn JSON.parse(purchases);\n\t} else {\n\t\treturn [];\n\t}\n}\n\nexport const storePurchaseDataLocally = (purchaseData) => {\n\tif (typeof(Storage) === 'undefined' || typeof(localStorage) === 'undefined' || localStorage === null) {\n\t\treturn;\n }\n \n\tconst purchases = getPurchaseData();\n\n\tpurchases.push(purchaseData);\n\n\tlocalStorage.setItem(\"purchases\", JSON.stringify(purchases));\n}\n\nexport const getCreditCardInfo = (paymentSource) => {\n if (!paymentSource) {\n return null;\n }\n \n const paymentProvider = paymentSource.safecharge ? \"safecharge\" : (paymentSource.stripe ? \"stripe\" : null);\n \n if (paymentProvider === null) {\n return null;\n }\n\n const creditCardInfo = paymentSource[paymentProvider].sources && paymentSource[paymentProvider].sources.length > 0 && \n // Find default source\n paymentSource[paymentProvider].sources.find(pSource => pSource.isdefault) && \n // If no default is set -> use the last in the array.\n paymentSource[paymentProvider].sources[paymentSource[paymentProvider].sources.length - 1];\n\n return creditCardInfo;\n};\n\nexport const brandIcons = {\n visa:
,\n visa_v2:
,\n master_card:
,\n mastercard:
,\n mastercard_v2:
,\n // maestro:
,\n american_express:
,\n americanexpress:
,\n americanexpress_v2:
,\n dinersclub:
,\n diners_club:
,\n dinersclub_v2:
,\n discover:
,\n discover_v2:
,\n jcb:
,\n paypal:
,\n paypal_v2:
,\n default:
,\n googleplay:
,\n itunes:
,\n vivacom:
\n};\n\nexport const renderBillingProviderOrPaymentSourceIcon = (paymentProvider, paymentSource = null) => {\n let brandIcon = brandIcons[\"default\"];\n if (paymentSource && (paymentProvider.short_name === \"safecharge\" || paymentProvider.short_name === \"stripe\")) {\n // Safecharge, paypal or stripe.\n const creditCardInfo = getCreditCardInfo(paymentSource);\n brandIcon = brandIcons[creditCardInfo && creditCardInfo.brand ? creditCardInfo.brand.toLowerCase() : \"default\"] || brandIcon;\n } else if (paymentProvider.short_name === \"paypal\") {\n brandIcon = brandIcons[\"paypal\"];\n } else {\n // For example vivacom, googleplay or itunes...\n brandIcon = brandIcons[paymentProvider.short_name] || brandIcon;\n }\n\n return brandIcon;\n};","import React from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport { hiDPI } from \"polished\";\n\nconst errorImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/attention@2x.png' : 'images/attention.png');\nexport const Error = styled.div`\n width: 100%;\n box-shadow: inset 3px 0 0 0 rgba(255, 115, 115, 0.1), inset -3px 0px 0 0 rgba(255, 115, 115, 0.1),\n inset 0px 3px 0 0 rgba(255, 115, 115, 0.1), inset 0px -3px 0 0 rgba(255, 115, 115, 0.1);\n border: solid 1px #ff7373;\n background-color: #fff4f4;\n background-image: url(${errorImg});\n background-repeat: no-repeat;\n background-size: 24px 22px;\n background-position: 20px center;\n font-family: \"Roboto\", sans-serif;\n font-size: 16px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.19;\n letter-spacing: normal;\n text-align: center;\n color: #ff2626;\n margin-bottom: 18px;\n box-sizing: border-box;\n padding: 20px 20px 20px 64px;\n`;\n\nconst slideRight = keyframes`\n 0% {\n opacity: 0;\n right: 2px;\n }\n\n 100% {\n opacity: 1;\n right: 9px;\n }\n`;\n\nconst CardIcon = styled.div`\n z-index: 2;\n width: 28px;\n height: 22px;\n background-position: center;\n background-repeat: no-repeat;\n background-size: contain;\n display: inline-block;\n position: absolute;\n top: 34px;\n right: 9px;\n animation-name: ${slideRight};\n animation-duration: 500ms;\n animation-timing-function: ease-in-out;\n animation-direction: alternate;\n animation-fill-mode: forwards;\n`;\n\nconst visaCardImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/plans/checkout/input_cards/visa@2x.png' : 'images/plans/checkout/input_cards/visa.png');\nconst VisaCardIcon = styled(CardIcon)`\n background-image: url(${visaCardImg});\n`;\n\nconst masterCardImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/plans/checkout/input_cards/mastercard@2x.png' : 'images/plans/checkout/input_cards/mastercard.png');\nconst MasterCardIcon = styled(CardIcon)`\n background-image: url(${masterCardImg});\n`;\n\nconst amexCardImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/plans/checkout/input_cards/amex@2x.png' : 'images/plans/checkout/input_cards/amex.png');\nconst AmexCardIcon = styled(CardIcon)`\n background-image: url(${amexCardImg});\n`;\n\nconst dinersCardImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/plans/checkout/input_cards/diners@2x.png' : 'images/plans/checkout/input_cards/diners.png');\nconst DinersCardIcon = styled(CardIcon)`\n background-image: url(${dinersCardImg});\n`;\n\nconst discoverCardImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/plans/checkout/input_cards/discover@2x.png' : 'images/plans/checkout/input_cards/discover.png');\nconst DiscoverCardIcon = styled(CardIcon)`\n background-image: url(${discoverCardImg});\n`;\n\nconst jcbCardImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/plans/checkout/input_cards/jcb@2x.png' : 'images/plans/checkout/input_cards/jcb.png');\nconst JCBCardIcon = styled(CardIcon)`\n background-image: url(${jcbCardImg});\n`;\n\nconst defaultCardImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/plans/checkout/input_cards/no_card@2x.png' : 'images/plans/checkout/input_cards/no_card.png');\nconst DefaultCardIcon = styled(CardIcon)`\n background-image: url(${defaultCardImg});\n`;\n\nexport const cardIcons = {\n visa:
,\n master:
,\n mastercard:
,\n amex:
,\n americanexpress:
,\n diners:
,\n dinersclub:
,\n discover:
,\n jcb:
,\n default:
\n};\n","//@flow\n\nimport React, { useState, useEffect } from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport { hiDPI } from \"polished\";\nimport { Tooltip as ReactTooltip } from \"react-tooltip\";\n\nimport { ColorType } from \"../../lib/types/dataTypes.components\";\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\n\nimport { __ } from \"../../lib/utils\";\nimport { ButtonWithIcon } from \"@pcloud/web-utilities/dist/resources/components/ButtonDefault\";\nimport { Error, cardIcons } from \"./SharedStyledComponents\";\nconst reactStringReplace = require('react-string-replace');\n\nexport type CreditCardFormTemplateProps = {\n cardNumber: string,\n cardType: string,\n expDate: string,\n CVC: string,\n holderName: string,\n validCardNumber: boolean,\n validExpDate: boolean,\n validCVC: boolean,\n validHolderName: boolean,\n errorMessage: string,\n paymentLoading: boolean,\n changeCard: boolean,\n handleCardNumberChange: (event: SyntheticInputEvent
) => void,\n handleCardNumberKeyPress: (event: SyntheticInputEvent
) => void,\n handleCardNumberPaste: (event: SyntheticInputEvent
) => void,\n handleExpDateChange: (event: SyntheticInputEvent
) => void,\n handleExpDateKeyUp: (event: SyntheticInputEvent
) => void,\n handleCVCChange: (event: SyntheticInputEvent
) => void,\n handleCVCKeyPress: (event: SyntheticInputEvent
) => void,\n handleHolderNameChange: (event: SyntheticInputEvent
) => void,\n handleHolderNameKeyPress: (event: SyntheticInputEvent
) => void,\n handleSubmit: (event: SyntheticInputEvent
) => void,\n handleCardChange: () => void,\n color?: ColorType,\n shouldRenderInputs?: boolean,\n shouldRenderHolderName?: boolean,\n buttonText?: string,\n showDisclaimer: boolean,\n theme?: string\n};\n\nconst CreditCardFormTemplate = ({\n cardNumber,\n validCardNumber,\n cardType,\n handleCardNumberChange,\n handleCardNumberKeyPress,\n handleCardNumberPaste,\n expDate,\n validExpDate,\n handleExpDateKeyUp,\n handleExpDateChange,\n CVC,\n validCVC,\n handleCVCChange,\n handleCVCKeyPress,\n holderName,\n validHolderName,\n handleHolderNameChange,\n handleHolderNameKeyPress,\n errorMessage,\n paymentLoading,\n handleSubmit,\n changeCard,\n handleCardChange,\n color,\n shouldRenderInputs = true,\n shouldRenderHolderName = true,\n buttonText,\n showDisclaimer=false,\n theme\n}: CreditCardFormTemplateProps) => {\n return (\n
\n {errorMessage ?
{errorMessage}
: null}\n
\n
{__(\"card_number\", \"Card number\")}
\n {changeCard ? (\n
\n {__(\"undo_cart_change\", \"Undo change\")}\n
\n ) : null}\n
\n {shouldRenderInputs ? (\n
\n
\n {cardType ? cardIcons[cardType] : cardIcons[\"default\"]}\n
\n ) : null}\n
\n
\n
\n
{__(\"expiration_date_short\", \"Exp. date\")}
\n
\n {shouldRenderInputs ? (\n
\n ) : null}\n
\n
\n
\n
{__(\"CVC\", \"CVC\")}
\n
\n
\n i\n
\n
\n
\n
\n {shouldRenderInputs ? (\n
\n ) : null}\n
\n
\n
\n
{__(\"card_holder\", \"Cardholder name\")}
\n
\n
\n
\n
\n
\n
\n
\n {showDisclaimer ? (\n
\n {reactStringReplace(__(\"store-card-disclaimer\"), /(%review%)/g, (match, i) => (\n
{\n modalManager.open('PrivacyPolicy');\n }}>\n {__(\"store-card-review-link\")}\n \n ))}\n
\n ) : null}\n
\n {/*
*/}\n
{__(\"secure_ssl_payment_short\")}
\n
\n
\n );\n};\n\nexport default CreditCardFormTemplate;\n\nconst CardFormWrapper = styled.form``;\n\nconst InputWrapper = styled.div`\n margin-top: 12px;\n`;\n\nconst InputLabel = styled.label`\n display: inline-block;\n margin-bottom: 5px;\n /* font-family: \"Roboto\", sans-serif; */\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.23;\n letter-spacing: normal;\n text-align: left;\n color: #999999;\n`;\n\nconst shake = keyframes`\n 10%, 90% {\n transform: translate3d(-1px, 0, 0);\n }\n \n 20%, 80% {\n transform: translate3d(2px, 0, 0);\n }\n\n 30%, 50%, 70% {\n transform: translate3d(-4px, 0, 0);\n }\n\n 40%, 60% {\n transform: translate3d(4px, 0, 0);\n }\n`;\n\nconst InputField = styled.div`\n width: 100%;\n height: 40px;\n padding: 11px 15px;\n box-sizing: border-box;\n border: 1px solid #cccccc;\n background-color: #ffffff;\n /* font-family: \"Roboto\", sans-serif; */\n font-size: 15px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.2;\n letter-spacing: normal;\n color: #444444;\n outline: none;\n\n &[data-invalid=true] {\n border: 1px solid #ff7373;\n animation-name: ${shake};\n animation-duration: 700ms;\n animation-delay: 500ms;\n animation-timing-function: ease-in-out;\n animation-direction: alternate;\n animation-fill-mode: forwards;\n }\n\n /* iframe {\n height: auto !important;\n } */\n\n input {\n width: 100%;\n border: none;\n outline: none;\n background: transparent;\n\n &::placeholder {\n color: #cccccc;\n opacity: 1;\n }\n }\n`;\n\nconst CardNumberWrapper = styled(InputWrapper)`\n position: relative;\n`;\n\nconst ExpDateWrapper = styled(InputWrapper)`\n display: inline-block;\n width: 48%;\n\n input {\n text-align: center;\n }\n`;\n\nconst CVCWrapper = styled(InputWrapper)`\n display: inline-block;\n width: 48%;\n float: right;\n position: relative;\n\n .tooltip {\n padding: 15px 20px;\n max-width: 200px;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.35;\n font-weight: 400;\n /* font-family: \"Roboto\", sans-serif; */\n text-align: center;\n }\n\n input {\n text-align: center;\n }\n`;\n\nconst InfoIcon = styled.div`\n margin-left: auto;\n width: 16px;\n height: 16px;\n border-radius: 8px;\n background-color: ${({theme}) => (theme && theme === \"dark\") ? \"#444\" : \"#ccc\"};\n color: ${({theme}) => (theme && theme === \"dark\") ? \"#bcbcbc\" : \"#fff\"};\n font-size: 11px;\n font-weight: bold;\n line-height: 16px;\n text-align: center;\n cursor: pointer;\n transition: background 0.2s ease-in-out;\n position: absolute;\n right: 0px;\n top: 0px;\n\n &:hover {\n background-color: ${({theme}) => (theme && theme === \"dark\") ? \"#888\" : \"#aaa\"};\n }\n`;\n\nconst CardHolderWrapper = styled(InputWrapper)`\n clear: both;\n\n input {\n text-transform: uppercase;\n }\n`;\n\nconst ChangeCard = styled.div`\n float: right;\n font-size: 12px;\n color: ${props => COLORS[props.color] ? COLORS[props.color].mainColor : COLORS[\"cyan\"].mainColor };\n padding: 1px 0 0 0;\n /* font-family: \"Roboto\", sans-serif; */\n font-weight: bold;\n cursor: pointer;\n`;\n\nconst ButtonWrapper = styled.div`\n margin-top: 25px;\n`;\n\nconst SecureText = styled.div`\n /* font-family: \"Roboto\", sans-serif; */\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: normal;\n text-align: center;\n color: #999999;\n margin-top: 6px;\n`;\n\nconst DisclaimerText = styled(SecureText)`\n font-size: 10px;\n margin-top: 16px;\n`;\n\nconst secureIconImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/easter2020/secure@2x.png' : 'images/easter2020/secure.png');\nconst SecureIcon = styled.div`\n display: inline-block;\n width: 21px;\n height: 21px;\n background-repeat: no-repeat;\n background-size: 21px 21px;\n background-position: center;\n background-image: url(${secureIconImg});\n position: relative;\n top: 5px;\n margin-right: 10px;\n`;\n\nconst Link = styled.a`\n cursor: pointer;\n text-decoration: none;\n font-weight: bold;\n`;","//@flow\n\nimport React, { useState, useEffect } from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport { hiDPI } from \"polished\";\nimport { Tooltip as ReactTooltip } from \"react-tooltip\";\n\nimport { ColorType } from \"../../lib/types/dataTypes.components\";\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\nimport { __ } from \"../../lib/utils\";\nimport { ButtonWithIcon } from \"@pcloud/web-utilities/dist/resources/components/ButtonDefault\";\nimport { Error, cardIcons } from \"./SharedStyledComponents\";\nconst reactStringReplace = require('react-string-replace');\n\nexport type PrefilledCreditCardFormProps = {\n paymentLoading: boolean,\n userPaymentSource: Object,\n errorMessage: string,\n handleCardChange: () => void,\n handleSubmit: (event: SyntheticInputEvent
) => void,\n color?: ColorType,\n buttonText?: string,\n showDisclaimer?: boolean,\n theme?: string\n};\n\nconst PrefilledCreditCardForm = ({\n paymentLoading,\n userPaymentSource,\n errorMessage,\n handleCardChange,\n handleSubmit,\n color,\n buttonText,\n showDisclaimer,\n theme\n}: PrefilledCreditCardFormProps) => {\n const { last4, brand, expmonth, expyear, name } = userPaymentSource;\n let brandLowerCase = brand ? brand.toLowerCase() : null;\n\n return (\n
\n {errorMessage ?
{errorMessage}
: null}\n
\n
{__(\"card_number\", \"Card number\")}
\n
\n {__(\"change_card\", \"Change card?\")}\n
\n
\n {brandLowerCase ? cardIcons[brandLowerCase] : cardIcons[\"default\"]}\n
\n
\n
{__(\"expiration_date_short\", \"Exp. date\")}
\n
\n
\n
\n
{__(\"CVC\", \"CVC\")}
\n
\n
\n i\n \n
\n
\n
\n
\n
\n
{__(\"card_holder\", \"Cardholder name\")}
\n
\n
\n
\n
\n
\n {showDisclaimer ? (\n
\n {reactStringReplace(__(\"store-card-disclaimer\"), /(%review%)/g, (match, i) => (\n
{\n modalManager.open('PrivacyPolicy');\n }}>\n {__(\"store-card-review-link\")}\n \n ))}\n
\n ) : null}\n
\n {/*
*/}\n
{__(\"secure_ssl_payment_short\")}
\n
\n
\n );\n};\n\nexport default PrefilledCreditCardForm;\n\nconst CardFormWrapper = styled.form``;\n\nconst InputWrapper = styled.div`\n margin-top: 12px;\n`;\n\nconst InputLabel = styled.label`\n display: inline-block;\n margin-bottom: 5px;\n /* font-family: \"Roboto\", sans-serif; */\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.23;\n letter-spacing: normal;\n text-align: left;\n color: #999999;\n`;\n\nconst InputField = styled.input`\n width: 100%;\n height: 40px;\n padding: 15px;\n box-sizing: border-box;\n border: 1px solid #c7c7c7;\n background-color: #f1f1f1;\n /* font-family: \"Roboto\", sans-serif; */\n font-size: 15px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.2;\n letter-spacing: normal;\n color: #999999;\n`;\n\nconst CardNumberWrapper = styled(InputWrapper)`\n position: relative;\n`;\n\nconst ExpDateWrapper = styled(InputWrapper)`\n display: inline-block;\n width: 48%;\n\n input {\n text-align: center;\n }\n`;\n\nconst CVCWrapper = styled(InputWrapper)`\n display: inline-block;\n width: 48%;\n float: right;\n position: relative;\n\n .tooltip {\n padding: 15px 20px;\n max-width: 200px;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.35;\n font-weight: 400;\n /* font-family: \"Roboto\", sans-serif; */\n text-align: center;\n }\n\n input {\n text-align: center;\n }\n`;\n\nconst InfoIcon = styled.div`\n margin-left: auto;\n width: 16px;\n height: 16px;\n border-radius: 8px;\n background-color: ${({theme}) => (theme && theme === \"dark\") ? \"#444\" : \"#ccc\"};\n color: ${({theme}) => (theme && theme === \"dark\") ? \"#bcbcbc\" : \"#fff\"};\n font-size: 11px;\n font-weight: bold;\n line-height: 16px;\n text-align: center;\n cursor: pointer;\n transition: background 0.2s ease-in-out;\n position: absolute;\n right: 0px;\n top: 0px;\n\n &:hover {\n background-color: ${({theme}) => (theme && theme === \"dark\") ? \"#888\" : \"#aaa\"};\n }\n`;\n\nconst CardHolderWrapper = styled(InputWrapper)`\n clear: both;\n\n input {\n text-transform: uppercase;\n }\n`;\n\nconst ButtonWrapper = styled.div`\n margin-top: 25px;\n`;\n\nconst ChangeCard = styled.div`\n float: right;\n font-size: 12px;\n color: ${props => COLORS[props.color] ? COLORS[props.color].mainColor : COLORS[\"cyan\"].mainColor };\n padding: 1px 0 0 0;\n /* font-family: \"Roboto\", sans-serif; */\n font-weight: bold;\n cursor: pointer;\n`;\n\nconst SecureText = styled.div`\n /* font-family: \"Roboto\", sans-serif; */\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: normal;\n text-align: center;\n color: #999999;\n margin-top: 6px;\n`;\n\nconst secureImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/easter2020/secure@2x.png' : 'images/easter2020/secure.png');\nconst SecureIcon = styled.div`\n display: inline-block;\n width: 21px;\n height: 21px;\n background-repeat: no-repeat;\n background-size: 21px 21px;\n background-position: center;\n background-image: url(${secureImg});\n position: relative;\n top: 5px;\n margin-right: 10px;\n`;\n\nconst DisclaimerText = styled(SecureText)`\n font-size: 10px;\n margin-top: 16px;\n`;\n\nconst Link = styled.a`\n cursor: pointer;\n text-decoration: none;\n font-weight: bold;\n`;\n","//@flow\n\nimport React, { useState, useEffect, useRef } from \"react\";\nimport styled from \"styled-components\"\n\nimport { __, findCardType, rcookie } from \"../../lib/utils\";\n\nimport { SubscriptionUpdate } from \"../../lib/payments\";\nimport CreditCardFormTemplate from \"./CreditCardFormTemplate\";\nimport PrefilledCreditCardForm from \"./PrefilledCreditCardForm\";\n// import PaymentConfirmationModal from \"../Modals/PaymentConfirmationModal\";\nimport { PlanIDType, ColorType, Userinfo } from \"../../lib/types/dataTypes.components\";\nimport { insertSafechargeForm, loadSafecharge } from \"@pcloud/web-utilities/dist/payments/insertSafechargeForm\";\nimport { useSafeChargeInputsValidations } from \"../../lib/hooks/SafeChargeInputsValidations\";\nimport {\n preventSymbolsOnCCHolderName,\n formatExpDatetoMMYY,\n preventEnteringChars,\n getExpiryDatePeriod,\n validateExpiryDate\n} from \"@pcloud/web-utilities/dist/payments/utils.payments\";\n\nimport type { CreditCardFormTemplateProps } from \"./CreditCardFormTemplate\";\n\nimport { getUserTtrafficCount } from \"@pcloud/web-utilities/dist/plans/utils.plans\";\nimport { ADDITIONAL_TRAFFIC_ID, CUSTOM4TB_PLAN_ID } from \"@pcloud/web-utilities/dist/plans/constants.plans\";\nimport { SAFECHARGE_PAYMENT_PROVIDER, STRIPE_PAYMENT_PROVIDER } from \"@pcloud/web-utilities/dist/payments/constants.payments\";\n\ntype CreditCardBoxType = {\n auth: string,\n user: Userinfo,\n userId: string,\n planId: PlanIDType | Array
,\n period: \"month\" | \"year\" | \"lifetime\",\n provider: \"safecharge\" | \"stripe\",\n billingAddress: {\n email: string,\n country: string\n },\n RenderForm: (props: CreditCardFormTemplateProps) => React$Element
,\n afterPaymentActions: () => void,\n RenderPrefilledForm?: ({\n paymentLoading: boolean,\n userPaymentSource: Object,\n handleCardChange: () => void,\n handleSubmit: (event: SyntheticInputEvent
) => void\n }) => React$Element
,\n userPaymentSource?: Object,\n discount?: string,\n color?: ColorType,\n isBusinessTrial?: boolean,\n buttonText?: string,\n onPaymentProcessing?: () => void,\n afterPaymentProcessing?: () => void,\n showDisclaimer?: boolean,\n getCurrentStorageCount: () => number,\n payButtonRef: any,\n payButtonClicked: boolean,\n disabledButton?: boolean,\n setDisabledButton: (disabled: boolean) => void,\n setDisabledPlanOptions: (disabled: boolean) => void,\n checkCurrentSubscription: () => void,\n theme?: string,\n traffic: string | number,\n isIE?: boolean,\n onPaymentErrorMessageChange: (newErrorMessage: string) => void,\n downgrade?: boolean,\n};\n\nlet isLoading = false;\n\nconst CreditCardBox = ({\n auth,\n user = null,// Business accounts doesn't pass this param. \n userId,\n planId = [],\n period,\n discount,\n provider,\n billingAddress,\n RenderForm = CreditCardFormTemplate,\n afterPaymentActions,\n RenderPrefilledForm = PrefilledCreditCardForm,\n userPaymentSource,\n color = \"cyan\",\n isBusinessTrial = false,\n buttonText = __(\"checkout_right_btn\"),\n onPaymentProcessing = () => {},\n afterPaymentProcessing = () => {},\n showDisclaimer,\n payButtonRef,\n payButtonClicked,\n disabledButton = false,\n setDisabledButton = () => {},\n setDisabledPlanOptions = () => {},\n checkCurrentSubscription = () => {},\n theme,\n traffic,\n isIE,\n subscribeForUserInfoChange = () => {},\n abbortUserInfoChangeSubscribe = () => {},\n stopUserDiff = () => {},\n onPaymentErrorMessageChange = (newErrorMessage) => null,\n downgrade = false\n}: CreditCardBoxType) => {\n const [cardNumber, setCardNumber] = useState(\"\");\n const [cardNumberLength, setCardNumberLength] = useState(16);\n const [cardType, setCardType] = useState(\"default\");\n const [expDate, setExpDate] = useState(\"\");\n const [CVC, setCVC] = useState(\"\");\n const [holderName, setHolderName] = useState(\"\");\n\n const [validCardNumber, setValidCardNumber] = useState(true);\n const [validExpDate, setValidExpDate] = useState(true);\n const [validCVC, setValidCVC] = useState(true);\n const [validHolderName, setValidHolderName] = useState(true);\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n const [paymentLoading, setPaymentLoading] = useState(false);\n const [changeCard, setChangeCard] = useState(false);\n const [safechargeFormInserted, setSafechargeFormInserted] = useState(false);\n const [showConfirmationModal, setShowConfirmationModal] = useState(false);\n const [disableErrorAnimation, setDisableErrorAnimation] = useState(true);\n\n const getHolderNameFormatted = (holderName) => holderName.replace(/\\s+/g, \"\");\n\n const validateHolderName = (holderName) => {\n const holderNameFormated = getHolderNameFormatted(holderName);\n return !(!holderNameFormated || holderNameFormated.length < 3);\n };\n\n const { holderNameRef, onSafechargeFieldsCreated, validateSafeChargeInputs } = useSafeChargeInputsValidations({\n provider,\n changeCard,\n validateHolderName,\n setDisableErrorAnimation,\n setValidCardNumber, setValidExpDate, setValidCVC, setValidHolderName,\n holderName, getHolderNameFormatted\n });\n\n useEffect(() => {\n onPaymentErrorMessageChange(errorMessage);\n }, [errorMessage]);\n\n useEffect(() => {\n if (payButtonClicked) {\n handleSubmit();\n }\n }, [payButtonClicked]); //[payButtonClicked]\n\n useEffect(() => {\n setDisabledButton(paymentLoading);\n setDisabledPlanOptions(paymentLoading);\n }, [paymentLoading]); //[paymentLoading]\n\n useEffect(() => {\n if (isIE && !disabledButton) {\n setDisabledButton(true);\n }\n }, [isIE, disabledButton]);\n\n useEffect(() => {\n if (provider === SAFECHARGE_PAYMENT_PROVIDER && !isIE) {\n if (!safechargeFormInserted && (!userPaymentSource || (userPaymentSource && changeCard))) {\n const SFFieldsParams = {};\n const language = rcookie(\"lang\") || rcookie(\"set_lang\");\n \n if (language) {\n SFFieldsParams.language = language;\n }\n \n if (typeof ScFieldStyles !== \"undefined\") {\n SFFieldsParams.ScFieldStyles = ScFieldStyles;\n }\n \n SFFieldsParams.callback = onSafechargeFieldsCreated;\n \n insertSafechargeForm(SFFieldsParams);\n setSafechargeFormInserted(true);\n setDisableErrorAnimation(true);\n } else if (userPaymentSource && !changeCard) {\n // Preload the safecharge scripts to be ready before user clicks on \"Change card\"\n loadSafecharge();\n }\n }\n }, [changeCard, provider]); //changeCard, provider\n\n const handleCardNumberChange = (event: SyntheticInputEvent
) => {\n let value = event.target.value;\n let newCardType;\n\n if (value.length <= 4 && value.length > 0) {\n newCardType = findCardType(value);\n } else if (value.length == 0) {\n setCardType(\"default\");\n setCardNumberLength(16);\n }\n\n if (newCardType && cardType != newCardType.name) {\n setCardType(newCardType.name);\n setCardNumberLength(newCardType.valid_length[0]);\n }\n\n if (value.length - cardNumber.length <= 1) {\n setCardNumber(value);\n }\n };\n\n const handleExpDateChange = (event: SyntheticInputEvent
) => {\n let value = event.target.value;\n if (value.length > expDate.length) {\n setExpDate(formatExpDatetoMMYY(value));\n } else {\n setExpDate(value);\n }\n };\n\n const handleCVCChange = (event: SyntheticInputEvent
) => {\n let value = event.target.value;\n setCVC(value);\n };\n\n const handleCVCKeyPress = (event: SyntheticInputEvent
) => {\n preventEnteringChars(event);\n };\n\n const handleHolderNameChange = (event: SyntheticInputEvent
) => {\n let value = event.target.value.toUpperCase();\n setHolderName(value);\n };\n\n const handleCardNumberKeyPress = (event: SyntheticInputEvent
) => {\n preventEnteringChars(event);\n formatCardNumberOnKeyPress(event);\n };\n\n const handleExpDateKeyUp = (event: SyntheticInputEvent
) => {\n formatExpDate(event);\n };\n\n const handleHolderNameKeyPress = (event: SyntheticInputEvent
) => {\n preventSymbolsOnCCHolderName(event);\n };\n\n const checkIfInputValueIsSelected = (input: HTMLInputElement) => {\n if (typeof input.selectionStart !== \"number\" || typeof input.selectionEnd !== \"number\") {\n return false;\n }\n\n return input.selectionStart !== input.selectionEnd;\n }\n\n const formatCardNumberOnKeyPress = (event: SyntheticInputEvent
) => {\n let value = event.target.value;\n let formatedValue = value.replace(/\\s+/g, \"\");\n const valueIsSelected = checkIfInputValueIsSelected(event.target);\n\n if (valueIsSelected) {\n // Value will be replaced with another number.\n // Check if selected value is single space\n if ((event.target.selectionEnd - event.target.selectionStart === 1) && \n event.target.value.substr(event.target.selectionStart, 1) === \" \") {\n const key = event.which || event.keyCode || event.charCode;\n const pressedCharacter = String.fromCharCode(key);\n // Disable typing number in the selected space when we've reached the max numbers length.\n if (pressedCharacter !== \" \" && formatedValue.length > cardNumberLength - 1) {\n event.preventDefault();\n }\n }\n\n return;\n }\n\n if (formatedValue.length > cardNumberLength - 1) {\n event.preventDefault();\n return;\n }\n\n if (cardType === \"amex\" && formatedValue) {\n if (formatedValue.length === 4 || formatedValue.length === 10) {\n value += \" \";\n setCardNumber(value);\n }\n } else if (formatedValue && formatedValue.length % 4 === 0) {\n value += \" \";\n setCardNumber(value);\n }\n };\n\n const formatCardNumberOnPaste = (event: SyntheticInputEvent
) => {\n let paste = (event.clipboardData || window.clipboardData).getData(\"text\");\n let formattedNumberSubs = [];\n paste = paste.replace(/\\D/g, \"\");\n\n if (paste) {\n let newCardType = findCardType(paste);\n let validCardLength;\n\n if (newCardType) {\n setCardType(newCardType.name);\n validCardLength = newCardType.valid_length[0];\n paste = paste.slice(0, validCardLength);\n\n if (newCardType.name === \"amex\") {\n formattedNumberSubs.push(paste.slice(0, 4));\n formattedNumberSubs.push(paste.slice(4, 10));\n formattedNumberSubs.push(paste.slice(10));\n } else {\n formattedNumberSubs = paste.match(/.{1,4}/g);\n }\n } else {\n setCardType(\"default\");\n setCardNumberLength(16);\n formattedNumberSubs = paste.match(/.{1,4}/g);\n }\n\n let formattedNumber = formattedNumberSubs.join(\" \");\n\n setCardNumber(formattedNumber);\n }\n };\n\n const formatExpDate = (event: SyntheticInputEvent
) => {\n const code = event.keyCode;\n const allowedKeys = [8];\n\n if (allowedKeys.indexOf(code) !== -1) {\n event.preventDefault();\n return;\n }\n\n let value = expDate;\n\n setExpDate(formatExpDatetoMMYY(value));\n };\n\n const validateCreditCardInputs = (callbackOnValidInputs = () => null) => {\n let validExpDateTemp = false;\n let validCardNumberTemp = false;\n let validHolderNameTemp = false;\n let validCVCTemp = false;\n let validInputs = false;\n let filledInputs = false;\n\n const cvcFormated = CVC && CVC.replace(/\\s+/g, \"\");\n\n if (provider === STRIPE_PAYMENT_PROVIDER) {\n validExpDateTemp = validateExpiryDate(expDate);\n validCardNumberTemp = !(!cardNumber || cardNumber.length < 12);\n validHolderNameTemp = validateHolderName(holderName);\n validCVCTemp = !(!cvcFormated || cvcFormated.length < 3);\n filledInputs = cardNumber && expDate && getHolderNameFormatted(holderName) && cvcFormated;\n } else if (provider === SAFECHARGE_PAYMENT_PROVIDER) {\n const validationsRes = validateSafeChargeInputs();\n validCardNumberTemp = validationsRes.validCardNumber;\n validHolderNameTemp = validationsRes.validHolderName;\n validCVCTemp = validationsRes.validCVC;\n validExpDateTemp = validationsRes.validExpDate;\n filledInputs = validationsRes.filledInputs;\n }\n\n setValidExpDate(validExpDateTemp);\n setValidCardNumber(validCardNumberTemp);\n setValidHolderName(validHolderNameTemp);\n setValidCVC(validCVCTemp);\n\n validInputs = validExpDateTemp && validCardNumberTemp && validHolderNameTemp && validCVCTemp;\n\n if (validInputs && filledInputs) {\n if (callbackOnValidInputs && typeof callbackOnValidInputs == \"function\") {\n callbackOnValidInputs();\n }\n\n return true;\n }\n\n setPaymentErrorMessageOnInvalidInputs({filledInputs, validExpDateTemp, validCardNumberTemp, validHolderNameTemp, validCVCTemp});\n return false;\n };\n\n const setPaymentErrorMessageOnInvalidInputs = ({filledInputs, validExpDateTemp, validCardNumberTemp, validHolderNameTemp, validCVCTemp}) => {\n\n // We don't use setErrorMessage() here, because the older UI doesn't need to show any error message here.\n // After we changed the checkout page we need to show this error by using onPaymentErrorMessageChange\n if (!filledInputs) {\n onPaymentErrorMessageChange(__(\"missing_credit_card_details_error\", \"Please provide all card details.\"));\n return;\n }\n\n const invalidFields = [\n {name: \"expDate\" , value: validExpDateTemp}, \n {name: \"cardNumber\", value: validCardNumberTemp}, \n {name: \"holderName\", value: validHolderNameTemp}, \n {name: \"cvc\", value: validCVCTemp}\n ].filter(({value}) => !value);\n \n if (invalidFields.length > 1) {\n onPaymentErrorMessageChange(__(\"invalid_credit_card_details_error\", \"Invalid card details.\"));\n return;\n }\n\n switch(invalidFields[0].name) {\n case \"expDate\":\n onPaymentErrorMessageChange(__(\"invalid_exp_date_error\", \"Invalid card expiration date.\"));\n break;\n case \"cardNumber\":\n onPaymentErrorMessageChange(__(\"invalid_card_number_error\", \"Invalid card number.\"));\n break;\n case \"holderName\":\n onPaymentErrorMessageChange(__(\"invalid_holder_name_error\", \"Invalid card holder name.\"));\n break;\n case \"cvc\":\n onPaymentErrorMessageChange(__(\"invalid_cvc_error\", \"Invalid card security code.\"));\n break;\n }\n };\n\n const handleCardChange = () => {\n setErrorMessage(\"\");\n setChangeCard(!changeCard);\n\n if (provider === \"safecharge\" && changeCard) {\n setSafechargeFormInserted(false);\n }\n };\n\n const togglePaymentLoader = (action: \"show\" | \"hide\") => {\n isLoading = action === \"show\";\n setPaymentLoading(action === \"show\");\n isLoading ? onPaymentProcessing() : afterPaymentProcessing();\n };\n\n const showBadInput = (inputName: \"card_number\" | \"exp_date\" | \"cvc\") => {\n if (inputName === \"card_number\") {\n setValidCardNumber(false);\n }\n\n if (inputName == \"exp_date\") {\n setValidExpDate(false);\n }\n if (inputName == \"cvc\") {\n setValidHolderName(false);\n }\n };\n\n const showPaymentError = message => {\n setErrorMessage(message);\n togglePaymentLoader(\"hide\");\n abbortUserInfoChangeSubscribe();\n stopUserDiff();\n };\n\n const handlePaymentSuccess = (res, successCallback, errorCallback, skipApiUpdate) => {\n isLoading = false;\n afterPaymentActions(res, successCallback, errorCallback, skipApiUpdate);\n };\n\n const handleSubmit = (event: SyntheticInputEvent
) => {\n if (event) {\n event.preventDefault();\n }\n\n setErrorMessage(\"\");\n\n if (paymentLoading) {\n return;\n }\n\n setErrorMessage(\"\");\n \n const params = {\n provider: provider,\n period: period,\n userAuth: auth,\n userId: userId,\n products: planId,\n billingAddress: billingAddress,\n traffic: planId.indexOf(ADDITIONAL_TRAFFIC_ID) !== -1 ? (parseInt(traffic) || (user && getUserTtrafficCount(user, true)) || 0) : 0,\n downgrade: downgrade,\n toggleLoader: togglePaymentLoader,\n showPaymentError,\n showBadInput\n };\n\n if (user?.lastsubscription?.status === \"active\" && user.lastsubscription?.products.indexOf(CUSTOM4TB_PLAN_ID) !== -1 && period !== \"lifetime\") {\n if (user?.planparams?.traffic) {\n params.traffic += user.planparams.traffic\n }\n\n if (user?.planparams?.storage) {\n params.storage = user.planparams.storage\n }\n }\n\n if (discount) {\n params.discountcode = discount;\n }\n\n if (userPaymentSource && !changeCard) {\n if (isLoading) {\n return;\n }\n isLoading = true;\n // business register with saved card\n if (isBusinessTrial) {\n togglePaymentLoader(\"show\");\n handlePaymentSuccess();\n return;\n }\n\n if (userPaymentSource && userPaymentSource.providersourceid) {\n params.providerSourceId = userPaymentSource.providersourceid;\n }\n\n let payments = new SubscriptionUpdate(params);\n\n togglePaymentLoader(\"show\");\n if (provider === \"safecharge\") {\n payments.initSafechargePayment({\n refresh: false,\n callback: handlePaymentSuccess,\n showPaymentConfirmationModal: checkCurrentSubscription(),\n handlePaymentConfirmationCancle: handleModalClose\n });\n } else if (provider === STRIPE_PAYMENT_PROVIDER) {\n payments.updateStripeSubscription({\n refresh: false,\n callback: handlePaymentSuccess,\n showPaymentConfirmationModal: checkCurrentSubscription(),\n handlePaymentConfirmationCancle: handleModalClose\n });\n }\n\n subscribeForUserInfoChange();\n } else {\n setDisableErrorAnimation(false);\n validateCreditCardInputs(() => {\n if (isLoading) {\n return;\n }\n isLoading = true;\n\n togglePaymentLoader(\"show\");\n let newCC = null;\n\n if (provider === \"safecharge\") {\n newCC = {\n cardHolderName: holderName\n };\n } else {\n newCC = {\n cardNumber: cardNumber.replace(/\\s+/g, \"\"),\n cardHolderName: holderName.replace(/\\s+/g, \"\"),\n expirationMonth: getExpiryDatePeriod(expDate, \"month\"),\n expirationYear: getExpiryDatePeriod(expDate, \"year\"),\n CVV: CVC\n };\n }\n\n if (isBusinessTrial) {\n params.authorizeCard = true;\n }\n\n params.newCC = newCC;\n\n let payments = new SubscriptionUpdate(params);\n\n if (isBusinessTrial && provider === STRIPE_PAYMENT_PROVIDER) {\n payments.setStripePaymentSource({\n callback: () => handlePaymentSuccess({ changeCard: changeCard })\n });\n } else if (provider === SAFECHARGE_PAYMENT_PROVIDER) {\n payments.initSafechargePayment({\n refresh: false,\n callback: handlePaymentSuccess,\n showPaymentConfirmationModal: checkCurrentSubscription(),\n handlePaymentConfirmationCancle: handleModalClose\n });\n } else if (provider === STRIPE_PAYMENT_PROVIDER) {\n payments.updateStripeSubscription({\n refresh: false,\n callback: handlePaymentSuccess,\n showPaymentConfirmationModal: checkCurrentSubscription(),\n handlePaymentConfirmationCancle: handleModalClose,\n changeCard: changeCard\n });\n }\n\n subscribeForUserInfoChange();\n });\n }\n };\n\n const handleModalClose = () => {\n setPaymentLoading(false);\n setErrorMessage(\"\"); \n };\n\n const renderForm = () => {\n if (userPaymentSource && RenderPrefilledForm && !changeCard) {\n return (\n
\n )\n }\n\n return (\n
\n );\n };\n\n window.handleSafeChargeSuccess = transactionID => {\n on3DsecureSuccess();\n handlePaymentSuccess(transactionID);\n };\n\n return (\n
\n {renderForm()}\n {/* {showConfirmationModal ? (\n
{\n handleSubmit(event, true);\n }}\n />\n ) : null} */}\n
\n );\n};\n\nexport default CreditCardBox;\n\nconst Message = styled.div`\n min-height: 298px;\n height: 297px;\n display: flex;\n align-items: center;\n text-align: center;\n justify-content: center;\n`;\n","import { useEffect, useRef } from \"react\";\n\nimport { SAFECHARGE_CARD_FIELDS } from \"@pcloud/web-utilities/dist/payments/constants.payments\";\n\n\nexport const useSafeChargeInputsValidations = (({\n provider,\n changeCard = true,\n validateHolderName,\n setDisableErrorAnimation,\n setValidCardNumber, setValidExpDate, setValidCVC, setValidHolderName,\n holderName,\n getHolderNameFormatted\n}) => {\n const holderNameRef = useRef(null);\n\n const scFieldsState = useRef(null);\n\n useEffect(() => {\n return clearSafeChargeFields;\n }, []);\n\n useEffect(() => {\n if (provider !== \"safecharge\" || !changeCard) {\n clearSafeChargeFields();\n return;\n }\n\n if (holderNameRef && holderNameRef.current) {\n holderNameRef.current.addEventListener(\"change\", onChangeHolderName);\n holderNameRef.current.addEventListener(\"focus\", onFocusHolderName);\n holderNameRef.current.addEventListener(\"blur\", onBlurHolderName);\n }\n }, [provider, changeCard]);\n\n const clearSafeChargeFields = () => {\n \n if (holderNameRef && holderNameRef.current) {\n holderNameRef.current.removeEventListener(\"change\", onChangeHolderName);\n holderNameRef.current.removeEventListener(\"focus\", onFocusHolderName);\n holderNameRef.current.removeEventListener(\"blur\", onBlurHolderName);\n }\n\n SAFECHARGE_CARD_FIELDS.forEach((scFieldName) => {\n if (window[scFieldName]) {\n try {\n window[scFieldName].destroy();\n } catch (err) { }\n window[scFieldName] = null;\n }\n });\n };\n\n const onChangeHolderName = (еvt) => {\n if (validateHolderName(еvt.target.value)) {\n setValidScFields(\"holderName\", true);\n }\n };\n\n const onFocusHolderName = () => {\n setValidScFields(\"holderName\", true);\n };\n\n const onBlurHolderName = (еvt) => {\n if (еvt.target.value !== \"\") {\n const valid = validateHolderName(еvt.target.value);\n if (!valid) {\n setDisableErrorAnimation(true); \n }\n setValidScFields(\"holderName\", valid);\n }\n }\n\n const onSafechargeFieldsCreated = () => {\n SAFECHARGE_CARD_FIELDS.forEach((scFieldName) => setScFieldsValidationListeners(scFieldName));\n };\n\n const setScFieldsValidationListeners = (scFieldName: string) => {\n window[scFieldName].on(\"change\", (evt) => {\n if (!scFieldsState.current) {\n scFieldsState.current = {};\n }\n \n scFieldsState.current[scFieldName] = evt;\n if (evt.complete) {\n setValidScFields(scFieldName, true);\n }\n });\n\n window[scFieldName].on(\"focus\", (evt) => {\n setValidScFields(scFieldName, true);\n });\n\n window[scFieldName].on(\"blur\", (evt) => {\n if (scFieldsState.current && scFieldsState.current[scFieldName] && !scFieldsState.current[scFieldName].empty) {\n if (!evt.complete) {\n setDisableErrorAnimation(true);\n }\n setValidScFields(scFieldName, evt.complete);\n }\n });\n };\n\n const setValidScFields = (scFieldName, valid) => {\n switch(scFieldName) {\n case \"SFCardNumber\": \n setValidCardNumber(valid);\n break;\n case \"cardExpiry\": \n setValidExpDate(valid);\n break;\n case \"cardCvc\": \n setValidCVC(valid);\n break;\n case \"holderName\": \n setValidHolderName(valid);\n break;\n }\n }\n\n const validateSafeChargeInputs = () => {\n const validationRes = {};\n validationRes.validCardNumber = scFieldsState.current && scFieldsState.current.SFCardNumber && scFieldsState.current.SFCardNumber.complete;\n validationRes.validExpDate = scFieldsState.current && scFieldsState.current.cardExpiry && scFieldsState.current.cardExpiry.complete;\n validationRes.validCVC = scFieldsState.current && scFieldsState.current.cardCvc && scFieldsState.current.cardCvc.complete;\n validationRes.validHolderName = validateHolderName(holderName);\n validationRes.filledInputs = scFieldsState.current && scFieldsState.current.SFCardNumber && !scFieldsState.current.SFCardNumber.empty && \n scFieldsState.current.cardExpiry && !scFieldsState.current.cardExpiry.empty && \n scFieldsState.current.cardCvc && !scFieldsState.current.cardCvc.empty && \n getHolderNameFormatted(holderName);\n\n return validationRes;\n };\n\n return {\n holderNameRef,\n onSafechargeFieldsCreated,\n validateSafeChargeInputs\n };\n\n});","import styled, { css, keyframes } from \"styled-components\";\n\nconst spin = keyframes`\n 0% {\n transform:rotate(0deg);\n }\n 100% {\n transform:rotate(360deg);\n }\n`;\n\nconst fadein = keyframes`\n 0% {\n opacity: 0;\n display: block;\n }\n 100% {\n opacity: 1;\n }\n`;\n\nconst fadeout = keyframes`\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n display: none;\n }\n`;\n\nconst SpinContainer = styled.div`\n position: absolute;\n width: ${({width}) => width || 64}px;\n height: ${({height}) => height || 64}px;\n z-index: 3;\n /* background-color: inherit; */\n animation-name: ${spin};\n animation-duration: 600ms;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n z-index: 100;\n\n ${({position}) => {\n if (position === \"right\") {\n return css`\n right: 0;\n top: 50%;\n margin: -${({height}) => (height / 2) || 32}px 0 0 -${({width}) => (width) || 64}px;\n `;\n } else {\n return css`\n left: 50%;\n top: 50%;\n margin: -${({height}) => (height / 2) || 32}px 0 0 -${({width}) => (width / 2) || 32}px;\n `;\n }\n }}\n`;\n\nexport default SpinContainer;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgLoadingIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 64.001,\n height: 63.999\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#e4e4e4\",\n d: \"M32.001 64a31.8 31.8 0 01-12.456-2.515 31.893 31.893 0 01-10.171-6.858 31.89 31.89 0 01-6.858-10.171A31.8 31.8 0 01.001 32a31.806 31.806 0 012.515-12.456A31.9 31.9 0 019.374 9.372a31.893 31.893 0 0110.171-6.858A31.8 31.8 0 0132.001 0a31.8 31.8 0 0112.456 2.515 31.883 31.883 0 0110.171 6.858 31.892 31.892 0 016.859 10.172A31.806 31.806 0 0164.001 32a31.8 31.8 0 01-2.515 12.455 31.892 31.892 0 01-6.859 10.171 31.883 31.883 0 01-10.171 6.858A31.8 31.8 0 0132.001 64zm0-59a26.833 26.833 0 00-10.509 2.122 26.921 26.921 0 00-8.583 5.786 26.907 26.907 0 00-5.786 8.582A26.826 26.826 0 005.001 32a26.826 26.826 0 002.122 10.51 26.908 26.908 0 005.786 8.582 26.922 26.922 0 008.583 5.786A26.833 26.833 0 0032.001 59a26.83 26.83 0 0010.51-2.122 26.914 26.914 0 008.583-5.786 26.922 26.922 0 005.786-8.582A26.837 26.837 0 0059.001 32a26.837 26.837 0 00-2.122-10.51 26.922 26.922 0 00-5.786-8.582 26.914 26.914 0 00-8.583-5.786A26.83 26.83 0 0032.001 5z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"loading-icon_svg__color-path\",\n fill: \"#bc3232\",\n d: \"M.051 32H0v-.499c0-.055 0-.109.005-.163a31.75 31.75 0 012.509-11.793A31.932 31.932 0 019.372 9.373a31.873 31.873 0 0110.171-6.858A31.751 31.751 0 0131.307.007c.064 0 .129-.007.194-.007h.498v.05a2.5 2.5 0 012 2.451 2.5 2.5 0 01-2 2.449V5h-.009a26.84 26.84 0 00-10.5 2.12 26.946 26.946 0 00-8.582 5.786 26.942 26.942 0 00-5.786 8.584A26.808 26.808 0 005 32h-.048a2.5 2.5 0 01-2.451 2 2.5 2.5 0 01-2.45-2z\"\n })));\n}\nexport default SvgLoadingIcon;","//@flow\n\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { hiDPI } from \"polished\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport { __ } from \"../../lib/utils\";\nimport SpinContainer from \"../SpinContainer\";\nimport { ColorType } from \"../../lib/types/dataTypes.components\";\nimport { ButtonWithIcon } from \"@pcloud/web-utilities/dist/resources/components/ButtonDefault\";\nimport { Error } from \"./SharedStyledComponents\";\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\n\nimport LoadingIcon from \"../../svg/loading-icon.svg\";\n\ntype PaypalBoxType = {\n paypalLoading: boolean,\n color: ColorType,\n errorMessage: string,\n paypalEmail: string,\n handleLogout: () => void,\n handleSubmit: () => void,\n showDisclaimer: boolean,\n theme?: string\n};\n\nconst PaypalTemplate = ({\n paypalLoading,\n color,\n errorMessage,\n paypalEmail,\n handleLogout,\n handleSubmit,\n showDisclaimer,\n theme\n}: PaypalBoxType) => {\n return (\n
\n
\n
{}}\n onExited={() => {}}\n appear\n >\n
\n
\n
\n
\n
\n \n
\n
\n {errorMessage ? (\n
{errorMessage}
\n ) : null}\n
\n {paypalEmail ? (\n
\n
{paypalEmail}
\n
{__(\"header_logout\")}
\n
\n ) : null}\n
\n
\n {paypalEmail ? (\n
\n ) : (\n
\n )}\n \n {showDisclaimer ? (\n
pCloud International AG | 74 Zugerstrasse Str, 6340 Baar, Switzerland
\n ) : null}\n
\n {/*
*/}\n
{__(\"secure_ssl_payment_short\")}
\n
\n \n );\n};\n\nexport default PaypalTemplate;\n\nconst Wrapper = styled.div`\n position: relative;\n min-height: 255px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n`;\n\nconst paypalImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/paypal@2x.png' : 'images/paypal.png');\nconst PaypalIcon = styled.div`\n width: 160px;\n height: 160px;\n background-position: center;\n background-repeat: no-repeat;\n background-size: contain;\n display: inline-block;\n background-image: url(${paypalImg});\n`;\n\nconst ButtonWrapper = styled.div`\n margin-top: -7px;\n position: relative;\n z-index: 0;\n\n #paypal-button {\n line-height: 1;\n z-index: 0;\n position: relative;\n overflow: hidden;\n border-radius: 7px;\n height: 45px;\n }\n`;\n\nconst SecureText = styled.div`\n /* font-family: \"Roboto\", sans-serif; */\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: normal;\n text-align: center;\n color: #999999;\n margin: 6px 0;\n`;\n\nconst secureIconImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/easter2020/secure@2x.png' : 'images/easter2020/secure.png');\nconst SecureIcon = styled.div`\n display: inline-block;\n width: 21px;\n height: 21px;\n background-repeat: no-repeat;\n background-size: 21px 21px;\n background-position: center;\n background-image: url(${secureIconImg});\n position: relative;\n top: 5px;\n margin-right: 10px;\n`;\n\nconst ExistingEmail = styled.div`\n position: absolute;\n bottom: 15px;\n left: 0px;\n display: inline-block;\n color: #888;\n font-size: 12px;\n min-height: 12px;\n line-height: 12px;\n /* font-family: \"Roboto\", sans-serif; */\n font-weight: bold;\n width: 100%;\n text-align: center;\n`;\n\nconst Logout = styled.span`\n margin-left: 8px;\n color: ${({ color }) => (color && COLORS[color] ? COLORS[color].mainColor : \"#17bed0\")};\n font-weight: bold;\n cursor: pointer;\n`;\n\nconst PaypalError = styled(Error)`\n position: absolute;\n top: 0px;\n left: 0px;\n`;\n\nconst DisclaimerText = styled(SecureText)`\n font-size: 10px;\n margin-top: 16px;\n`;\n\nconst Link = styled.a`\n cursor: pointer;\n text-decoration: none;\n font-weight: bold;\n`;\n\nconst AnimationContainer = styled.div`\n background-image: inherit;\n background-color: inherit;\n\n .fading-enter,\n .fade-appear {\n opacity: 1;\n }\n .fading-exit {\n opacity: 0;\n }\n .fading-enter-active,\n .fade-appear-active {\n opacity: 1;\n }\n .fading-exit-active {\n opacity: 0;\n }\n .fading-enter-active,\n .fade-appear-active,\n .fading-exit-active {\n transition: all 400ms ease-in-out;\n }\n`;\n\nconst LoaderWrapper = styled.div`\n position: absolute;\n /* min-height: 400px; */\n // height: calc(100% - 130px);\n min-height: 400px;\n width: 100%;\n left: 0px;\n background-image: inherit;\n background-color: inherit;\n z-index: 1;\n\n .loading-icon_svg__color-path {\n fill: ${({ color }) => (color && COLORS[color] ? (COLORS[color].loadingIconColor ? COLORS[color].loadingIconColor : COLORS[color].mainColor) : \"#17bed0\")};\n }\n`;\n","//@flow\n\nimport React, { useState, useEffect, useRef } from \"react\";\n\nimport { SubscriptionUpdate } from \"../../lib/payments\";\nimport { PlanIDType, ColorType, Userinfo } from \"../../lib/types/dataTypes.components\";\n\nimport PaypalTemplate from \"./PaypalTemplate\";\n// import PaymentConfirmationModal from \"../Modals/PaymentConfirmationModal\";\nimport usePrevious from \"@pcloud/web-utilities/dist/hooks/usePrevious\";\n\nimport { getUserTtrafficCount } from \"@pcloud/web-utilities/dist/plans/utils.plans\";\nimport { ADDITIONAL_TRAFFIC_ID, CUSTOM4TB_PLAN_ID } from \"@pcloud/web-utilities/dist/plans/constants.plans\";\n\ntype PaypalBoxType = {\n auth: string,\n user: Userinfo,\n planId: PlanIDType | Array
,\n period: \"month\" | \"year\" | \"lifetime\",\n userPaymentSource: {\n email: string\n },\n afterPaymentActions: () => void,\n discount?: string,\n color?: ColorType,\n onPaymentProcessing?: () => void,\n afterPaymentProcessing?: () => void,\n showDisclaimer: boolean,\n isBusinessTrial: boolean,\n paypalButtonLabel: string,\n getCurrentStorageCount: () => number,\n RenderTemplate: any,\n payButtonClicked?: boolean,\n isMobile?: boolean,\n hidePaypalButton?: boolean,\n setDisabledPlanOptions: () => void,\n setDisabledButton: () => void,\n removePaypalPaymentSource: () => void,\n theme?: string,\n traffic: string | number,\n onPaymentErrorMessageChange: (newErrorMessage: string) => void,\n downgrade?: boolean\n};\n\nconst PaypalBox = ({\n auth,\n user = null, // Business accounts doesn't pass this param. \n planId = [],\n period,\n discount,\n userPaymentSource,\n afterPaymentActions,\n color = \"cyan\",\n onPaymentProcessing = () => {},\n afterPaymentProcessing = () => {},\n showDisclaimer,\n isBusinessTrial = false,\n paypalButtonLabel = \"\",\n RenderTemplate = PaypalTemplate,\n setExternalButtonLoading = () => {},\n payButtonClicked,\n checkCurrentSubscription = () => {},\n isMobile = false,\n hidePaypalButton = false,\n setDisabledPlanOptions = () => {},\n setDisabledButton = () => {},\n removePaypalPaymentSource = () => {},\n theme,\n traffic,\n subscribeForUserInfoChange = () => {},\n abbortUserInfoChangeSubscribe = () => {},\n stopUserDiff = () => {},\n onPaymentErrorMessageChange = (newErrorMessage) => null,\n downgrade = false\n}: PaypalBoxType) => {\n const [errorMessage, setErrorMessage] = useState(\"\");\n const [paypalLoading, setPaypalLoading] = useState(true);\n const [paymentLoading, setPaymentLoading] = useState(false);\n const [paypalEmail, setPaypalEmail] = useState();\n const [showConfirmationModal, setShowConfirmationModal] = useState(false);\n\n const payments = useRef({value: null});\n const prevIsMobile = usePrevious(isMobile);\n\n const [fireAfterPaymentActions, setFireAfterPaymentActions] = useState(null);\n\n useEffect(() => {\n const params = {\n provider: \"paypal\",\n period: period,\n userAuth: auth,\n products: planId,\n billingAddress: {},\n traffic: planId.indexOf(ADDITIONAL_TRAFFIC_ID) !== -1 ? (parseInt(traffic) || (user && getUserTtrafficCount(user, true)) || 0) : 0,\n downgrade: downgrade,\n isBusinessTrial: isBusinessTrial,\n toggleLoader: togglePaymentLoader,\n showPaymentError,\n showBadInput: () => {},\n onBraintreeCreatePayment: subscribeForUserInfoChange\n };\n\n if (user?.lastsubscription?.status === \"active\" && user.lastsubscription?.products.indexOf(CUSTOM4TB_PLAN_ID) !== -1 && period !== \"lifetime\") {\n if (user?.planparams?.traffic) {\n params.traffic += user.planparams.traffic\n }\n\n if (user?.planparams?.storage) {\n params.storage = user.planparams.storage\n }\n }\n\n if (discount) {\n params.discountcode = discount;\n }\n\n payments.current.value = new SubscriptionUpdate(params);\n }, []);\n\n useEffect(() => {\n if (!payments.current.value) {\n return;\n }\n\n if (discount) {\n payments.current.value.paymentInfo.discountcode = discount;\n } else {\n delete payments.current.value.paymentInfo.discountcode;\n }\n }, [discount, payments.current.value]);\n\n useEffect(() => {\n setDisabledButton(paymentLoading || paypalLoading);\n setDisabledPlanOptions(paymentLoading || paypalLoading);\n }, [paymentLoading, paypalLoading]); //[paymentLoading, paypalLoading]\n\n // We use this hook to fire afterPaymentActions in the context of last rendered component values. \n // Otherwise planId refers to the initially loaded value.\n useEffect(() => {\n if (fireAfterPaymentActions === null) {\n // Initially called.\n return;\n }\n\n const {res, successCallback, errorCallback, skipApiUpdate} = fireAfterPaymentActions;\n afterPaymentActions(res, successCallback, errorCallback, skipApiUpdate);\n }, [fireAfterPaymentActions]);\n\n useEffect(() => {\n if (!payments.current.value || paypalEmail || hidePaypalButton || isMobile === prevIsMobile) {\n return;\n }\n\n renderPaypalButton();\n }, [isMobile, paypalEmail, hidePaypalButton, payments.current.value]);\n\n useEffect(() => {\n if (!payments.current.value) {\n return;\n }\n\n payments.current.value.paymentInfo.products = planId.join(\",\");\n payments.current.value.paymentInfo.traffic = planId.indexOf(ADDITIONAL_TRAFFIC_ID) !== -1 ? (traffic || (user && getUserTtrafficCount(user, true)) || 0) : 0;\n\n }, [planId, payments.current.value]);\n\n useEffect(() => {\n onPaymentErrorMessageChange(errorMessage);\n }, [errorMessage]);\n\n useEffect(() => {\n if (payButtonClicked) {\n handleSubmit();\n }\n }, [payButtonClicked]); // [payButtonClicked]\n\n useEffect(() => {\n if (userPaymentSource && userPaymentSource.email) {\n setPaypalEmail(userPaymentSource.email);\n setPaypalLoading(false);\n }\n }, [userPaymentSource]); //[userPaymentSource]\n\n const renderPaypalButton = () => {\n setPaypalLoading(true);\n setExternalButtonLoading(true);\n\n payments.current.value.getTokenBraintree({\n refresh: false,\n label: paypalButtonLabel,\n showPaymentConfirmationModal: checkCurrentSubscription(),\n callback: (res, successCallback, errorCallback, skipApiUpdate) => setFireAfterPaymentActions({res, successCallback, errorCallback, skipApiUpdate}),\n onReady: () => {\n setPaypalLoading(false);\n setExternalButtonLoading(false);\n }\n });\n }\n\n const handlePaypalLogout = () => {\n setPaypalEmail(\"\");\n setErrorMessage(\"\");\n removePaypalPaymentSource();\n renderPaypalButton();\n };\n\n const handleSubmit = () => {\n if (paypalLoading) {\n return;\n }\n\n setErrorMessage(\"\");\n\n if (paypalEmail) {\n togglePaymentLoader(\"show\");\n\n if (isBusinessTrial) {\n afterPaymentActions();\n } else {\n subscribeForUserInfoChange();\n payments.current.value.createBraintreePayment({\n refresh: false,\n callback: afterPaymentActions,\n showPaymentConfirmationModal: checkCurrentSubscription()\n });\n }\n } else {\n subscribeForUserInfoChange();\n if (payments.current.value.checkout) {\n togglePaymentLoader(\"show\");\n payments.current.value.checkout.paypal.initAuthFlow();\n }\n }\n };\n\n const handleModalClose = () => {\n setShowConfirmationModal(false);\n };\n\n const togglePaymentLoader = (action: \"show\" | \"hide\") => {\n let isLoading = action === \"show\";\n setPaymentLoading(action === \"show\");\n setPaypalLoading(action === \"show\");\n isLoading ? onPaymentProcessing() : afterPaymentProcessing();\n };\n\n const showPaymentError = message => {\n setPaypalLoading(false);\n setErrorMessage(message);\n abbortUserInfoChangeSubscribe();\n stopUserDiff();\n };\n\n return (\n
\n
\n
\n );\n};\n\nexport default PaypalBox;\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCheckIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 14 10\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"check-icon_svg__st0\",\n d: \"M.4 5.4c-.6-.6-.6-1.5 0-2.1s1.5-.6 2.1 0l3.1 3.2 5.9-6c.6-.6 1.5-.6 2.1 0s.6 1.5 0 2.1l-6.9 7c-.6.6-1.5.6-2.1 0L.4 5.4z\"\n })));\n}\nexport default SvgCheckIcon;","import styled, { css } from \"styled-components\";\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\n\nexport const textGradientCSS = css`\n background: var(--text-gradient);\n background-clip: text;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n width: fit-content;\n`;\n\nexport const sectionTitleCSS = css`\n font-size: 36px;\n font-weight: 700;\n letter-spacing: -0.36px;\n`;\n\nexport const baseButtonCSS = css`\n border-radius: var(--button-border-radius);\n height: 48px;\n line-height: 48px;\n font-size: 15px;\n font-weight: 700;\n box-sizing: border-box;\n display: block;\n text-align: center;\n border: none;\n text-decoration: none;\n cursor: pointer;\n padding: 0 var(--spacing-md);\n`;\n\n/* ===== Plans.js ===== */\nexport const LoadingAlign = styled.div`\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n margin: 0px auto;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n z-index: 1;\n border: solid 1px #f0f0f0;\n background-color: #fcfcfc;\n border-radius: 17px;\n transition: all 400ms ease-in-out;\n\n @media (max-width: 768px) {\n border-radius: 0px;\n }\n`;\n\nexport const RelativeContainer = styled.div`\n position: relative;\n width: 100%;\n margin: 0 auto;\n`;\n\nexport const PlansContainerWrapper = styled.div`\n --old-price-color: var(--color-gray);\n --button-family-background: url(\"${(typeof cdnPath !== 'undefined' ? cdnPath : '/')}images/cyan-vector.svg\") right 18px center no-repeat, linear-gradient(#fff, #fff) padding-box, var(--family-gradient) border-box;\n --button-plan-action-background: url(\"${(typeof cdnPath !== 'undefined' ? cdnPath : '/')}images/white-vector.svg\") right 18px center no-repeat var(--button-color);\n --pricing-page-content-width: 1180px;\n --pricing-page-content-offset: calc(var(--spacing-lg) * 2);\n\n @media (max-width: 360px) {\n --pricing-page-content-offset: calc(var(--spacing-sm) * 2);\n }\n\n\n display: flex;\n flex-direction: column;\n background: ${({background}) => background ? background : `var(--surface-primary)`};\n align-items: center;\n box-sizing: border-box;\n text-align: left;\n`;\n\nexport const PlansContainerWrapperVer0 = styled.div`\n --pricing-page-content-width: 1180px;\n --pricing-page-content-offset: 40px;\n \n @media (max-width: 360px) {\n --pricing-page-content-offset: 20px;\n }\n`;\n\nexport const PlansPageTitle = styled.div`\n padding: var(--spacing-2xl) var(--spacing-lg) var(--spacing-xl) var(--spacing-lg);\n background: background: ${({background}) => background ? background : `linear-gradient(180deg, #FFF 2.16%, var(--surface-primary) 100%)`};\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n\n .headline-wrapper {\n max-width: var(--pricing-page-content-width);\n width: calc(100% - var(--pricing-page-content-offset));\n align-items: center;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-sm);\n text-align: center;\n margin-bottom: var(--spacing-sm);\n }\n\n @media (max-width: 768px) {\n padding-bottom: var(--spacing-md);\n }\n\n .title {\n font-size: 42px;\n font-weight: 600;\n letter-spacing: -0.42px;\n ${textGradientCSS}\n\n @media (max-width: 768px) {\n font-size: 36px;\n letter-spacing: -0.36px;\n }\n }\n\n .sub-title {\n font-size: 20px;\n font-weight: 400;\n color: var(--color-base-black);\n\n @media (max-width: 768px) {\n font-size: 18px;\n line-height: 24px;\n }\n }\n`;\n\nexport const PlansWrapper = styled.div`\n max-width: var(--pricing-page-content-width);\n width: calc(100% - var(--pricing-page-content-offset));\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nexport const PlansWrapperVer0 = styled.div`\n max-width: var(--pricing-page-content-width);\n width: calc(100% - var(--pricing-page-content-offset));\n box-sizing: border-box;\n margin: 0 auto;\n`;\n\nexport const PeriodsWrapper = styled.div`\n margin-bottom: var(--spaces-6);\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n\n @media (max-width: 1030px) {\n margin-bottom: var(--spacing-lg);\n }\n\n .periods-toggle {\n margin-bottom: 0px;\n }\n`;\n\nexport const PeriodsWrapperVer0 = styled.div`\n margin-top: 50px;\n margin-bottom: 30px;\n\n .periods-toggle {\n margin-bottom: 0px;\n }\n\n @media (max-width: 768px) {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n`;\n\nexport const PlanBoxesWrapper = styled.div`\n display: flex;\n gap: var(--spacing-lg);\n width: 100%;\n margin: 0 auto;\n justify-content: center;\n\n @media (max-width: 1030px) {\n flex-direction: column-reverse;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-md);\n }\n\n .plan-action-button {\n ${baseButtonCSS}\n background: var(--button-plan-action-background);\n width: 100%;\n color: #FFF;\n\n span > span {\n display: none;\n }\n }\n`;\n\nexport const PlanBoxesWrapperVer0 = styled.div`\n display: flex;\n gap: 26px;\n width: 100%;\n margin: 0 auto;\n justify-content: center;\n\n @media (max-width: 1030px) {\n flex-direction: column;\n align-items: center;\n justify-content: center;\n } \n`;\n\nexport const LoaderWrapper = styled.div`\n position: relative;\n display: inline-block;\n width: 64px;\n height: 64px;\n position: relative;\n\n .loading-icon_svg__color-path {\n fill: #17bed0;\n }\n`;\n\nexport const LoadingPlansText = styled.div`\n font-size: 15px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.2;\n letter-spacing: normal;\n text-align: center;\n color: #000;\n margin-top: 10px;\n`;\n\nexport const ArrowBoxWrapper = styled.div`\n margin: 0 auto var(--spacing-md) auto;\n text-align: center;\n\n &.random_girl {\n @media (max-width: 1150px) {\n display: none;\n }\n \n position: absolute;\n bottom: -241px;\n right: 0px;\n\n .best_valued {\n margin-left: var(--spacing-sm);\n }\n }\n`;\n\nexport const ArrowBoxWrapperVer0 = styled.div`\n margin: 0 auto 10px auto;\n text-align: center;\n\n &.random_girl {\n @media (max-width: 1150px) {\n display: none;\n }\n \n position: absolute;\n bottom: -241px;\n right: 0px;\n\n .best_valued {\n margin-left: 5px;\n }\n }\n`;\n\nexport const ArrowCompare = styled.img`\n position: relative;\n top: 9px;\n margin: 0px 13px;\n max-width: 100%;\n`;\n\nexport const ArrowBoxBestValued = styled.span`\n font-family: 'Marck Script',cursive;\n font-size: 20px;\n font-weight: normal;\n font-style: normal;\n font-stretch: normal;\n line-height: 1.2;\n letter-spacing: normal;\n text-align: right;\n color: #999999;\n`;\n\nexport const PeriodsDisclaimer = styled.div`\n color: #999999;\n font-size: 14px;\n line-height: 16px;\n text-align: center;\n margin-top: 11px;\n opacity: ${({ show }) => show ? 1 : 0};\n transition: opacity 250ms ease-in-out;\n`;\n\nexport const PaymentPartner = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 12px;\n border: 0.5px solid var(--box-border);\n background: #FFF;\n box-shadow: 3px 4px 5px 0px rgba(0, 0, 0, 0.02);\n padding: var(--spacing-lg) var(--spacing-xl);\n gap: var(--spacing-xl);\n width: var(--pricing-page-content-width);\n max-width: calc(100% - var(--pricing-page-content-offset));\n box-sizing: border-box;\n margin-bottom: var(--spacing-lg);\n\n @media (max-width: 768px) {\n margin-top: var(--spacing-md);\n padding: var(--spacing-xl);\n flex-direction: column;\n border-radius: 24px;\n box-shadow: 5px 7px 25px 0px rgba(0, 0, 0, 0.05);\n gap: var(--spacing-md);\n }\n\n .payment-partner-text-container {\n font-size: 17px;\n font-weight: 400;\n letter-spacing: -0.17px;\n margin: 0;\n }\n`;\n\nexport const PaymentPartnerVer0 = styled.div`\n background: #fff;\n border: 1px solid #eee;\n text-align: center;\n font-size: 14px;\n padding: 13px 20px;\n margin: 10px auto;\n width: 100%;\n max-width: 826px;\n box-sizing: border-box;\n border-radius: 7px;\n\n &:last-of-type {\n margin: 10px auto 40px;\n }\n\n display: flex;\n align-items: center;\n\n @media (max-width: 768px) {\n flex-direction: column;\n justify-content: center;\n }\n`;\n\nexport const GogoLogo = styled.div`\n height: 55px;\n width: 200px;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 200px 55px;\n background-image: url(\"${(typeof cdnPath !== 'undefined' ? cdnPath : '/')}images/plans/gogo-mini.png\");\n flex-shrink: 0;\n`;\n\nexport const GogoLogoVer0 = styled.div`\n display: inline-block;\n height: 55px;\n width: 200px;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 200px 55px;\n background-image: url(\"${(typeof cdnPath !== 'undefined' ? cdnPath : '/')}images/plans/gogo-mini.png\");\n flex-shrink: 0;\n\n @media (max-width: 768px) {\n margin: 0 auto 10px auto;\n }\n`;\n\nexport const JapaneseCertification = styled.div`\n box-sizing: border-box;\n display: flex;\n align-items: center;\n margin-bottom: var(--spacing-2xl);\n width: var(--pricing-page-content-width);\n max-width: calc(100% - var(--pricing-page-content-offset));\n box-sizing: border-box;\n font-size: 15px;\n font-weight: 400;\n letter-spacing: -0.15px;\n gap: var(--spacing-sm);\n \n @media (max-width: 768px) {\n font-size: 13px;\n letter-spacing: -0.13px;\n align-items: flex-start;\n }\n`;\n\nexport const JapaneseCertificationVer0 = styled.div`\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.4;\n letter-spacing: normal;\n color: #707070;\n margin: 30px auto;\n box-sizing: border-box;\n max-width: 826px;\n display: flex;\n gap: 4px;\n \n @media (max-width: 768px) {\n padding: 0px 20px;\n }\n`;\n\nexport const JapaneseCloudAwardContainer = styled.div`\n width: var(--pricing-page-content-width);\n max-width: calc(100% - var(--pricing-page-content-offset));\n margin-top: var(--spacing-2xl);\n margin-bottom: var(--spacing-lg);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-md);\n`;\n\nexport const JapaneseCloudAwardContainerVer0 = styled.div`\n border-bottom: 1px solid #E4E4E4;\n padding: 47px 15px 72px 15px;\n`;\n\nexport const JapaneseCloudAwardContainerTitle = styled.div`\n color: var(--color-base-black);\n font-size: 32px;\n font-weight: 700;\n`;\n\nexport const JapaneseCloudAwardContainerTitleVer0 = styled.h2`\n color: #2C2C2C;\n font-family: Roboto;\n font-size: 28px;\n font-style: normal;\n font-weight: 700;\n line-height: normal;\n text-align: center;\n margin-bottom: 12px;\n letter-spacing: normal;\n`;\n\nexport const ReadMoreToggle = styled.span`\n display: flex;\n align-items: center;\n gap: var(--spacing-sm);\n color: var(--text-link);\n font-size: 15px;\n font-weight: 400;\n line-height: 20px; \n cursor: pointer;\n`;\n\nexport const ReadMoreToggleVer0 = styled.span`\n color: #17BED0;\n text-align: center;\n font-family: Roboto;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: normal;\n text-decoration-line: underline;\n margin: 0 auto;\n display: block;\n cursor: pointer;\n`;\n\nexport const JapaneseCertificationDescription = styled.div`\n color: var(--color-base-black);\n font-size: 15px;\n font-weight: 400;\n line-height: 20px; \n`;\n\nexport const JapaneseCertificationDescriptionVer0 = styled.div`\n color: #707070;\n text-align: center;\n font-family: Roboto;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: normal;\n margin-bottom: 12px;\n max-width: 830px;\n margin: 0 auto 12px auto;\n`;\n\nexport const CertificatesWrapper = styled.div`\n display: grid;\n grid-template-columns: 1fr 1fr;\n column-gap: var(--spacing-lg);\n margin-top: var(--spacing-lg);\n\n @media (max-width: 768px) {\n max-width: 570px;\n }\n`;\n\nexport const CertificatesWrapperVer0 = styled.div`\n display: flex;\n gap: 40px;\n margin: 72px auto 0 auto;\n justify-content: center;\n flex-wrap: wrap;\n @media (max-width: 768px) {\n max-width: 570px;\n }\n`;\n\nexport const CertificateImage = styled.img`\n cursor: pointer;\n width: 100%;\n border-radius: 12px;\n box-shadow: 3px 4px 5px 0px rgba(0, 0, 0, 0.02);\n`;\n\nexport const CertificateImageVer0 = styled.img`\n cursor: pointer;\n width: 570px;\n border-radius: 12px;\n @media (max-width: 768px) {\n width: 100%;\n }\n`;\n\n/* ===== PlanBox.js ===== */\nexport const PlanBoxOuterWrapper = styled.div`\n background-color: #ffffff;\n border: 0.5px solid var(--box-border);\n box-shadow: 3px 4px 5px 0px rgba(0, 0, 0, 0.02);\n border-radius: ${(props) => (props.borderRadius ? `${props.borderRadius}px` : \"0px\")};\n width: 100%;\n max-width: var(--plan-box-max-width);\n box-sizing: border-box;\n transition: box-shadow 200ms ease-in-out;\n\n overflow: ${(props) => (props.showBestPriceByRandomGirl ? \"unset\" : \"hidden\")};\n @media (max-width: 1150px) {\n overflow: hidden;\n }\n\n &:hover {\n box-shadow: ${({ disabled }) => {\n return disabled ? \"none\" : \"0px 2px 14px -6px rgba(0,0,0,0.44)\";\n }};\n cursor: ${({ disabled }) => {\n return disabled ? \"default\" : \"pointer\";\n }};\n \n div {\n cursor: ${({ disabled }) => {\n return disabled ? \"default\" : \"pointer\";\n }};\n }\n }\n\n &:last-of-type {\n .box-title {\n color: var(--color-success);\n }\n\n .plans-feature svg:first-child path {\n fill: var(--color-success);\n }\n\n .plan-action-button {\n background-color: var(--color-success);\n }\n }\n`;\n\nexport const PlanBoxOuterWrapperVer0 = styled.div`\n background-color: #ffffff;\n border-radius: ${(props) => (props.borderRadius ? `${props.borderRadius}px` : \"0px\")};\n width: 100%;\n max-width: 400px;\n box-sizing: border-box;\n\n overflow: ${(props) => (props.showBestPriceByRandomGirl ? \"unset\" : \"hidden\")};\n @media (max-width: 1150px) {\n overflow: hidden;\n }\n\n &:first-of-type {\n margin-top: 0px;\n margin-left: auto;\n }\n\n &:last-of-type {\n margin-bottom: 0px;\n margin-right: auto;\n }\n\n &:hover {\n box-shadow: ${({ disabled }) => {\n return disabled ? \"none\" : \"0px 2px 14px -6px rgba(0,0,0,0.44)\";\n }};\n cursor: ${({ disabled }) => {\n return disabled ? \"default\" : \"pointer\";\n }};\n \n div {\n cursor: ${({ disabled }) => {\n return disabled ? \"default\" : \"pointer\";\n }};\n }\n }\n\n @media (max-width: 768px) {\n margin: 8px auto;\n border-radius: 0px;\n }\n\n @media (max-width: 1030px) {\n margin: 8px auto;\n }\n`;\n\nexport const PlanBoxWrapper = styled.div`\n position: relative;\n width: 100%;\n max-width: var(--plan-box-max-width);\n box-sizing: border-box;\n padding: var(--spacing-xl);\n border-radius: ${(props) => (props.borderRadius ? `${props.borderRadius}px` : \"0px\")};\n box-shadow: ${({ newLabel, color, disabled }) => {\n if (disabled && newLabel) {\n return \"inset 0px 0px 0px 4px #cccccc\";\n }\n if (newLabel) {\n return `inset 0px 0px 0px 4px ${COLORS[color].mainColor}`;\n }\n return \"none\";\n }};\n\n .box-discount {\n border-top-right-radius: ${(props) => (props.showBestPriceByRandomGirl && props.borderRadius ? `${props.borderRadius}px` : \"unset\")};\n }\n \n /* Due to long labels in RU */\n .plan-action-button {\n padding: 0 16px;\n }\n\n .tooltip {\n padding: 15px 20px;\n max-width: 250px;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.35;\n font-weight: 400;\n }\n\n @media (min-width: 1031px) and (max-width: 1144px) {\n padding: var(--spacing-lg);\n }\n`;\n\nexport const PlanBoxWrapperVer0 = styled.div`\n position: relative;\n width: 100%;\n max-width: 400px;\n box-sizing: border-box;\n padding: ${({showBestPriceByRandomGirl}) => showBestPriceByRandomGirl ? \"40px 30px 46px 30px\" : \"40px 40px 46px 40px\"};\n border-radius: ${(props) => (props.borderRadius ? `${props.borderRadius}px` : \"0px\")};\n box-shadow: ${({ newLabel, color, disabled }) => {\n if (disabled && newLabel) {\n return \"inset 0px 0px 0px 4px #cccccc\";\n }\n if (newLabel) {\n return `inset 0px 0px 0px 4px ${COLORS[color].mainColor}`;\n }\n return \"none\";\n }};\n\n .box-discount {\n border-top-right-radius: ${(props) => (props.showBestPriceByRandomGirl && props.borderRadius ? `${props.borderRadius}px` : \"unset\")};\n }\n \n /* Due to long labels in RU */\n .plan-action-button {\n padding: 0 16px;\n }\n\n &:first-of-type {\n margin-left: 0px;\n }\n\n &:last-of-type {\n margin-right: 0px;\n }\n\n @media (max-width: 768px) {\n padding: 25px 20px;\n border-radius: 0px;\n\n .box-discount {\n border-top-right-radius: 0;\n }\n }\n\n .tooltip {\n padding: 15px 20px;\n max-width: 250px;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.35;\n font-weight: 400;\n }\n\n .feature-info-icon {\n margin-left: 2px;\n }\n\n @media (min-width: 1031px) and (max-width: 1144px) {\n padding: 20px 20px 26px 20px;\n }\n\n ${({showBestPriceByRandomGirl}) => showBestPriceByRandomGirl ? css`\n @media (min-width: 1221px) {\n .prices-wrapper-inner {\n font-size: 0.9em;\n }\n }\n ` : null}\n`;\n\nexport const PlanBoxInnerWrapper = styled.div``;\n\nexport const PlanBoxFeaturesWrapper = styled.div`\n margin-top: var(--spacing-xl);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-md);\n\n @media (max-width: 768px) {\n display: none;\n }\n\n .plans-feature {\n gap: var(--spacing-sm);\n\n svg:first-child {\n width: 11.15px;\n height: 8.57px;\n }\n \n .inner-text {\n padding: 0;\n margin: 0;\n font-size: 15px;\n font-weight: 400;\n letter-spacing: normal;\n }\n }\n`;\n\nexport const PlanBoxFeaturesWrapperVer0 = styled.div`\n margin-top: 33px;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nexport const ArrowBoxInnerWrapper = styled.span`\n vertical-align: top;\n display: inline-block;\n`;\n\nexport const PlanDescription = styled.div`\n margin: 26px auto 0px auto;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.14;\n letter-spacing: -0.35px;\n text-align: center;\n color: ${props => (props.disabled ? \"#cccccc\" : \"#878787\")};\n height: 32px;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\n/* ===== BoxPeriod.js ===== */\nexport const PeriodWrapper = styled.div`\n border-radius: 30px;\n height: 60px;\n border-radius: 30px;\n border: 0.5px solid rgba(0, 0, 0, 0.03);\n background-color: ${({ backgroundColorValue }) => backgroundColorValue || \"rgba(0, 0, 0, 0.1)\"};\n max-width: ${props => props.width}px;\n width: 100%;\n display: flex;\n justify-content: space-around;\n align-items: center;\n position: relative;\n box-sizing: border-box;\n\n .choose-period {\n color: var(--color-base-black);\n line-height: 60px;\n font-size: var(--medium-font-size);\n font-weight: 700;\n letter-spacing: normal;\n text-transform: uppercase;\n }\n\n .period-separator:has(+ .choose-period.active), .choose-period.active + .period-separator {\n display: none;\n }\n\n .period-separator {\n background: rgba(0, 0, 0, 0.10);\n height: 22px;\n }\n`;\n\nexport const PeriodWrapperVer0 = styled.div`\n margin: 0px auto 30px auto;\n position: relative;\n display: flex;\n justify-content: space-around;\n align-items: center;\n width: ${props => props.width}px;\n max-width: 400px;\n height: 38px;\n border-radius: 19px;\n background-color: ${({ backgroundColorValue }) => backgroundColorValue || \"rgba(0, 0, 0, 0.1)\"};\n position: relative;\n\n @media (max-width: 768px) {\n width: 90%;\n }\n`;\n\nexport const Period = styled.div`\n position: relative;\n display: inline-block;\n width: ${props => props.width}%;\n text-align: center;\n /* font-family: Inter, Roboto; */\n font-size: 14px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 38px;\n letter-spacing: -0.35px;\n color: #333333;\n text-transform: uppercase;\n z-index: 2;\n transition: all 0.25s ease-in-out;\n cursor: pointer !important;\n\n &.active, &:hover {\n color: ${props => COLORS[props.color].mainColor};\n }\n`;\n\nexport const PeriodSeparator = styled.div`\n position: relative;\n display: inline-block;\n width: 1px;\n height: 16px;\n background-color: #cccccc;\n`;\n\nexport const PeriodSelectedBar = styled.div`\n width: calc(${props => props.width}% - 10px);\n height: calc(100% - 10px);\n border-radius: 24px;\n position: absolute;\n top: 5px;\n left: calc(${props => props.leftOffset}% + 6px);\n background-color: #ffffff;\n z-index: 1;\n transition: all 0.25s ease-in-out;\n box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.10);\n`;\n\nexport const PeriodSelectedBarVer0 = styled.div`\n width: calc(${props => props.width}% - 4px);\n height: 34px;\n border-radius: 17px;\n position: absolute;\n top: 2px;\n left: calc(${props => props.leftOffset}% + 2px);\n background-color: #ffffff;\n z-index: 1;\n transition: all 0.25s ease-in-out;\n box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.07);\n`;\n\n/* ===== PricingPageUI.js ===== */\nexport const VatIncluded = styled.div`\n max-width: var(--pricing-page-content-width);\n width: calc(100% - var(--pricing-page-content-offset));\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--color-base-black);\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: normal;\n gap: var(--spacing-xs);\n margin: var(--spacing-lg) 0 var(--spacing-xl) 0;\n padding: 0 var(--spacing-xl) var(--spacing-md) var(--spacing-xl);\n box-sizing: border-box;\n line-height: 18px;\n\n a {\n font-weight: 400 !important;\n }\n\n .upgrade-text {\n margin-bottom: 0;\n }\n\n @media(max-width: 1030px) {\n flex-direction: column;\n align-items: flex-start;\n max-width: var(--plan-box-max-width);\n border-bottom: 0.5px solid var(--box-border);\n }\n`;\n\nexport const VatIncludedVer0 = styled.div`\n display: flex;\n flex-direction: column-reverse;\n color: #999;\n font-size: 14px;\n margin: 21px 0 25px 0;\n padding: 0 0 20px;\n text-align: center;\n border-bottom: 1px solid #eee;\n`;\n\n/* ===== BoxHeader.js ===== */\nexport const BoxTitle = styled.h2`\n color: var(--text-link);\n font-size: 24px;\n font-style: normal;\n font-weight: 700;\n line-height: normal;\n letter-spacing: -0.24px;\n display: flex;\n align-items: center;\n margin: 0;\n padding: 0;\n`;\n\nexport const BoxTitleVer0 = styled.h2`\n font-size: 22px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.18;\n letter-spacing: -0.33px;\n text-align: center;\n color: ${({disabled, theme, color}) => {\n if (color && !disabled) {\n return COLORS[color].mainColor\n } else if (disabled && theme === \"dark\") {\n return \"#888888\";\n } else if (disabled) {\n return \"#cccccc\";\n } else {\n return \"#212121\"\n }\n }};\n display: flex;\n align-items: center;\n justify-content: center;\n\n @media(max-width: 768px) {\n font-size: 20px;\n }\n`;\n\nexport const BoxSubtitle = styled.div`\n color: var(--color-base-black);\n font-size: var(--base-font-size);\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n text-transform: uppercase;\n`;\n\nexport const BoxSubtitleVer0 = styled.div`\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.21;\n letter-spacing: -0.35px;\n text-align: center;\n color: ${({disabled, theme}) => {\n if (disabled && theme === \"dark\") {\n return \"#888888\";\n } else if (disabled) {\n return \"#cccccc !important\";\n } else if (theme === \"dark\") {\n return \"#e6e6e6\";\n } else {\n return \"#878787\";\n }\n }};\n text-transform: uppercase;\n\n @media(max-width: 768px) {\n display: none;\n }\n`;\n\nexport const HeaderWrapper = styled.div`\n width: 100%;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: 4px;\n`;\n\nexport const HeaderWrapperVer0 = styled.div`\n width: 100%;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: 8px;\n`;\n\n/* ===== BoxPrice.js ===== */\nexport const PricesWrapperRow = styled.div`\n margin: var(--spacing-xl) auto var(--spacing-2xl) auto;\n\n .price-period-text {\n color: var(--color-gray);\n font-size: var(--base-font-size);\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n text-align: left;\n }\n`;\n\nexport const PricesWrapperRowVer0 = styled.div`\n max-width: 320px;\n margin: 24px auto 30px auto;\n /* font-family: Inter, Roboto; */\n @media (max-width: 768px) {\n margin: 16px auto 26px auto;\n }\n`;\n\nexport const PricesWrapperInnerRow = styled.div`\n min-height: 47px;\n display: flex;\n align-items: center;\n\n --crossline-height: 1.5px;\n --crossline-offset: 4px;\n\n .new-price {\n color: var(--color-base-black);\n font-size: 2.5em;\n font-style: normal;\n font-weight: 700;\n line-height: normal;\n letter-spacing: -2px;\n text-align: left;\n }\n\n .slash {\n color: var(--old-price-color);\n font-size: 2em;\n font-style: normal;\n font-weight: 300;\n line-height: normal;\n letter-spacing: -1.6px;\n margin-left: 4px;\n margin-right: calc(4px + var(--crossline-offset));\n }\n\n .old-price {\n color: var(--old-price-color);\n font-size: 2em;\n font-style: normal;\n font-weight: 300;\n line-height: normal;\n letter-spacing: -1.6px;\n text-align: left;\n }\n\n .crossline {\n position: absolute;\n height: var(--crossline-height);\n border-radius: 0.75px;\n background: var(--old-price-color);\n width: calc(100% + (var(--crossline-offset) * 2));\n left: calc(var(--crossline-offset) * -1);\n top: calc(50% - var(--crossline-height) / 2);\n }\n\n @media (min-width: 1145px) and (max-width: 1220px) {\n font-size: 0.9em;\n }\n\n @media (min-width: 1031px) and (max-width: 1144px) {\n font-size: 0.8em;\n }\n`;\n\nexport const PricesWrapperInnerRowVer0 = styled.div`\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n justify-content: center;\n min-height: 48px;\n\n --crossline-height: 1.5px;\n --crossline-offset: 4px;\n\n .crossline {\n position: absolute;\n height: var(--crossline-height);\n border-radius: 0.75px;\n width: calc(100% + (var(--crossline-offset) * 2));\n left: calc(var(--crossline-offset) * -1);\n top: calc(50% - var(--crossline-height) / 2);\n }\n\n @media (max-width: 768px) {\n min-height: 0px;\n }\n\n .new-price, .old-price {\n font-size: 2.375em;\n }\n\n .slash {\n font-size: 2.5em;\n }\n\n @media (min-width: 1145px) and (max-width: 1220px) {\n font-size: 0.8em;\n }\n\n @media (min-width: 1031px) and (max-width: 1144px) {\n font-size: 0.7em;\n }\n`;\n\n/* ===== ExplorePcloud.js ===== */\nexport const TryPcloud = styled.div`\n max-width: var(--pricing-page-content-width);\n width: calc(100% - var(--pricing-page-content-offset));\n color: var(--color-base-black);\n text-align: center;\n font-size: 18px;\n font-weight: 500;\n line-height: 26px;\n margin-top: var(--spacing-md);\n margin-bottom: var(--spaces-6);\n box-sizing: border-box;\n`;\n\nexport const TryPcloudVer0 = styled.div`\n color: #2c2c2c;\n font-family: \"Roboto\", sans-serif;\n text-align: center;\n font-size: 18px;\n margin: 30px auto 40px auto;\n padding: 0px 20px;\n box-sizing: border-box;\n`;\n\n/* ===== UserPlanInfo.js ===== */\nexport const UserPlanInfoContainer = styled.div`\n background: var(--alert-info-background);\n border-radius: var(--alert-info-border-radius);\n text-align: center;\n box-sizing: border-box;\n max-width: var(--pricing-page-content-width);\n width: calc(100% - var(--pricing-page-content-offset));\n padding: var(--spacing-md) var(--spacing-lg);\n font-size: 13px;\n font-weight: 400;\n line-height: 16px;\n color: var(--color-base-black);\n display: flex;\n align-items: flex-start;\n justify-content: center;\n gap: var(--spacing-sm);\n margin-bottom: var(--spacing-lg);\n\n @media (max-width: 768px) {\n padding: var(--spacing-md);\n }\n\n &:before {\n content: \"\";\n background: url(\"${(typeof cdnPath !== 'undefined' ? cdnPath : '/')}images/small-info-icon.svg\") no-repeat;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n display: inline-block;\n }\n\n & > div > &:last-of-type {\n margin: var(--spacing-md) auto var(--spacing-2xl);\n }\n`;\n\nexport const UserPlanInfoContainerVer0 = styled.div`\n background: #fffbdd;\n border: 1px solid #ede9cd;\n text-align: center;\n font-size: 14px;\n padding: 13px 20px;\n margin: 10px auto;\n width: 100%;\n max-width: 826px;\n box-sizing: border-box;\n border-radius: 7px;\n\n &:last-of-type {\n margin: 10px auto 40px;\n }\n`;","import styled from \"styled-components\";\nimport { PlanBoxOuterWrapperVer0, PeriodWrapperVer0, PlanBoxWrapperVer0} from \"./Plans\";\n\nexport const Crypto_PlansWrapper = styled.div`\n width: 100%;\n max-width: 1220px;\n box-sizing: border-box;\n\n .plans-container {\n min-height: 505px;\n }\n\n @media (max-width: 768px) {\n .plans-container {\n min-height: auto;\n }\n }\n`;\n\nexport const Crypto_PlanBoxOuterWrapper = styled(PlanBoxOuterWrapperVer0)`\n max-width: unset;\n @media (max-width: 768px) {\n border-radius: ${(props) => (props.borderRadius ? `${props.borderRadius}px` : \"0px\")};\n }\n`;\n\nexport const Crypto_PeriodsWrapper = styled.div``;\n\nexport const Crypto_PeriodWrapper = styled(PeriodWrapperVer0)`\n margin: 0px auto 20px auto;\n width: 100%;\n max-width: unset;\n`;\n\nexport const Crypto_PlanBoxWrapper = styled(PlanBoxWrapperVer0)`\n padding: 36px 40px;\n max-width: unset;\n`;\n\nexport const Crypto_PlanBoxFeaturesWrapper = styled.div`\n margin-top: 39px;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;","import styled from \"styled-components\";\nimport { PlanBoxWrapper, PlanBoxWrapperVer0} from \"./Plans\";\n\nexport const Storage_PlanBoxWrapperVer0 = styled(PlanBoxWrapperVer0)`\n .plans-feature {\n border-bottom: none;\n }\n`;\n\nexport const Storage_PlanBoxWrapper = styled(PlanBoxWrapper)`\n .plans-feature {\n border-bottom: none;\n }\n`;","import styled from \"styled-components\";\nimport { Crypto_PlansWrapper, Crypto_PlanBoxOuterWrapper, Crypto_PlanBoxWrapper, Crypto_PlanBoxFeaturesWrapper} from \"./CryptoPlans\";\n\nexport const StorageFamily_PlansWrapper = styled(Crypto_PlansWrapper)`\n .plans-container {\n min-height: 487px;\n }\n\n @media (max-width: 768px) {\n .plans-container {\n min-height: auto;\n }\n }\n`;\n\nexport const StorageFamily_PlanBoxOuterWrapper = styled(Crypto_PlanBoxOuterWrapper)`\n background-color: #f6f6f6;\n`;\n\nexport const StorageFamily_PlanBoxWrapper = styled(Crypto_PlanBoxWrapper)``;\n\nexport const StorageFamily_PlanBoxFeaturesWrapper = styled(Crypto_PlanBoxFeaturesWrapper)``;","import styled from \"styled-components\";\nimport { PlansWrapperVer0, PeriodsWrapperVer0} from \"./Plans\";\n\nexport const Traffic_PlansWrapper = styled(PlansWrapperVer0)`\n .plans-container {\n min-height: 337px;\n }\n\n @media (max-width: 768px) {\n .plans-container {\n min-height: 320px;\n }\n }\n`;\n\nexport const Traffic_PeriodsWrapper = styled(PeriodsWrapperVer0)`\n margin-top: 0;\n`;","import styled from \"styled-components\";\nimport { PeriodWrapperVer0 } from \"./Plans\";\n\nexport const Pass_PlansWrapper = styled.div`\n max-width: 1220px;\n box-sizing: border-box;\n margin: 0 auto;\n`;\n\nexport const Pass_PeriodsWrapper = styled.div`\n .choose-period {\n &:not(.active) {\n color: #fff;\n }\n }\n\n .period-separator {\n display: none;\n }\n \n @media (max-width: 768px) {\n margin-top: 20px;\n margin-bottom: -4px;\n }\n`;\nexport const Pass_PeriodWrapper = styled(PeriodWrapperVer0)`\n margin: 0px auto 40px auto;\n \n @media (max-width: 768px) {\n margin: 0px auto 20px;\n }\n`;\n\nexport const Pass_VatIncluded = styled.div`\n font-size: 15px;\n color: #fff;\n opacity: .5;\n margin-top: 16px;\n text-align: center;\n`;","import React from \"react\";\nimport styled from \"styled-components\";\n\nexport const Wrapper = styled.div`\n position: relative;\n`;\n\nexport const FormWrapper = styled.div`\n box-sizing: border-box;\n border-radius: 7px;\n border: solid 1px #f2f2f2;\n background-color: #fcfcfc;\n padding: 13px;\n\n @media (max-width: 768px) {\n padding: 0px;\n border-radius: 0px;\n background: transparent;\n border: none;\n min-height: 0px;\n height: auto;\n }\n`;\n\nexport const SignFormWrapper = styled(FormWrapper)`\n height: ${({ user }) => (user ? \"auto\" : \"540px\")};\n padding: ${({ user }) => (user ? \"13px\" : \"28px 48px 28px\")};\n transition: all 250ms ease-in-out;\n overflow-y: auto;\n overflow-x: hidden;\n`;\n\nexport const PaymentFormWrapper = styled(FormWrapper)`\n height: 460px;\n`;\n\nexport const PaymentMessageForm = styled(PaymentFormWrapper)`\n padding: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n text-align: center;\n font-size: 20px;\n line-height: 1.4;\n flex-direction: column;\n\n svg {\n margin-bottom: 20px;\n\n @media (max-width: 768px) {\n margin-bottom: 15px;\n }\n }\n\n @media (max-width: 768px) {\n font-size: 15px;\n font-weight: bold;\n }\n`;\n\nexport const FormContainer = styled.div`\n width: 100%;\n max-width: 420px;\n margin: 0 auto;\n height: 100%;\n background-color: inherit;\n box-sizing: border-box;\n\n &.payment-form {\n padding: 30px 0px 0px 0px;\n\n @media (max-width: 768px) {\n padding-bottom: 0px;\n }\n }\n\n .responsive-wrap {\n width: 100%;\n\n @media (max-width: 768px) {\n margin-left: 0px;\n }\n }\n`;\n\nexport const SectionTitle = styled.h3`\n font-size: 18px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.22;\n letter-spacing: normal;\n text-align: left;\n color: #2a2a2a;\n padding-left: 0px;\n margin: 0px 0px 15px 0px;\n opacity: ${({ disabled }) => (disabled ? 0.4 : 1)};\n\n @media (max-width: 768px) {\n text-transform: uppercase;\n font-size: 14px;\n opacity: 0.5;\n color: #000;\n margin-bottom: 10px;\n }\n`;\n\nexport const SeparationLine = styled.div`\n display: inline-block;\n width: 100%;\n height: 1px;\n background-color: #f6f6f6;\n margin: 20px auto;\n flex-shrink: 0;\n\n @media (max-width: 768px) {\n margin: 11px auto;\n }\n`;\n\nexport const TopHeadline = styled.h1`\n margin: 42px auto 30px auto;\n font-size: 36px;\n font-weight: bold;\n letter-spacing: normal;\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n\n span {\n margin-left: 18px;\n margin-bottom: -2px;\n line-height: 46px;\n }\n\n @media (max-width: 768px) {\n font-size: 24px;\n letter-spacing: -0.6px;\n margin: 5px auto 12px;\n\n &.checkout-headline {\n display: none;\n }\n }\n`;\n\nexport const PriceLoadingWrapper = styled.div`\n display: inline-block;\n width: 18px;\n height: 18px;\n position: relative;\n`;\n\nexport const AnimationContainer = styled.div`\n flex-shrink: 0;\n\n .fade-enter {\n opacity: 0;\n }\n .fade-exit {\n opacity: 1;\n }\n .fade-enter-active {\n opacity: 1;\n }\n .fade-exit-active {\n opacity: 0;\n }\n .fade-enter-active,\n .fade-exit-active {\n transition: opacity 300ms ease-in-out;\n }\n`;\n\nexport const FadeTranstionContainer = styled.div`\n // Loading animation\n .fading-enter,\n .fade-appear {\n opacity: 1;\n }\n .fading-exit {\n opacity: 0;\n }\n .fading-enter-active,\n .fade-appear-active {\n opacity: 1;\n }\n .fading-exit-active {\n opacity: 0;\n }\n .fading-enter-active,\n .fade-appear-active,\n .fading-exit-active {\n }\n`;\n\nexport const UserPlanInfoContainer = styled.div`\n background: #fffbdd;\n border: 1px solid #ede9cd;\n text-align: center;\n font-size: 14px;\n padding: 13px 20px;\n margin: 10px auto;\n width: 100%;\n max-width: 826px;\n box-sizing: border-box;\n border-radius: 7px;\n\n &:last-of-type {\n margin: 10px auto 40px;\n }\n`;\n\nexport const PriceError = styled(UserPlanInfoContainer)`\n color: #f73c3c;\n border: solid 1px #f73c3c;\n background: rgb(254, 246, 246);\n margin: 10px auto 40px;\n`;\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCheckIconV2(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 9,\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 6.175l5.9-5.9A.948.948 0 0110.6 0c.283 0 .517.092.7.275a.948.948 0 01.275.7.948.948 0 01-.275.7l-6.6 6.6c-.2.2-.434.3-.7.3a.96.96 0 01-.7-.3l-2.6-2.6a.948.948 0 01-.275-.7c0-.283.091-.517.275-.7A.948.948 0 011.4 4c.283 0 .516.092.7.275l1.9 1.9z\",\n fill: \"#17BED0\"\n })));\n}\nexport default SvgCheckIconV2;","import React, { useMemo } from \"react\";\nimport { hrefSearch } from \"@pcloud/web-utilities/dist/lib/utils\";\nimport { PlansContainerWrapper, PlansPageTitle, PlansContainerWrapperVer0, PlansWrapper, PlansWrapperVer0, PlanBoxOuterWrapper, PlanBoxOuterWrapperVer0, PeriodsWrapper, PeriodsWrapperVer0, PeriodSelectedBar, PeriodSelectedBarVer0, PeriodWrapper, PeriodWrapperVer0, PlanBoxFeaturesWrapper, VatIncluded, PlanBoxesWrapper, PlanBoxesWrapperVer0, BoxTitle, BoxTitleVer0, BoxSubtitleVer0, BoxSubtitle, HeaderWrapperVer0, HeaderWrapper, PricesWrapperInnerRow, PricesWrapperInnerRowVer0, PricesWrapperRowVer0, PricesWrapperRow, PlanBoxFeaturesWrapperVer0, VatIncludedVer0, TryPcloud, TryPcloudVer0, PaymentPartner, PaymentPartnerVer0, JapaneseCertificationVer0, JapaneseCertification, JapaneseCloudAwardContainerVer0, JapaneseCloudAwardContainer, JapaneseCloudAwardContainerTitle, JapaneseCloudAwardContainerTitleVer0, ReadMoreToggleVer0, ReadMoreToggle, JapaneseCertificationDescription, JapaneseCertificationDescriptionVer0, CertificatesWrapper, CertificatesWrapperVer0, CertificateImage, CertificateImageVer0, GogoLogoVer0, GogoLogo, UserPlanInfoContainer, UserPlanInfoContainerVer0, ArrowBoxWrapperVer0, ArrowBoxWrapper} from \"./Plans\";\nimport { Crypto_PlansWrapper, Crypto_PlanBoxOuterWrapper, Crypto_PlanBoxWrapper, Crypto_PeriodsWrapper, Crypto_PeriodWrapper, Crypto_PlanBoxFeaturesWrapper} from \"./CryptoPlans\";\nimport { Storage_PlanBoxWrapper, Storage_PlanBoxWrapperVer0 } from \"./StoragePlans\";\nimport { StorageFamily_PlansWrapper, StorageFamily_PlanBoxOuterWrapper, StorageFamily_PlanBoxWrapper, StorageFamily_PlanBoxFeaturesWrapper } from \"./StorageFamilyPlans\";\nimport { Traffic_PlansWrapper, Traffic_PeriodsWrapper } from \"./TrafficPlans\";\nimport { Pass_PlansWrapper, Pass_PeriodsWrapper, Pass_PeriodWrapper, Pass_VatIncluded } from \"./PassPlans\";\nimport { TopHeadline } from \"../views/Style\";\nimport CheckIcon from \"../../../svg/check-icon.svg\";\nimport CheckIconV2 from \"../../../svg/check-icon-v2.svg\";\n\nconst PlansTypeComponent = (props) => {\n\n const version = useMemo(() => props.plansVersion ? props.plansVersion : (props.type === \"storage\" ? (hrefSearch(\"plansversion\") || (typeof PLANS_VERSION !== \"undefined\" ? PLANS_VERSION: null)) : \"0.0.0\"), [props.type]);\n \n const components = {\n PlansContainer: {\n storage: {\n \"0.0.0\": PlansContainerWrapperVer0, \n default: PlansContainerWrapper\n },\n },\n PlansWrapper: {\n storage: {\n \"0.0.0\": PlansWrapperVer0, \n default: PlansWrapper\n },\n crypto: Crypto_PlansWrapper,\n passwords: Pass_PlansWrapper,\n storage_family: StorageFamily_PlansWrapper,\n traffic: Traffic_PlansWrapper\n },\n PlanBoxOuterWrapper: {\n storage: {\n \"0.0.0\": PlanBoxOuterWrapperVer0, \n default: PlanBoxOuterWrapper\n },\n crypto: Crypto_PlanBoxOuterWrapper,\n storage_family: StorageFamily_PlanBoxOuterWrapper\n },\n PlanBoxWrapper: {\n storage: {\n \"0.0.0\": Storage_PlanBoxWrapperVer0, \n default: Storage_PlanBoxWrapper\n },\n crypto: Crypto_PlanBoxWrapper,\n storage_family: StorageFamily_PlanBoxWrapper\n },\n PeriodsWrapper: {\n storage: {\n \"0.0.0\": PeriodsWrapperVer0, \n default: PeriodsWrapper\n },\n crypto: Crypto_PeriodsWrapper,\n passwords: Pass_PeriodsWrapper,\n traffic: Traffic_PeriodsWrapper\n },\n PeriodWrapper: {\n storage: {\n \"0.0.0\": PeriodWrapperVer0, \n default: PeriodWrapper\n },\n crypto: Crypto_PeriodWrapper,\n passwords: Pass_PeriodWrapper\n },\n PlanBoxFeaturesWrapper: {\n storage: {\n \"0.0.0\": PlanBoxFeaturesWrapperVer0, \n default: PlanBoxFeaturesWrapper\n },\n crypto: Crypto_PlanBoxFeaturesWrapper,\n storage_family: StorageFamily_PlanBoxFeaturesWrapper\n },\n VatIncluded: {\n storage: {\n \"0.0.0\": VatIncludedVer0, \n default: VatIncluded\n },\n passwords: Pass_VatIncluded\n },\n TopHeadline: {\n storage: {\n \"0.0.0\": TopHeadline,\n default: PlansPageTitle\n }\n },\n PeriodSelectedBar: {\n storage: {\n \"0.0.0\": PeriodSelectedBarVer0,\n default: PeriodSelectedBar\n }\n },\n PlanBoxesWrapper: {\n storage: {\n \"0.0.0\": PlanBoxesWrapperVer0,\n default: PlanBoxesWrapper\n }\n },\n BoxTitle: {\n storage: {\n \"0.0.0\": BoxTitleVer0,\n default: BoxTitle\n }\n },\n BoxSubtitle: {\n storage: {\n \"0.0.0\": BoxSubtitleVer0,\n default: BoxSubtitle\n }\n },\n HeaderWrapper: {\n storage: {\n \"0.0.0\": HeaderWrapperVer0,\n default: HeaderWrapper\n }\n },\n PricesWrapperRow: {\n storage: {\n \"0.0.0\": PricesWrapperRowVer0,\n default: PricesWrapperRow\n }\n },\n PricesWrapperInnerRow: {\n storage: {\n \"0.0.0\": PricesWrapperInnerRowVer0,\n default: PricesWrapperInnerRow\n }\n },\n CheckIcon: {\n storage: {\n \"0.0.0\": CheckIcon,\n default: CheckIconV2\n }\n },\n TryPcloud: {\n storage: {\n \"0.0.0\": TryPcloudVer0,\n default: TryPcloud\n }\n },\n PaymentPartner: {\n storage: {\n \"0.0.0\": PaymentPartnerVer0,\n default: PaymentPartner\n }\n },\n JapaneseCertification: {\n storage: {\n \"0.0.0\": JapaneseCertificationVer0,\n default: JapaneseCertification\n }\n },\n JapaneseCloudAwardContainer: {\n storage: {\n \"0.0.0\": JapaneseCloudAwardContainerVer0,\n default: JapaneseCloudAwardContainer\n },\n },\n JapaneseCloudAwardContainerTitle: {\n storage: {\n \"0.0.0\": JapaneseCloudAwardContainerTitleVer0,\n default: JapaneseCloudAwardContainerTitle\n },\n },\n ReadMoreToggle: {\n storage: {\n \"0.0.0\": ReadMoreToggleVer0,\n default: ReadMoreToggle\n },\n },\n JapaneseCertificationDescription: {\n storage: {\n \"0.0.0\": JapaneseCertificationDescriptionVer0,\n default: JapaneseCertificationDescription\n },\n },\n CertificatesWrapper: {\n storage: {\n \"0.0.0\": CertificatesWrapperVer0,\n default: CertificatesWrapper\n },\n },\n CertificateImage: {\n storage: {\n \"0.0.0\": CertificateImageVer0,\n default: CertificateImage\n },\n },\n GogoLogo: {\n storage: {\n \"0.0.0\": GogoLogoVer0,\n default: GogoLogo\n }\n },\n UserPlanInfoContainer: {\n storage: {\n \"0.0.0\": UserPlanInfoContainerVer0,\n default: UserPlanInfoContainer\n }\n },\n ArrowBoxWrapper: {\n storage: {\n \"0.0.0\": ArrowBoxWrapperVer0,\n default: ArrowBoxWrapper\n }\n }\n };\n\n const tmpComponentByPlansType = components[props.name][props.type || \"storage\"] || components[props.name][\"storage\"];\n\n const ComponentByPlansType = tmpComponentByPlansType[version] || tmpComponentByPlansType[\"default\"] || tmpComponentByPlansType;\n return
;\n}\n\nexport default PlansTypeComponent;","//@ flow\n\nimport React from \"react\";\nimport styled, { keyframes } from \"styled-components\";\n\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\nimport { ColorType } from \"../../lib/types/dataTypes.components\";\nimport { __ } from \"../../lib/utils\";\nimport PlansTypeComponent from \"../PricingPage/styles/PlansTypeComponent\";\n\ntype BoxHeaderProps = {\n title: string,\n subtitle: string,\n color?: ColorType,\n disabled?: boolean,\n className?: string,\n theme?: \"dark\" | \"light\",\n discountPeriod?: number,\n priorityLabel: boolean,\n plansType: \"storage\" | \"crypto\" | \"traffic\" | \"storage_family\" | \"passwords\",\n plansVersion: string\n};\n\nconst BoxHeader = ({\n title,\n subtitle,\n color = \"cyan\",\n disabled = false,\n className = \"\",\n theme = \"light\",\n discountPeriod,\n label,\n subtitlePosition,\n plansType = \"storage\",\n plansVersion = \"0.0.0\"\n}: BoxHeaderProps) => {\n const plansTypeProps = {\n type: plansType,\n plansVersion\n };\n\n return (\n
\n {subtitlePosition == \"top\" && subtitle ? (\n
{subtitle.replace(\"%limited_discount_period%\", 30 * discountPeriod)}
\n ) : null}\n
\n {label ?
{label}
: null}\n {title}\n
\n {subtitlePosition == \"bottom\" && subtitle ? (\n
{subtitle.replace(\"%limited_discount_period%\", 30 * discountPeriod)}
\n ) : null}\n
\n )\n};\n\nexport default BoxHeader;\n\nconst Label = styled.div`\n display: inline-block;\n text-transform: uppercase;\n background-color: ${({disabled, theme, color}) => {\n if (color && !disabled) {\n return COLORS[color].mainColor\n } else if (disabled && theme === \"dark\") {\n return \"#888888\";\n } else if (disabled) {\n return \"#cccccc\";\n } else {\n return \"#212121\"\n }\n }};\n color: #fff;\n padding: 4px 6px;\n font-size: 14px;\n border-radius: 4px;\n margin-right: 6px;\n`;\n","import styled from \"styled-components\";\n\nexport const CenterAlign = styled.div`\n text-align: center;\n margin: 0 auto;\n`","//@flow\n\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { __, signToCurrency } from \"../../lib/utils\";\nimport { CenterAlign } from \"../CommonStyledComponents\";\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\nimport PlansTypeComponent from \"../PricingPage/styles/PlansTypeComponent\";\n\ntype BoxPriceProps = {\n price: number,\n currency: string,\n oldPrice?: number,\n slashPeriod?: string,\n periodText?: string,\n disabled?: boolean,\n className?: string,\n theme?: \"dark\" | \"light\",\n discountPeriod?: number,\n template?: \"row\" | \"column\",\n plansType: \"storage\" | \"crypto\" | \"traffic\" | \"storage_family\" | \"passwords\",\n};\n\nconst BoxPrices = ({\n price = 0,\n currency,\n oldPrice = 0,\n slashPeriod,\n periodText,\n disabled = false,\n className = \"\",\n theme = \"light\",\n discountPeriod,\n template = \"row\",\n showSaveLabel = false,\n color=\"cyan\",\n plansType = \"storage\",\n plansVersion = \"0.0.0\"\n}: BoxPriceProps) => {\n price = (price % 1 === 0) ? price : price.toFixed(2);\n oldPrice = (oldPrice % 1 === 0) ? oldPrice : oldPrice.toFixed(2);\n \n const priceFractions = (Number(price) + \"\").split('.');\n let priceDecimalPart = \"00\";\n \n if (priceFractions.length > 1) {\n priceDecimalPart = priceFractions[1].slice(0, 2);\n\n if (priceDecimalPart.length === 1) {\n priceDecimalPart += \"0\";\n }\n }\n\n const newPriceWholeNumber = price % 1 === 0 ? (price + \"\") : ((Math.floor(price)).toString());\n\n let Price = PriceRow;\n let OldPrice = OldPriceRow;\n let CurrencyCode = CurrencyCodeRow;\n let CrossLine = CrossLineRow;\n\n if (template == 'column') {\n Price = PriceColumn;\n OldPrice = OldPriceColumn;\n CurrencyCode = CurrencyCodeColumn;\n CrossLine = CrossLineColumn;\n }\n\n const renderOldPrice = () => {\n if (!(oldPrice && oldPrice !== price)) {\n return null;\n }\n\n return (\n
\n
{oldPrice}
\n
{signToCurrency[currency]}
\n
\n
\n );\n };\n\n const renderSlashRow = () => {\n if (!(oldPrice && oldPrice !== price)) {\n return null;\n }\n\n return (\n
\n /\n
\n );\n };\n\n const renderNewPriceRow = () => {\n return (\n
\n
{price}
\n
{signToCurrency[currency]}
\n
\n );\n };\n\n const renderSlashPeriod = () => {\n return slashPeriod ? (\n
\n {slashPeriod}\n
\n ) : null;\n };\n\n const renderPeriodText = () => {\n if (!periodText) {\n return null;\n }\n\n return (\n
\n {periodText.replace(\"%limited_discount_period%\", 30 * discountPeriod)}\n
\n );\n };\n\n const renderSaveLabel = () => {\n if (!showSaveLabel) {\n return null;\n }\n\n return (\n
\n {__(\"pricing_page_save_label\", \"Save %discount% %currency%\", {\n discount: oldPrice - price,\n currency: signToCurrency[currency]\n })}\n
\n );\n };\n\n const renderPriceRow = () => {\n if (!price) {\n return (\n
\n
\n
-
\n
\n
\n );\n }\n\n return (\n
\n {showSaveLabel && (oldPrice - price) > 0 ? renderPeriodText() : null}\n\n
\n {renderNewPriceRow()}\n {renderSlashRow()}\n {renderOldPrice()}\n {renderSlashPeriod()}\n
\n\n {oldPrice - price > 0 ? renderSaveLabel() : null}\n\n {!(showSaveLabel && (oldPrice - price) > 0) ? renderPeriodText() : null}\n
\n );\n };\n\n const renderPriceColumn = () => {\n if (!price) {\n return null;\n }\n\n return (\n
\n {showSaveLabel && (oldPrice - price) > 0 ? renderPeriodText() : null}\n
\n {renderOldPrice()}\n
\n
\n {newPriceWholeNumber}\n
\n {price % 1 !== 0 && \n
\n .\n {priceDecimalPart}\n
\n }\n
\n {signToCurrency[currency]}\n
\n
\n\n {renderSlashPeriod}\n
\n\n {oldPrice - price > 0 ? renderSaveLabel() : null}\n\n {!(showSaveLabel && (oldPrice - price) > 0) ? renderPeriodText() : null}\n
\n );\n };\n\n return template === 'row' ? renderPriceRow() : (template == 'column' ? renderPriceColumn() : null);\n};\n\nexport default BoxPrices;\n\n// Template: column\nconst PricesWrapperColumn = styled.div``;\n\nconst PricesWrapperInnerColumn = styled.div``;\n\nconst PriceColumn = styled.div`\n line-height: 0.77;\n font-weight: bold;\n text-align: left;\n margin-top: 26px;\n color: ${({ disabled, theme }) => {\n if (disabled) {\n return \"#cccccc !important\";\n } else if (theme === \"dark\") {\n return \"#e6e6e6\";\n } else {\n return \"#000000\";\n }\n }};\n\n @media (max-width: 768px) {\n margin-top: 20px;\n margin-bottom: 35px;\n text-align: center;\n }\n`;\n\nconst OldPriceColumn = styled.span`\n position: relative;\n font-size: 61px;\n line-height: 23px;\n font-weight: bold;\n text-align: left;\n color: ${({ disabled, theme }) => {\n if (disabled) {\n return \"#cccccc !important\";\n } else if (theme === \"dark\") {\n return \"#bfbebe\";\n } else {\n return \"#d336c8\";\n }\n }};\n .old-price-value,\n .old-price-currency-code {\n opacity: 0.3;\n }\n`;\n\nconst CurrencyCodeColumn = styled.span`\n font-size: 42px;\n margin-left: 10px;\n`;\n\nconst CrossLineColumn = styled.div`\n position: absolute;\n left: -15px;\n top: 38px;\n width: calc(100% + 30px);\n height: 3px;\n background-color: ${props => (props.disabled ? \"#cccccc !important\" : \"#8b8b8b\")};\n`;\n\nconst ValueNewPriceColumn = styled.span`\n font-size: ${props => (props.fontSize ? props.fontSize : \"50\")}px;\n @media (max-width: 768px) {\n font-size: ${props => (props.fontSizeMobile ? props.fontSizeMobile : \"50\")}px;\n }\n @media (min-width: 769px) and (max-width: 800px) {\n font-size: ${props => (props.fontSizeTablet ? props.fontSizeTablet : \"50\")}px;\n }\n`;\n\nconst ValueDecimalPart = styled.span`\n font-size: ${props => (props.fontSize ? props.fontSize : \"20\")}px;\n @media (max-width: 768px) {\n font-size: ${props => (props.fontSizeMobile ? props.fontSizeMobile : \"20\")}px;\n }\n @media (min-width: 769px) and (max-width: 800px) {\n font-size: ${props => (props.fontSizeTablet ? props.fontSizeTablet : \"50\")}px;\n }\n position: absolute;\n letter-spacing: 2.67px;\n`;\nconst CurrencyCodeNewPrice = styled.span`\n font-size: ${props => (props.fontSize ? props.fontSize : \"20\")}px;\n @media (max-width: 768px) {\n font-size: ${props => (props.fontSizeMobile ? props.fontSizeMobile : \"20\")}px;\n }\n @media (min-width: 769px) and (max-width: 800px) {\n font-size: ${props => (props.fontSizeTablet ? props.fontSizeTablet : \"50\")}px;\n }\n letter-spacing: 1.56; \n`;\n\n// Template: row\nconst OldPriceRow = styled.span`\n position: relative;\n font-size: 38px;\n font-weight: 300;\n line-height: 1.19;\n letter-spacing: -1.05px;\n text-align: center;\n display: inline-block;\n color: ${({ disabled, theme }) => {\n if (disabled) {\n return \"#cccccc !important\";\n } else if (theme === \"dark\") {\n return \"#bfbebe\";\n } else {\n return \"#aaaaaa\";\n }\n }};\n @media (max-width: 768px) {\n font-size: 32px;\n }\n`;\n\nconst PriceRow = styled.span`\n font-size: 38px;\n font-weight: bold;\n line-height: 1.19;\n letter-spacing: -1.05px;\n text-align: center;\n color: ${({ disabled, theme }) => {\n if (disabled) {\n return \"#cccccc !important\";\n } else if (theme === \"dark\") {\n return \"#e6e6e6\";\n } else {\n return \"#000000\";\n }\n }};\n @media (max-width: 768px) {\n font-size: 32px;\n }\n`;\n\nconst PeriodText = styled.div`\n font-size: 14px;\n font-weight: normal;\n line-height: 1.21;\n letter-spacing: -0.35px;\n text-align: center;\n color: ${({ disabled, theme }) => {\n if (disabled) {\n return \"#cccccc !important\";\n } else if (theme === \"dark\") {\n return \"#e6e6e6\";\n } else {\n return \"#868686\";\n }\n }};\n text-transform: uppercase;\n @media (max-width: 768px) {\n font-size: 12px;\n }\n`;\n\nconst CurrencyCodeRow = styled.span`\n font-size: 20px;\n letter-spacing: 0px;\n margin-left: 3px;\n @media (max-width: 768px) {\n font-size: 16px;\n }\n`;\n\nconst Value = styled.span``;\n\nconst CrossLineRow = styled.div`\n position: absolute;\n left: -4px;\n top: 19px;\n width: 110%;\n height: 1px;\n background-color: ${props => (props.disabled ? \"#cccccc !important\" : \"#aaaaaa\")};\n`;\n\nconst Slash = styled.span`\n margin: 0px 10px;\n font-size: 40px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.19;\n letter-spacing: -1.05px;\n text-align: center;\n color: ${({ disabled, theme }) => {\n if (disabled) {\n return \"#cccccc !important\";\n } else if (theme === \"dark\") {\n return \"#bfbebe\";\n } else {\n return \"#ececec\";\n }\n }};\n @media (max-width: 768px) {\n font-size: 32px;\n }\n`;\n\nconst SlashPeriod = styled.span`\n font-size: 21px;\n font-weight: 600;\n margin: 0 0 0 -3px;\n color: ${({ disabled, theme }) => {\n if (disabled) {\n return \"#cccccc !important\";\n } else if (theme === \"dark\") {\n return \"#e6e6e6\";\n } else {\n return \"#2c2c2c\";\n }\n }};\n font-family: \"Roboto\", sans-serif;\n`;\n\nconst SaveLabel = styled.div`\n display: inline-block;\n min-width: 110px;\n box-sizing: border-box;\n color: ${({color}) => COLORS[color].mainColor};\n text-align: center;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n text-transform: uppercase;\n padding: 4px 20px;\n border-radius: 8px;\n background: ${({color}) => COLORS[color].lightShade};\n margin: 8px auto 0 auto;\n\n @media (max-width: 768px) {\n border-radius: 4px;\n }\n`;\n","//@ flow\n\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nimport { CenterAlign } from \"../CommonStyledComponents\";\nimport { businessPrices } from \"@pcloud/web-utilities/dist/plans/prices\";\nimport { signToCurrency } from \"../../lib/utils\";\n\ntype BoxPriceProps = {\n currency: string,\n disabled?: boolean,\n className?: string,\n theme?: \"dark\" | \"light\",\n planId: 201 | 202,\n pricesToShow: \"both\" | \"monthly\" | \"yearly\"\n};\n\nconst BoxPricesBusiness = ({\n currency,\n disabled = false,\n className = \"\",\n theme = \"light\",\n planId,\n pricesToShow = \"both\"\n}: BoxPriceProps) => {\n const renderPrices = () => {\n if (pricesToShow === \"both\") {\n return (\n <>\n
\n
{__(\"Yearly Subscription\")}
\n
\n
{businessPrices[planId][currency][\"year\"]}
\n
{signToCurrency[currency]}
\n
\n
\n
\n
\n
{__(\"Monthly Subscription\")}
\n
\n
{businessPrices[planId][currency][\"month\"]}
\n
{signToCurrency[currency]}
\n
\n
\n \n )\n } else if (pricesToShow === \"monthly\") {\n return (\n
\n
{__(\"Monthly Subscription\")}
\n
\n
{businessPrices[planId][currency][\"month\"]}
\n
{signToCurrency[currency]}
\n
\n
\n )\n } else if (pricesToShow === \"yearly\") {\n return (\n
\n
{__(\"Yearly Subscription\")}
\n
\n
{businessPrices[planId][currency][\"year\"]}
\n
{signToCurrency[currency]}
\n
\n
\n )\n }\n }\n return (\n
\n
\n
\n {renderPrices()}\n
\n
\n
\n {__(\"key_business_per_user_month\")}\n
\n
\n )\n};\n\nexport default BoxPricesBusiness;\n\nconst PricesWrapper = styled.div`\n max-width: 316px;\n margin: 32px auto 24px auto;\n font-family: Inter, Roboto;\n @media(max-width: 768px) {\n margin: 26px auto;\n }\n`;\n\nconst Price = styled.span`\n font-size: 42px;\n font-weight: bold;\n line-height: 1.19;\n letter-spacing: -1.05px;\n text-align: center;\n color: ${({disabled, theme}) => {\n if (disabled) {\n return \"#cccccc\";\n } else if (theme === \"dark\") {\n return \"#ffffff\";\n } else {\n return \"#000000\";\n }\n }};\n @media(max-width: 768px) {\n font-size: 32px;\n }\n`;\n\nconst BottomText = styled.div`\n font-size: 14px;\n font-weight: normal;\n line-height: 1.21;\n letter-spacing: -0.35px;\n text-align: center;\n color: ${({disabled, theme}) => {\n if (disabled) {\n return \"#cccccc !important\";\n } else if (theme === \"dark\") {\n return \"#ffffff\";\n } else {\n return \"#868686\";\n }\n }};\n text-transform: uppercase;\n @media(max-width: 768px) {\n font-size: 12px;\n }\n`;\n\nconst CurrencySign = styled.span`\n font-size: 22px;\n letter-spacing: -0.55px;\n text-align: center;\n line-height: 40px;\n vertical-align: top;\n @media(max-width: 768px) {\n font-size: 16px;\n }\n`;\n\nconst CurrencyCode = styled.span`\n font-size: 22px;\n letter-spacing: 0px;\n margin-left: 3px;\n @media(max-width: 768px) {\n font-size: 16px;\n }\n`;\n\nconst Value = styled.span``;\n\nconst PriceContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 6px;\n`;\n\nconst PriceBox = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nconst Separator = styled.div`\n display: inline-block;\n height: 49px;\n width: 1px;\n background-color: #e5e5e5;\n margin: 0px 23px;\n`;\n\nconst PeriodText = styled.div`\n font-size: 11px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: normal;\n text-align: center;\n color: #888888;\n`;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgInfoIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#d9d9d9\",\n d: \"M8 16a8.009 8.009 0 01-8-8 8.009 8.009 0 018-8 8.009 8.009 0 018 8 8.009 8.009 0 01-8 8zm0-9a1 1 0 00-1 1v3a1 1 0 001 1 1 1 0 001-1V8a1 1 0 00-1-1zm0-3a1 1 0 00-1 1 1 1 0 001 1 1 1 0 001-1 1 1 0 00-1-1z\"\n })));\n}\nexport default SvgInfoIcon;","//@flow\n\nimport React, { useState } from \"react\";\nimport styled from \"styled-components\";\nimport { Tooltip as ReactTooltip } from \"react-tooltip\";\n\nimport CheckIcon from \"../../svg/check-icon.svg\";\nimport InfoIcon from \"../../svg/info-icon.svg\";\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\nimport { v4 as uuidv4 } from 'uuid';\nimport PlansTypeComponent from \"../PricingPage/styles/PlansTypeComponent\";\n\ntype BoxFeatureProps = {\n feature: string,\n tooltip?: string,\n lastChild?: boolean,\n disabled?: boolean,\n className?: string,\n theme?: \"dark\" | \"light\",\n color?: string,\n showCheck?: boolean\n};\n\nconst BoxFeature = ({\n feature,\n tooltip,\n lastChild = false,\n disabled = false,\n className = \"\",\n theme,\n color,\n showCheck\n}: BoxFeatureProps) => {\n const [id] = useState(uuidv4());\n let colorValue = \"#17bed0\";\n if (disabled) {\n colorValue = \"#ccc\";\n } else if (color && COLORS[color]) {\n colorValue = typeof COLORS[color].bulletsColor !== 'undefined' && COLORS[color].bulletsColor !== '' ? COLORS[color].bulletsColor : COLORS[color].mainColor;\n }\n\n return (\n
\n {showCheck ?
: null}\n
\n {feature}\n
\n {tooltip ? (\n
\n
\n
\n
\n ) : null}\n
\n );\n};\n\nexport default BoxFeature;\n\nconst FeatureWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: ${props => (props.lastChild ? \"none\" : \"1px solid #f2f2f2\")};\n border-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"rgba(255,255,255, 0.13)\";\n } else {\n return \"#f2f2f2\";\n }\n }};\n width: 100%;\n\n svg {\n flex-shrink: 0;\n }\n\n .feature-tooltip {\n padding: 15px 20px;\n max-width: 250px;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.35;\n font-weight: 400;\n text-align: center;\n }\n`;\n\nconst FeatureText = styled.div`\n padding: 8px 0px;\n /* font-family: Inter, Roboto; */\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: -0.4px;\n text-align: left;\n color: ${({ disabled, theme }) => {\n if (disabled && theme === \"dark\") {\n return \"rgba(255, 255, 255, 0.3)\";\n } else if (disabled) {\n return \"#cccccc\";\n } else if (theme === \"dark\") {\n return \"#e6e6e6\";\n } else {\n return \"#000000\";\n }\n }};\n margin-left: 13px;\n flex-grow: 1;\n`;\n","//@flow\n\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\nimport { ColorType } from \"../../lib/types/dataTypes.components\";\nimport { detectIsRetina } from \"@pcloud/web-utilities/dist/lib/utils\";\n\ntype BoxDiscsountProps = {\n value: number | string,\n type: \"percent\" | \"fixedamount\" | \"text\",\n color?: ColorType,\n theme?: string,\n currency?: string,\n disabled?: boolean,\n className?: string,\n background?: string,\n backgroundRetina?: String,\n width?: string,\n height?: string,\n positionLeft?: string,\n template: \"corner\" | \"paperclip\" | \"full-width\"\n};\n\nconst BoxDiscount = ({\n value,\n type = \"percent\",\n color = \"cyan\",\n theme,\n currency,\n disabled = false,\n className = \"\",\n template = \"corner\",\n width,\n height,\n positionLeft,\n background,\n backgroundRetina\n}: BoxDiscsountProps) => {\n\n let DiscountWrap = DiscountWrapCorner;\n let DiscountValueWrap = DiscountValueWrapCorner;\n\n switch (template) {\n case \"paperclip\":\n DiscountWrap = DiscountWrapPaperclip;\n DiscountValueWrap = DiscountValueWrapPaperclip;\n break;\n case \"full-width\":\n DiscountWrap = DiscountWrapFullWidth;\n DiscountValueWrap = DiscountValueWrapFullWidth;\n break;\n }\n\n const isRetina = detectIsRetina();\n\n if (!value) {\n return null;\n }\n\n return (\n
\n
\n {type !== \"text\" ?
-
: null}\n {type === \"fixedamount\" ?
{currency}
: null}\n
{value}
\n {type === \"percent\" ?
%
: null}\n
\n
\n )\n};\n\nexport default BoxDiscount;\n\n// template: \"full-width\"\nconst DiscountWrapFullWidth = styled.div`\n width: 100%;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 15px 20px;\n background: ${props => props.background ? props.background : 'transparent'};\n`;\n\nconst DiscountValueWrapFullWidth = styled.div`\n color: white;\n font-size: 22px;\n`;\n\n// template: \"paperclip\"\nconst DiscountWrapPaperclip = styled.div`\n background: ${props => props.background ? props.background : 'transparent'};\n width: ${props => props.width ? props.width : 'initial'};\n height: ${props => props.height ? props.height : 'initial'};\n position: relative;\n left: ${props => props.positionLeft ? props.positionLeft : 'initial'};\n background-size: ${props => props.background ? 'contain' : 'initial'};\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst DiscountValueWrapPaperclip = styled.div`\n color: white;\n font-size: 30px;\n position: relative;\n top: -7px;\n`;\n\n// template: \"corner\"\nconst DiscountWrapCorner = styled.div`\n position: absolute;\n width: 0;\n height: 0;\n top: 0;\n right: 0;\n border-left: 80px solid transparent;\n border-bottom: 80px solid transparent;\n border-right: 80px solid ${({ disabled, theme, color }) => {\n if (disabled && theme === \"dark\") {\n return \"#888888\";\n } else if (disabled) {\n return \"#cccccc\";\n } else {\n return COLORS[color].mainColor;\n }\n }};\n border-top: 0 solid transparent;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n text-align: center;\n\n @media(max-width: 768px) {\n border-left-width: 60px;\n border-bottom-width: 60px;\n border-right-width: 60px;\n }\n`;\n\nconst DiscountValueWrapCorner = styled.div`\n position: absolute;\n top: 12px;\n left: 14px;\n width: 80px;\n font-family: Inter, Roboto;\n font-size: 23px;\n font-weight: 900;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.21;\n letter-spacing: -0.77px;\n text-align: center;\n color: ${props => COLORS[props.color].text};\n -webkit-transform: rotate(45deg);\n -moz-transform: rotate(45deg);\n -o-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(45deg);\n\n @media(max-width: 768px) {\n top: 10px;\n left: 0px;\n font-size: 18px;\n }\n`;\n\nconst MinusSign = styled.span``;\nconst Currency = styled.span``;\nconst Value = styled.span``;\nconst PercentSign = styled.span``;\n","//@ flow\n\nimport React from \"react\";\nimport styled, { keyframes } from \"styled-components\";\n\ntype BoxDisabledProps = {\n title: string,\n subtitle: string,\n actionText?: string,\n handleAction?: event => void,\n wrapperClassName?: string\n};\n\nconst BoxDisabled = ({\n title,\n subtitle,\n actionText,\n handleAction,\n wrapperClassName\n}: BoxDisabledProps) => {\n return (\n
\n
{title}
\n {(subtitle && subtitle != \" \") ? (\n
{subtitle}
\n ) : null}\n {actionText ? (\n
{actionText}
\n ) : null}\n
\n )\n};\n\nexport default BoxDisabled;\n\nconst DisabledWrapper = styled.div`\n width: 100%;\n box-sizing: border-box;\n border: solid 1px #ede9cd;\n background-color: #fffbdd;\n padding: 20px;\n margin: 46px auto 56px auto;\n`;\n\nconst DisabledTitle = styled.div`\n /* font-family: Inter, Roboto; */\n font-size: 15px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.2;\n letter-spacing: normal;\n text-align: center;\n color: #000000;\n \n`;\n\nconst DisabledSubtitle = styled.div`\n /* font-family: Inter, Roboto; */\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.21;\n letter-spacing: -0.28px;\n text-align: center;\n color: #000000;\n margin-top: 15px;\n`;\n\nconst ActionButton = styled.div`\n /* font-family: Inter, Roboto; */\n font-size: 15px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.2;\n letter-spacing: normal;\n text-align: center;\n color: #17bed0;\n margin-top: 15px;\n cursor: pointer;\n`;\n","//@flow\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { hiDPI } from \"polished\";\n\nconst PaymentOptions = () => (\n
\n
\n
\n
\n
\n
\n
\n);\n\nexport default PaymentOptions;\n\nconst PaymentOptionsWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n position: absolute;\n width: calc(100% - 80px);\n left: 40px;\n bottom: 36px;\n\n @media (max-width: 768px) {\n position: static;\n width: 100%;\n margin-top:20px;\n }\n`;\n\nconst PaymentIcon = styled.div`\n display: inline-block;\n width: 54px;\n height: 36px;\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center;\n`;\n\nconst visaImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/plans/cards/visa@2x.png' : 'images/plans/cards/visa.png');\nconst VisaIcon = styled(PaymentIcon)`\n background-image: url(${visaImg});\n`;\n\nconst masterImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/plans/cards/mastercard@2x.png' : 'images/plans/cards/mastercard.png');\nconst MasterCardIcon = styled(PaymentIcon)`\n background-image: url(${masterImg});\n`;\n\nconst paypalImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/plans/cards/paypal@2x.png' : 'images/plans/cards/paypal.png');\nconst PaypalIcon = styled(PaymentIcon)`\n background-image: url(${paypalImg});\n`;\n\nconst americanExpressImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/plans/cards/american_express@2x.png' : 'images/plans/cards/american_express.png');\nconst AmericanExpressIcon = styled(PaymentIcon)`\n background-image: url(${americanExpressImg});\n`;\n\nconst discoverImg = (typeof cdnPath !== 'undefined' ? cdnPath : '/') + (window.devicePixelRatio > 1.5 ? 'images/plans/cards/discover@2x.png' : 'images/plans/cards/discover.png');\nconst DiscoverIcon = styled(PaymentIcon)`\n background-image: url(${discoverImg});\n`;","//@flow\n\nimport React, { useEffect } from \"react\";\nimport styled from \"styled-components\";\nimport { Tooltip as ReactTooltip } from \"react-tooltip\";\n\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\nimport { ColorType } from \"../lib/types/dataTypes.components\";\n\ntype TabType = {\n tabId: string | number,\n tabTitle?: string,\n clickAction: (tabId: string | number) => void,\n disabled?: boolean,\n TabIcon?: any,\n tabIconActive?: any,\n tooltip?: string,\n testId?: string,\n tabAttributeId?: string\n};\n\ntype TabsProps = {\n color: ColorType,\n tabs: Array
,\n activeTab: string | number,\n theme?: \"light\" | \"dark\",\n uppercase?: boolean,\n iconFill?: string,\n iconActiveFill?: string,\n};\n\nconst Tabs = ({ color, tabs, activeTab, theme, uppercase = true, iconFill = \"#2a2a2a\", iconActiveFill = \"#2a2a2a\" }: TabsProps) => {\n const tabsMap = {};\n const tabWidth = 100 / tabs.length;\n\n const renderTabs = () => {\n const tabsComponents = tabs.map(\n (tab, index) => {\n const { tabId, tabTitle, clickAction, disabled, TabIcon, tabIconActive, tooltip, testId = \"\", tabAttributeId = \"\" } = tab;\n tabsMap[tabId] = {index: index, tab: tab};\n const isActiveTab = tabId === activeTab;\n const renderTabIcon = () => {\n if (!TabIcon) {\n return null;\n }\n\n return (\n
\n
\n
\n );\n };\n\n return (\n
(!disabled ? clickAction(tabId) : null)}\n key={tabId}\n id={tabAttributeId}\n disabled={disabled}\n theme={theme}\n color={color}\n className={isActiveTab ? \"active tab-holder\" : \"tab-holder\"}\n uppercase={uppercase}\n tabTitle={tabTitle}\n data-testid={testId}\n activeFill={iconActiveFill}\n >\n {renderTabIcon()}\n {tabTitle ? tabTitle : null}\n \n );\n }\n );\n\n return tabsComponents;\n };\n\n return (\n
\n {renderTabs()}\n
\n
\n
\n );\n};\n\nexport default Tabs;\n\nconst TabsWrapper = styled.div`\n border-bottom: 1px solid #eee;\n border-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"rgba(255,255,255,0.13)\";\n } else {\n return \"#eee\";\n }\n }};\n margin: 0 auto;\n margin-bottom: 20px;\n position: relative;\n\n .tabs-tooltip {\n padding: 10px 20px;\n max-width: 250px;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.35;\n font-weight: 400;\n text-align: center;\n }\n`;\n\nconst Tab = styled.div`\n width: ${props => props.width || 50}%;\n display: inline-block;\n padding: ${props => (props.tabTitle ? \"0px 0px 12px 0px\" : \"0px\")};\n text-align: center;\n font-size: 13px;\n font-family: \"Roboto\", sans-serif;\n color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#999999\";\n } else {\n return \"#222222\";\n }\n }};\n ${({ uppercase }) => (uppercase ? \"text-transform: uppercase\" : \"font-size: 15px\")};\n cursor: ${props => (props.disabled ? \"default\" : \"pointer\")};\n transition: all 0.25s ease-in-out;\n position: relative;\n\n &.active {\n font-weight: bold;\n cursor: default;\n color: ${({ theme, color }) => {\n if (theme === \"dark\" && color && COLORS[color]) {\n return COLORS[color].mainColor;\n } else {\n return \"#222222\";\n }\n }};\n }\n\n .tab-icon {\n transition: all 0.25s ease-in-out;\n\n &.active {\n fill: ${props => (props.activeFill)};\n }\n }\n\n ${props =>\n props.disabled\n ? `\n &::after {\n content: \"\";\n position: absolute;\n top: 0px;\n left: 0px;\n display: inline-block;\n width: 100%;\n height: 100%;\n }\n `\n : ``};\n\n @media (max-width: 768px) {\n padding: 0px 0px 20px 0px;\n }\n`;\n\nconst ActiveLine = styled.div`\n width: ${props => props.width || 50}%;\n position: absolute;\n bottom: -1px;\n height: 2px;\n background: ${props => (props.color ? COLORS[props.color].mainColor : \"#17bed0\")};\n transition: left 0.25s ease-in-out;\n left: ${props => props.tab * props.width}%;\n`;\n\nconst TabIconWrapper = styled.div`\n text-align: center;\n margin-bottom: 8px;\n`;\n","//@flow\n\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport { planBoxPeriodTexts } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { ColorType } from \"../../../../lib/types/dataTypes.components\";\nimport { BoxHeader, BoxPrices, BoxDiscount } from \"../../../PlansBox\";\nimport Tabs from \"../../../Tabs\";\nimport SpinContainer from \"../../../SpinContainer\";\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\n\nimport LoadingIcon from \"../../../../svg/loading-icon.svg\";\n\ntype PaymentViewBoxProps = {\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme: \"light\" | \"dark\",\n price: number,\n currency: \"$\" | \"€\" | \"₤\",\n oldPrice?: number,\n periodText?: string,\n discountPercent?: number,\n showDiscountCorner?: boolean,\n discountPeriod?: number,\n renderView: () => string,\n selectedTabView: \"card\" | \"paypal\",\n tabs: {},\n loading: boolean,\n title: string\n};\n\nconst PaymentViewBoxDefault = ({\n billingPeriod,\n color,\n theme,\n price,\n currency = \"$\",\n oldPrice,\n periodText,\n discountPercent,\n showDiscountCorner = true,\n discountPeriod,\n showCurrencyCode = true,\n renderView,\n selectedTabView,\n tabs,\n loading = true,\n title\n}: PaymentViewBoxProps) => {\n \n return (\n
\n {discountPercent && showDiscountCorner ? (\n
\n ) : null}\n\n
\n
\n
\n
\n\n
\n
\n
\n
{ }}\n onExited={() => { }}\n appear\n >\n
\n
\n
\n
\n
\n \n
\n {renderView()}\n
\n
\n );\n};\n\nexport default PaymentViewBoxDefault;\n\nconst Wrapper = styled.div`\n /* font-family: Inter, Roboto; */\n position: relative;\n width: 100%;\n border-radius: 10px;\n box-shadow: 3.8px 5.9px 10px 0 rgba(0, 0, 0, 0.05);\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#fafafa\";\n }\n }};\n overflow: hidden;\n min-height: 677px;\n padding-bottom: 30px;\n box-sizing: border-box;\n\n @media (max-width: 768px) {\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#ffffff\";\n }\n }};\n min-height: 0px;\n border-radius: 0px;\n }\n`;\n\nconst LoaderWrapper = styled.div`\n position: absolute;\n left: 0px;\n width: 100%;\n min-height: 400px;\n background: inherit;\n z-index: 100;\n\n .loading-icon_svg__color-path {\n fill: ${({ color }) => (color && COLORS[color] ? (COLORS[color].loadingIconColor ? COLORS[color].loadingIconColor : COLORS[color].mainColor) : \"#17bed0\")};\n }\n`;\n\nconst FormWrapper = styled.div`\n max-width: 440px;\n width: 100%;\n margin: 0 auto;\n padding: 30px 40px 0px 40px;\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#fafafa\";\n }\n }};\n border-top: 1px solid #eeeeee;\n border-top-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"rgba(255,255,255,0.15)\";\n } else {\n return \"#eeeeee\";\n }\n }};\n box-sizing: border-box;\n position: relative;\n\n @media (max-width: 768px) {\n padding-bottom: 30px;\n margin-top: -28px;\n }\n`;\n\nconst AlignContainer = styled.div`\n padding: 36px 40px 2px 40px;\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#ffffff\";\n }\n }};\n\n @media (max-width: 768px) {\n padding: 25px 20px;\n }\n`;\n\nconst AnimationContainer = styled.div`\n background-color: inherit;\n\n .fading-enter,\n .fade-appear {\n opacity: 1;\n }\n .fading-exit {\n opacity: 0;\n }\n .fading-enter-active,\n .fade-appear-active {\n opacity: 1;\n }\n .fading-exit-active {\n opacity: 0;\n }\n .fading-enter-active,\n .fade-appear-active,\n .fading-exit-active {\n transition: all 400ms ease-in-out;\n }\n`;\n","//@flow\nimport styled from \"styled-components\";\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\n\nexport const Wrapper = styled.div`\n position: relative;\n display: flex;\n justify-content: space-between; \n width: 100%;\n box-sizing: border-box;\n border-radius: 10px;\n box-shadow: 3.8px 5.9px 10px 0 rgba(0, 0, 0, 0.05);\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#ffffff\";\n }\n }};\n min-height: ${({ showPaymentOptions, timerExp }) => showPaymentOptions && timerExp ? \"520px\" : \"507px\"};\n\n .tooltip {\n padding: 15px 20px;\n max-width: 250px;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.35;\n font-weight: 400;\n text-align: center;\n }\n\n .discount-paperclip {\n margin-bottom: 70px;\n }\n\n @media (max-width: 768px) {\n display: block;\n overflow: hidden;\n min-height: initial;\n\n .disabledview-right-column {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding-top: 25px;\n }\n }\n\n @media (min-width: 769px) {\n .mobile-only {\n display: none;\n }\n }\n\n .disabledview-left-column {\n display: flex;\n flex-direction: column;\n \n .disabled-box {\n margin: 0 50px 0 0;\n width: auto;\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n }\n`;\n\nexport const WrapperRightColumn = styled.div`\n width: 358px;\n padding: 40px 50px 60px 0;\n box-sizing: border-box;\n @media (max-width: 768px) {\n width: 100%;\n padding: 0 20px 25px 20px;\n }\n`;\n\nexport const WrapperLeftColumn = styled.div`\n flex: 1;\n padding: 40px 0 60px 50px;\n box-sizing: border-box;\n \n \n @media (max-width: 768px) {\n display: none !important;\n }\n`;\n\nexport const FeaturesWrapper = styled.div`\n margin-top: 24px;\n margin-bottom: 34px;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nexport const Timeleft = styled.div`\n text-align: center;\n font-size: 10px;\n font-weight: 500;\n color: #878787;\n letter-spacing: -0.3px;\n text-transform: uppercase;\n margin: 10px auto 10px auto;\n`;\n\nexport const TimerWrapper = styled.div`\n margin-bottom: 34px;\n padding: 20px 20px 11px 20px;\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"rgba(255,255,255,0.07)\";\n } else {\n return \"#f8f8f8\";\n }\n }};\n border-radius: 12px;\n border: solid 1px #f6f6f6;\n border-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"transparent\";\n } else {\n return \"#f6f6f6\";\n }\n }};\n box-sizing: border-box;\n`;\n\nexport const PlanDescription = styled.div`\n margin: 26px auto 0px auto;\n /* font-family: Inter, Roboto; */\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.14;\n letter-spacing: -0.35px;\n text-align: center;\n color: ${props => (props.disabled ? \"#cccccc\" : \"#878787\")};\n height: 32px;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nexport const FormWrapper = styled.div`\n position: relative;\n max-width: 440px;\n width: 100%;\n margin: 0 auto;\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#fafafa\";\n }\n }};\n border-top: 1px solid #eeeeee;\n border-top-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"rgba(255,255,255,0.15)\";\n } else {\n return \"#eeeeee\";\n }\n }};\n box-sizing: border-box;\n\n .responsive-wrap {\n width: 100%;\n margin: 0px;\n }\n\n .link {\n color: #746de4;\n }\n @media (max-width: 768px) {\n margin-top: -28px;\n }\n`;\n\nexport const LoaderWrapper = styled.div`\n position: absolute;\n left: 0px;\n width: 100%;\n min-height: 400px;\n background: inherit;\n z-index: 100;\n\n .loading-icon_svg__color-path {\n fill: ${({ color }) => (color && COLORS[color] ? (COLORS[color].loadingIconColor ? COLORS[color].loadingIconColor : COLORS[color].mainColor) : \"#17bed0\")};\n }\n`;\n\nexport const AnimationContainer = styled.div`\n background-color: inherit;\n\n .fading-enter,\n .fade-appear {\n opacity: 1;\n }\n .fading-exit {\n opacity: 0;\n }\n .fading-enter-active,\n .fade-appear-active {\n opacity: 1;\n }\n .fading-exit-active {\n opacity: 0;\n }\n .fading-enter-active,\n .fade-appear-active,\n .fading-exit-active {\n transition: all 400ms ease-in-out;\n }\n`;\n\nexport const BoxDiscountAnimationContainer = styled.div`\n background-color: inherit;\n\n \n .fading-appear {\n opacity: 1;\n }\n \n .fading-enter,\n .fading-exit {\n opacity: 0;\n }\n .fading-enter-active,\n .fading-appear-active {\n opacity: 1;\n }\n .fading-exit-active {\n opacity: 0;\n }\n .fading-enter-active,\n .fading-appear-active,\n .fading-exit-active {\n transition: opacity 400ms ease-in-out;\n }\n`;","//@flow\n\nimport React from \"react\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport { Wrapper, WrapperRightColumn, WrapperLeftColumn, FormWrapper, LoaderWrapper, AnimationContainer, BoxDiscountAnimationContainer } from \"./Styles/PriceOnTheLeftStyles\";\n\nimport { ColorType } from \"../../../../lib/types/dataTypes.components\";\nimport { BoxHeader, BoxPrices, BoxDiscount } from \"../../../PlansBox\";\nimport Tabs from \"../../../Tabs\";\nimport SpinContainer from \"../../../SpinContainer\";\n\nimport LoadingIcon from \"../../../../svg/loading-icon.svg\";\n\ntype PaymentViewBoxProps = {\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme: \"light\" | \"dark\",\n price: number,\n currency: \"$\" | \"€\" | \"₤\",\n oldPrice?: number,\n periodText?: string,\n discountPercent?: number,\n showDiscountCorner?: boolean,\n discountPeriod?: number,\n discountValue?: string | number,\n discountType?: \"percent\" | \"fixedamount\" | \"text\",\n discountLabelBackground?: string,\n discountLabelBackgroundMobile?: string,\n discountLabelBackgroundRetina?: string,\n discountLabelWidth?: string,\n discountLabelHeight?: string,\n discountLabelPositionLeft?: string,\n renderView: () => string,\n selectedTabView: \"card\" | \"paypal\",\n tabs: {},\n loading: boolean,\n title: string,\n showHeader: boolean,\n priceLoading?: Boolean\n};\n\nconst PaymentViewBoxPriceOnTheLeft = ({\n color,\n theme,\n price,\n currency = \"$\",\n oldPrice,\n discountPeriod,\n discountValue,\n discountType,\n discountLabelBackground,\n discountLabelBackgroundMobile,\n discountLabelBackgroundRetina,\n discountLabelWidth,\n discountLabelHeight,\n discountLabelPositionLeft,\n showCurrencyCode = true,\n renderView,\n selectedTabView,\n tabs,\n loading = true,\n title,\n showHeader = false,\n priceLoading = fasle\n}: PaymentViewBoxProps) => {\n \n return (\n
\n
\n \n
\n
{ }}\n onExited={() => { }}\n appear\n >\n
\n \n
\n\n
\n
\n\n
\n\n
\n \n
\n\n
\n\n
\n
\n
\n
{ }}\n onExited={() => { }}\n appear\n >\n
\n
\n
\n
\n
\n \n
\n {renderView()}\n
\n\n
\n
\n );\n};\n\nexport default PaymentViewBoxPriceOnTheLeft;","import styled from \"styled-components\";\n\nimport { WrapperLeftColumn, WrapperRightColumn } from \"./PriceOnTheLeftStyles\";\n\nexport const WrapperLeftColumn2 = styled(WrapperLeftColumn)`\n width: 50%;\n padding: 0px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n @media (max-width: 768px) {\n width: 100%;\n display: flex !important;\n }\n`\n\nexport const WrapperRightColumn2 = styled(WrapperRightColumn)`\n width: 50%;\n padding: 11px 40px 40px;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-direction: column;\n background-color: #fff;\n border-radius: 21px;\n\n @media (max-width: 768px) {\n width: 100%;\n padding: 20px;\n box-sizing: border-box;\n }\n\n &>div {\n width: 100%;\n }\n`;\n\nexport const PeriodText = styled.div`\n font-size: 16px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 0.98;\n letter-spacing: normal;\n text-align: center;\n color: #fff;\n text-transform: uppercase;\n margin-top: 8px;\n\n @media (max-width: 768px) {\n margin-top: 0px;\n font-size: 12px;\n }\n`;\n\nexport const PlanInfo = styled.div`\n color: #fff;\n padding: 12px 20px;\n box-sizing: border-box;\n font-size: 20px;\n font-weight: bold;\n`; ","//@flow\n\nimport React, { useState, useEffect, useMemo } from \"react\";\nimport styled from \"styled-components\";\nimport { hiDPI } from \"polished\";\n\nimport { __ } from \"../lib/utils\";\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\nimport { ColorType } from \"../lib/types/dataTypes.components\";\n\ntype TabType = {\n tabId: string | number,\n tabValue: Array
,\n tabTitle: string,\n tabCustomColor: ColorType,\n clickAction: (tabId: string | number) => void,\n newLabel?: boolean\n};\n\ntype ToggleTabsProps = {\n color: ColorType,\n tabs: Array
,\n activeTab: string | number,\n theme?: \"light\" | \"dark\",\n title?: string,\n width?: string,\n defaultClickAction: (tabId: string | number) => void,\n showBestValued: boolean\n};\n\nconst CONTWIDTHX2 = 300;\nconst CONTWIDTHX3 = 380;\n\nconst ToggleTabs = ({\n tabs,\n theme,\n activeTab = 0,\n color=\"cyan\",\n title,\n disabled,\n width,\n defaultClickAction,\n showBestValued = true,\n}: ToggleTabsProps) => {\n const [chosenTabId, setChosenTabId] = useState(activeTab);\n const tabsContainerWidth = width ? width : (tabs.length === 3 ? CONTWIDTHX3 : CONTWIDTHX2);\n\n const { tabWidth, offsets } = useMemo(() => {\n const tabWidth = (100 / tabs.length)\n const offsets = tabs.reduce((offsetsOut, tab, index) => {\n offsetsOut[tab.tabId] = tabWidth * index;\n return offsetsOut;\n }, {});\n return {tabWidth, offsets};\n }, [tabs]);\n\n useEffect(() => {\n setChosenTabId(activeTab);\n }, [tabs, activeTab])\n\n const handleOnClick = (clickedTabId, event, tabClickAction) => {\n if (disabled) {\n return;\n }\n\n if (clickedTabId === chosenTabId) {\n return;\n }\n\n if (defaultClickAction) {\n defaultClickAction(clickedTabId, event);\n } else if (tabClickAction) {\n tabClickAction(clickedTabId, event);\n }\n\n setChosenTabId(clickedTabId);\n }\n\n const renderTabs = () => {\n return tabs.map(({tabTitle, tabId, clickAction, tabCustomColor, newLabel}, index) => {\n return (\n
\n
handleOnClick(tabId, event, clickAction)}\n color={tabCustomColor || color}\n width={tabWidth}\n className={\"toggle-tab \" + (tabId === activeTab ? \"active\" : \"\" )}\n disabled={disabled}\n >\n {tabTitle}\n {newLabel ?
New
: null}\n \n {index !== tabs.length - 1 ?
: null}\n
\n );\n });\n };\n\n return (\n
\n {title ?
{title}
: null}\n
\n
\n {renderTabs()}\n {(tabs.indexOf(\"lifetime\") !== -1 && showBestValued) ? (\n
\n
\n
{__(\"best_valued\")}
\n
\n ) : null}\n
\n
\n );\n};\n\nexport default ToggleTabs;\n\nconst TabsTitle = styled.div`\n /* font-family: \"Roboto\", sans-serif; */\n font-size: 22px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 0.71;\n letter-spacing: normal;\n text-align: center;\n color: #ffffff;\n margin-bottom: 18px;\n`;\n\nconst TabsWrapper = styled.div`\n margin: 0px auto 20px auto;\n position: relative;\n display: flex;\n justify-content: space-around;\n align-items: center;\n width: ${props => props.width}px;\n height: 38px;\n border-radius: 19px;\n background-color: rgba(0, 0, 0, 0.1);\n position: relative;\n\n @media (max-width: 768px) {\n width: 90%;\n }\n`;\n\nconst Tab = styled.div`\n position: relative;\n width: ${props => props.width}%;\n text-align: center;\n /* font-family: \"Roboto\", sans-serif; */\n font-size: 14px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 38px;\n letter-spacing: -0.35px;\n color: ${props => (props.active ? COLORS[props.color].mainColor : \"#333333\")};\n text-transform: uppercase;\n z-index: 2;\n transition: all 0.25s ease-in-out;\n cursor: pointer !important;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover {\n color: ${props => COLORS[props.color].mainColor};\n }\n`;\n\nconst Separator = styled.div`\n position: relative;\n display: inline-block;\n width: 1px;\n height: 16px;\n background-color: #cccccc;\n`;\n\nconst SelectedBar = styled.div`\n width: calc(${props => props.width}% - 4px);\n height: 34px;\n border-radius: 17px;\n position: absolute;\n top: 2px;\n left: calc(${props => props.leftOffset}% + 2px);\n background-color: #ffffff;\n z-index: 1;\n transition: all 0.25s ease-in-out;\n box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.07);\n`;\n\nconst BestValue = styled.div`\n position: absolute;\n top: -32px;\n left: 100%;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nconst BestValueArrow = styled.div`\n position: absolute;\n right: -30px;\n top: 3px;\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n width: 78px;\n height: 26px;\n`;\n\nconst BestValueText = styled.div`\n font-family: \"Marck Script\";\n font-size: 19px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1;\n letter-spacing: 0.38px;\n text-align: left;\n color: #000000;\n position: absolute;\n width: 92px;\n top: 37px;\n left: 12px;\n transition: all 0.3s ease-in-out;\n\n @media (min-width: 1350px) {\n width: 200px;\n top: 44px;\n }\n`;\n\nconst New = styled.span`\n display: inline-block;\n font-size: 11px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 0.8;\n letter-spacing: normal;\n text-align: center;\n color: #fff;\n padding: 4px;\n border-radius: 3px;\n background-color: ${props => COLORS[props.color].mainColor};\n margin-left: 6px;\n`;\n","//@flow\n\nimport React, { useEffect, useState } from \"react\";\nimport { CSSTransition } from \"react-transition-group\";\nimport styled from \"styled-components\";\n\nimport { Wrapper, FormWrapper, LoaderWrapper, AnimationContainer, BoxDiscountAnimationContainer } from \"./Styles/PriceOnTheLeftStyles\";\n\nimport { ColorType } from \"../../../../lib/types/dataTypes.components\";\nimport { BoxPrices, BoxDiscount } from \"../../../PlansBox\";\nimport SpinContainer from \"../../../SpinContainer\";\n\nimport LoadingIcon from \"../../../../svg/loading-icon.svg\";\nimport { PeriodText, PlanInfo, WrapperLeftColumn2, WrapperRightColumn2 } from \"./Styles/PricesOnTheLseftStyles2\";\nimport ToggleTabs from \"../../../ToggleTabs\";\nimport { signToCurrency } from \"@pcloud/web-utilities/dist/payments/constants.payments\";\n\ntype PaymentViewBoxProps = {\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme: \"light\" | \"dark\",\n price: number,\n currency: \"$\" | \"€\" | \"₤\",\n oldPrice?: number,\n periodText?: string,\n discountPercent?: number,\n showDiscountCorner?: boolean,\n discountPeriod?: number,\n discountValue?: string | number,\n discountType?: \"percent\" | \"fixedamount\" | \"text\",\n renderView: () => string,\n selectedTabView: \"card\" | \"paypal\",\n tabs: {},\n loading: boolean,\n title: string,\n showHeader: boolean,\n priceLoading?: Boolean\n};\n\nconst PaymentViewBoxPriceOnTheLeft2 = ({\n color,\n theme,\n price,\n currency = \"$\",\n oldPrice,\n discountPeriod,\n discountValue,\n discountType,\n showCurrencyCode = true,\n renderView,\n selectedTabView,\n tabs,\n periodText,\n loading = true,\n title,\n priceLoading = fasle\n}: PaymentViewBoxProps) => {\n const [isMobile, setIsMobile] = useState(window.innerWidth <= 768)\n\n useEffect(() => {\n const resizeEventListener = () => {\n setIsMobile(window.innerWidth <= 768);\n };\n\n window.addEventListener(\"resize\", resizeEventListener);\n\n return () => {\n window.removeEventListener(\"resize\", resizeEventListener);\n }\n }, [])\n\n return (\n
\n
\n {isMobile ? (\n
{`${title} / ${price} ${signToCurrency[currency]}`}
\n ) : null }\n {!isMobile ? (\n
\n
\n
{ }}\n onExited={() => { }}\n appear\n >\n
\n \n
\n
\n
\n {periodText}\n
\n
\n ) : null}\n
\n
\n
\n {/*
*/}\n
\n
\n \n
\n
{ }}\n onExited={() => { }}\n appear\n >\n
\n
\n
\n
\n
\n \n
\n {renderView()}\n
\n
\n
\n );\n};\n\nexport default PaymentViewBoxPriceOnTheLeft2;\n\nconst TabsWrapper = styled.div`\n opacity: ${({ visible }) => (visible ? \"1\" : \"0\")};\n visibility: ${({ visible }) => (visible ? \"visible\" : \"hidden\")};\n transition: opacity 250ms ease-in-out;\n\n @media (max-width: 768px) {\n display: ${({ visible }) => visible ? \"block\" : \"none\"};\n }\n`;","//@flow\n\nimport React, { useState, useEffect, useRef, useCallback } from \"react\";\nimport { sha256 } from \"js-sha256\";\n\nimport {\n signToCurrency,\n __,\n hrefSearch,\n rcookie,\n setcookie,\n isInternetExplorer\n} from \"../../../lib/utils\";\n\nimport {\n planBoxTexts,\n planNames,\n gaPeriods,\n PASS_PLANS_PER_PERIOD,\n plansQuota\n} from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { MAX_CUSTOM_TRAFFIC_COUNT } from \"@pcloud/web-utilities/dist/plans/constants.plans\";\nimport { ColorType, PlanIDType, Userinfo } from \"../../../lib/types/dataTypes.components\";\nimport { getPromoParam, sendAnalyticsEvent } from \"@pcloud/web-utilities/dist/lib/ptr\";\n\nimport CreditCardBox from \"../../PaymentComponents/CreditCardBox\";\nimport PaypalBox from \"../../PaymentComponents/PaypalBox\";\nimport CreditCardFormTemplate from \"../../PaymentComponents/CreditCardFormTemplate\";\nimport PrefilledCreditCardForm from \"../../PaymentComponents/PrefilledCreditCardForm\";\nimport { sendCJConversionTag } from \"@pcloud/web-utilities/dist/lib/cjAffiliate\";\nimport { get6HData, send6HData } from \"@pcloud/web-utilities/dist/lib/6HAgancy\";\n\nimport diffs from \"../../../lib/diffs\";\nimport { SubscriptionUpdate } from \"../../../lib/payments\";\n\nimport PaymentViewBoxDefault from \"./planBoxTemplates/PaymentViewBoxDefault\";\nimport PaymentViewBoxPriceOnTheLeft from \"./planBoxTemplates/PaymentViewBoxPriceOnTheLeft\";\nimport PaymentViewBoxPriceOnTheLeft2 from \"./planBoxTemplates/PaymentViewBoxPriceOnTheLeft2\";\nimport { getGlobalLocationId } from \"@pcloud/web-utilities/dist/api/utils.api\";\n\ntype PaymentViewBoxProps = {\n planId: Array
,\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme: \"light\" | \"dark\",\n price: number,\n currency: \"$\" | \"€\" | \"₤\",\n country: string,\n buttonAction: (planId: PlanIDType, billingPeriod: \"month\" | \"year\" | \"lifetime\") => void,\n oldPrice?: number,\n periodText?: string,\n discountPercent?: number,\n discount?: string, \n userInfo: Userinfo,\n paymentProvider: string,\n showDiscountCorner?: boolean,\n setCart: () => void,\n setPaymentProvider: () => void,\n open3DsecureIframe: () => void,\n on3DsecureError: () => void,\n setsfPaymentSourceID: () => void,\n cjData: any,\n setPaymentInitiated: () => void,\n getCurrentStorageCount: () => number,\n onUserInfoChangeAfterPayment: () => void,\n discountPeriod?: number,\n limitedPeriodDiscount?: string,\n itemsPriceData: any,\n setUserInfo?: () => void,\n template: \"default\" | \"price-on-the-left\"\n};\n\nconst PaymentViewBox = (props: PaymentViewBoxProps) => {\n const {\n planId,\n billingPeriod,\n color,\n theme,\n price,\n currency = \"$\",\n country = \"fr\",\n discount,\n userInfo,\n setCart,\n paymentProvider,\n setsfPaymentSourceID,\n setPaymentProvider,\n open3DsecureIframe,\n on3DsecureError,\n cjData,\n setPaymentInitiated,\n getCurrentStorageCount = () => 0,\n limitedPeriodDiscount,\n itemsPriceData,\n onUserInfoChangeAfterPayment = () => {},\n template = \"default\",\n setUserInfo\n } = props;\n const [view, setView] = useState(\"card\");\n const DEFAULT_TABS = useRef([\n {\n tabId: \"card\",\n tabAttributeId: \"credit-card\",\n tabTitle: __(\"credit_card\", \"Credit Card\"),\n tabValue: \"card\",\n clickAction: setView\n },\n {\n tabId: \"paypal\",\n tabAttributeId: \"tab-pcl-pp\",\n tabTitle: \"Paypal\",\n tabValue: \"paypal\",\n clickAction: setView\n }\n ]);\n const [tabs, setTabs] = useState(DEFAULT_TABS.current);\n const [userPaymentSource, setUserPaymentSource] = useState(null);\n const [cardProvider, setCardProvider] = useState(\"stripe\");\n const [loading, setLoading] = useState(true);\n\n const isIE = isInternetExplorer();\n const texts = planBoxTexts[planId.join(\"+\")];\n const { title: titleObj } = texts;\n const title = titleObj[\"billingPeriod\"] || titleObj.default;\n const { auth } = userInfo;\n const loaderElement = useRef(null);\n const userDiff = useRef(null);\n\n const promoParams = {\n label: getPromoParam(\"label\"),\n channelid: getPromoParam(\"channelid\"),\n passcampaign: getPromoParam(\"passcampaign\"),\n };\n\n useEffect(() => {\n if (hrefSearch(\"ErrCode\") === \"0\") {\n afterPaymentActions(hrefSearch(\"transactionid\"));\n return;\n }\n\n setTabs(DEFAULT_TABS.current);\n setCart(planId);\n loadPaymentData();\n loadSubscribedProducts();\n\n return () => {\n diffs.stop();\n }\n }, []); // []\n\n useEffect(() => {\n subscribeForUserDiff();\n }, [userInfo]);\n\n const getPaymentSource = callback => {\n const dfd = jQuery.Deferred();\n\n if (pCloudGlobals.apiMethod) {\n pCloudGlobals.apiMethod(\n \"listpaymentsources\",\n { auth },\n (res: any) => {\n callback(res);\n dfd.resolve(res);\n },\n {\n errorCallback: dfd.reject\n }\n );\n }\n\n return dfd;\n };\n\n const getPaymentProvider = callback => {\n const dfd = jQuery.Deferred();\n const params = { auth };\n\n if (rcookie(\"forcecard\")) {\n params.card = rcookie(\"forcecard\");\n }\n\n if (rcookie(\"forcecountry\")) {\n params.country = rcookie(\"forcecountry\");\n }\n\n if (isIE) {\n params.browser = \"IE\";\n }\n\n if (pCloudGlobals.apiMethod) {\n pCloudGlobals.apiMethod(\n \"listpaymentmethods\",\n params,\n (res: any) => {\n callback(res);\n dfd.resolve(res);\n },\n {}\n );\n }\n\n return dfd;\n };\n\n const loadPaymentData = () => {\n const returnedValues = {};\n const successCallbackSource = data => (returnedValues.paymentSource = data);\n const successCallbackProvider = data => (returnedValues.paymentProvider = data);\n\n const paymentSourcePromise = getPaymentSource(successCallbackSource);\n const paymentProviderPromise = getPaymentProvider(successCallbackProvider);\n\n $.when.apply($, [paymentSourcePromise, paymentProviderPromise]).done(() => {\n const paymentSourceData = returnedValues.paymentSource;\n const paymentProviderData = returnedValues.paymentProvider;\n let newView = \"card\";\n let newProvider = \"safecharge\";\n let newCardProvider = \"safecharge\";\n\n if (paymentProviderData && paymentProviderData.paymentmethods) {\n const paymentMethod = paymentProviderData.paymentmethods[0];\n newView = paymentMethod.type;\n newProvider = paymentMethod.method;\n newCardProvider = paymentMethod.method;\n }\n\n if (\n paymentSourceData &&\n (paymentSourceData.stripe || paymentSourceData.safecharge || paymentSourceData.paypal)\n ) {\n if (paymentSourceData.stripe) {\n newView = \"card\";\n newProvider = \"stripe\";\n newCardProvider = \"stripe\";\n setUserPaymentSource(paymentSourceData);\n } else if (paymentSourceData.safecharge && (!isIE || (isIE && billingPeriod !== \"lifetime\"))) {\n newView = \"card\";\n newProvider = \"safecharge\";\n newCardProvider = \"safecharge\";\n setUserPaymentSource(paymentSourceData);\n } else if (paymentSourceData.paypal) {\n newView = \"paypal\";\n newProvider = \"paypal\";\n setUserPaymentSource(paymentSourceData);\n }\n\n\n if (billingPeriod !== \"lifetime\") {\n let newTabs = DEFAULT_TABS.current.map(tab =>\n tab.tabId !== newView ? { ...tab, disabled: true } : tab\n );\n setTabs(newTabs);\n DEFAULT_TABS.current = newTabs;\n }\n }\n\n setPaymentProvider(newProvider);\n setCardProvider(newCardProvider);\n setView(newView);\n\n if (loaderElement.current) {\n loaderElement.current.classList.toggle(\"fadein\");\n loaderElement.current.classList.toggle(\"fadeout\");\n }\n\n setTimeout(() => {\n setLoading(false);\n }, 300);\n });\n };\n\n const loadSubscribedProducts = () => {\n const { lastsubscription } = userInfo;\n\n if (lastsubscription && lastsubscription.status != \"active\") {\n return;\n }\n\n let choosenProducts = planId;\n choosenProducts = choosenProducts.map(productId => Number(productId));\n const otherProducts =\n lastsubscription &&\n lastsubscription.products.filter(subscribedProduct => {\n const choosenPremiumProducts = choosenProducts.filter(i => [1, 3, 14, 15].indexOf(i) != -1);\n const userChoosedPremiumProduct = !!choosenPremiumProducts.length;\n const userHasPremiumSubscription = [1, 3, 14, 15].indexOf(subscribedProduct) != -1;\n\n const skipPremium = !(userChoosedPremiumProduct && userHasPremiumSubscription);\n\n return choosenProducts.indexOf(planId) == -1 && skipPremium;\n });\n\n setCart(\n otherProducts && billingPeriod !== \"lifetime\"\n ? choosenProducts.concat(otherProducts)\n : choosenProducts\n );\n };\n\n const applyDiscount = () => {\n var retryCount = 0;\n var totalStorage;\n var totalTraffic;\n\n if (getCurrentStorageCount) {\n totalStorage += getCurrentStorageCount();\n totalTraffic = totalStorage <= MAX_CUSTOM_TRAFFIC_COUNT ? totalStorage : MAX_CUSTOM_TRAFFIC_COUNT;\n }\n\n if (paymentProvider === 'safecharge' && view === 'card') {\n var params = {\n 'auth': auth,\n 'discountcode': limitedPeriodDiscount\n };\n pCloudGlobals.apiMethod('subscriptionapplydiscount', params, function success() {\n $.cookie('total_val', 4.99);\n },\n function error(data) {\n console.log('error data === ', data);\n if (retryCount < 5) {\n retryCount++;\n setTimeout(() => {\n applyDiscount();\n }, 1000)\n }\n }\n );\n }\n\n if (paymentProvider === 'stripe' && view === 'card') {\n var paymentInfo = {\n 'auth': auth,\n 'products': planId[0],\n 'storage': totalStorage,\n 'traffic': totalTraffic,\n 'period': billingPeriod,\n 'discountcode': limitedPeriodDiscount\n };\n\n if ($.cookie('forcecurrency')) {\n paymentInfo.currency = $.cookie('forcecurrency');\n }\n\n if ($.cookie('forcecountry')) {\n paymentInfo.country = $.cookie('forcecountry');\n }\n\n pCloudGlobals.apiMethod('paystripe', paymentInfo, function () {\n $.cookie('total_val', 4.99);\n }, function () {\n if (retryCount < 10) {\n retryCount++\n setTimeout(function () {\n applyDiscount();\n }, 1000);\n }\n })\n }\n\n if (view === 'paypal') {\n const togglePaymentLoader = (action: \"show\" | \"hide\") => {\n let isLoading = action === \"show\";\n isLoading ? onPaymentProcessing() : afterPaymentProcessing();\n };\n\n const params = {\n provider: \"paypal\",\n period: billingPeriod,\n userAuth: auth,\n products: planId,\n discountcode: limitedPeriodDiscount,\n billingAddress: {},\n storage: totalStorage,\n traffic: totalTraffic,\n toggleLoader: togglePaymentLoader,\n };\n\n const payments = new SubscriptionUpdate(params);\n payments.createBraintreePayment({ refresh: false });\n }\n }\n\n const waitForAPItoUpdate = (callback) => {\n const onUpdateSuccess = (diffUserInfo) => {\n if (userDiff.current) {\n userDiff.current();\n }\n \n if (pCloudGlobals && pCloudGlobals.apiMethod) {\n const getUserInfo = (count = 0, prevUserInfo) => {\n const { auth } = userInfo;\n\n if (count > 5) {\n callback({ ...prevUserInfo, auth });\n return;\n }\n\n setTimeout(() => {\n pCloudGlobals.apiMethod('userinfo', { auth }, (userinfo) => {\n if (diffUserInfo.plan && (diffUserInfo.plan !== userinfo.plan || diffUserInfo.quota !== userinfo.quota)) {\n getUserInfo(count + 1, userinfo);\n } else {\n callback({ ...userinfo, auth });\n if (limitedPeriodDiscount) {\n applyDiscount();\n }\n }\n }, {\n errorCallback: (error) => {\n console.error(error);\n callback(null);\n if (limitedPeriodDiscount) {\n applyDiscount();\n }\n },\n forceFresh: true\n })\n }, 1000);\n }\n\n setTimeout(() => {\n getUserInfo(0);\n }, 1500);\n } else {\n callback(null);\n if (limitedPeriodDiscount) {\n applyDiscount();\n }\n }\n };\n\n subscribeForUserDiff(onUpdateSuccess);\n };\n\n const subscribeForUserDiff = onChange => {\n if (!userInfo) {\n return;\n }\n\n if (userDiff.current) {\n userDiff.current(true);\n }\n\n const { auth } = userInfo;\n\n userDiff.current = diffs.listen(auth, entries => {\n if (entries.length) {\n const modifyUserEvents = entries.filter(({ event, userinfo }) => {\n return event === \"modifyuserinfo\" && userinfo;\n });\n \n if (modifyUserEvents.length) {\n const { userinfo } = modifyUserEvents[modifyUserEvents.length - 1];\n if (onChange) {\n onChange(userinfo);\n }\n }\n }\n });\n };\n\n const subscribeForPaymentSource = ({ callback, transactionID }) => {\n let paymentSourceId = 0;\n let creditCardPaymentSource = 0;\n\n if (userPaymentSource && userPaymentSource.stripe) {\n const stripeSources = userPaymentSource.stripe.sources;\n creditCardPaymentSource = stripeSources[stripeSources.length - 1];\n } else if (userPaymentSource && userPaymentSource.safecharge) {\n const sfSources = userPaymentSource.safecharge.sources;\n creditCardPaymentSource = sfSources[sfSources.length - 1];\n }\n\n if (creditCardPaymentSource) {\n paymentSourceId = creditCardPaymentSource.paymentsourceid;\n }\n\n const params = {\n subscribefor: \"paymentsource\",\n auth: auth\n };\n\n if (paymentSourceId) {\n params.paymentsourceid = paymentSourceId;\n }\n\n if (pCloudGlobals && pCloudGlobals.apiMethod) {\n pCloudGlobals.apiMethod(\n \"subscribe\",\n params,\n ({ paymentsouce }) => {\n let providerSourceID;\n if (paymentsouce && paymentsouce.sources.length) {\n const paymentSoucesLength = paymentsouce.sources.length;\n providerSourceID = paymentsouce.sources[paymentSoucesLength - 1].providersourceid;\n }\n if (providerSourceID) {\n setsfPaymentSourceID(providerSourceID);\n }\n callback(transactionID);\n },\n {\n errorCallback: () => {\n callback(transactionID);\n },\n timeout: 0\n }\n );\n } else {\n callback(transactionID);\n }\n };\n\n const subscribeForUserInfoChange = () => {\n waitForAPItoUpdate((userInfo) => {\n if (userInfo) {\n setUserInfo(userInfo);\n };\n onUserInfoChangeAfterPayment(userInfo);\n });\n }\n\n const abbortUserInfoChangeSubscribe = () => {\n if (userDiff.current) {\n userDiff.current(true);\n }\n }\n\n const afterPaymentActions = useCallback(res => {\n const transactionID = res.transactionId || res.transactionid || res.id || \"\";\n const analyticsParams = {\n category: \"promo\",\n action: \"purchase\",\n label: promoParams.label || \"www-site\",\n os: 4\n };\n const analyticsData = {\n revenue: price,\n currency: signToCurrency[currency] || \"USD\"\n };\n const data6H = get6HData();\n\n\n if (promoParams.channelid) {\n analyticsData.channelid = promoParams.channelid;\n }\n\n if (promoParams.passcampaign) {\n analyticsData.passcampaign = promoParams.passcampaign;\n }\n\n sendAnalyticsEvent(analyticsParams, analyticsData);\n\n // if (typeof ga4 !== \"undefined\") {\n // const ga4Items = [{\n // item_name: planId.map(planID => planNames[planID]).join(\" + \") + \" \" + gaPeriods[billingPeriod],\n // item_brand: planId.some(planID => PASS_PLANS_PER_PERIOD[billingPeriod].includes(planID)) ? \"pCloudPass\" : \"pCloud\",\n // item_category: gaPeriods[billingPeriod],\n // item_variant: plansQuota[planId.find(planID => plansQuota[planID])] || \"\",\n // affiliation: rcookie(\"ref\"),\n // coupon: discount || \"\",\n // index: 0,\n // price: price,\n // currency: signToCurrency[currency] || \"USD\",\n // quantity: 1\n // }];\n\n // ga4({\n // eventname: \"purchase\",\n // ecommerce: {\n // currency: signToCurrency[currency],\n // value: price,\n // transaction_id: transactionID,\n // payment_type: view === \"ccard\" ? cardProvider : view,\n // items: ga4Items\n // }\n // })\n // }\n\n const itemsInfo = [\n {\n name: planId.map(planid => planNames[planid]).join(\" + \"),\n price: price,\n quantity: 1\n }\n ];\n\n gtagAds('event', 'conversion', { \n 'send_to': 'AW-946159937/3Uu5CKv9wo0YEMGClcMD',\n 'value': price,\n 'currency': signToCurrency[currency] || \"USD\",\n 'transaction_id': transactionID,\n items: itemsInfo\n });\n\n if (typeof ttq !== \"undefined\" && ttq.track && typeof ttq.track == \"function\") {\n const itemsInfo = planId.map(planid => {\n if (typeof planid === \"string\" && planid.indexOf(\"_\") !== -1) {\n const idSplitArr = planid.split(\"_\");\n const customPlanId = idSplitArr[0];\n planid = customPlanId;\n }\n\n let productPrice = 0;\n if (itemsPriceData[billingPeriod] && itemsPriceData[billingPeriod].length > 0) {\n const product = itemsPriceData[billingPeriod].find(({productid}) => productid == planid);\n if (product) {\n productPrice = product.pricecents / 100\n }\n }\n\n return {\n content_id: planid,\n content_type: 'product',\n content_name: planNames[planid],\n quantity: 1,\n price: productPrice\n };\n });\n\n ttq.track('CompletePayment', {\n contents: itemsInfo,\n value: price,\n currency: signToCurrency[currency] || \"USD\",\n });\n }\n\n if (typeof fbq == \"function\") {\n let sha256UserID = sha256(user.userid.toString());\n\n if (sha256UserID.length) {\n sha256UserID += `-${getGlobalLocationId()}`;\n }\n\n fbq(\"track\", billingPeriod === \"lifetime\" ? \"Purchase\" : \"Subscribe\", {\n value: price,\n currency: signToCurrency[currency] || \"USD\",\n });\n }\n window.uetq = window.uetq || [];\n window.uetq.push('event', 'purchase', { 'revenue_value': price, currency: (signToCurrency[currency] || 'USD') });\n\n cjData.orderId = transactionID;\n delete cjData.cartSubtotal;\n sendCJConversionTag(cjData);\n\n if (data6H && pCloudGlobals.apiMethod) {\n send6HData(pCloudGlobals.apiMethod, data6H);\n }\n\n if (sessionStorage.pCloud) {\n sessionStorage.removeItem(\"pCloud\");\n }\n\n const newProvider = view === \"card\" ? cardProvider : \"paypal\";\n setPaymentProvider(newProvider);\n setcookie(\"exit-intent-hide\", 1, 1);\n });\n\n const onPaymentSuccess = transactionID => {\n if (cardProvider === \"safecharge\" && view === \"card\") {\n subscribeForPaymentSource({\n callback: afterPaymentActions,\n transactionID: transactionID\n });\n } else {\n afterPaymentActions(transactionID);\n }\n };\n\n const onPaymentProcessing = () => {\n const newTabs = tabs.map(tab => {\n return { disabled: true, ...tab };\n });\n setTabs(newTabs);\n setPaymentInitiated(true);\n setcookie(\"exit-intent-hide\", 1, 1);\n };\n\n const afterPaymentProcessing = () => {\n setTabs(DEFAULT_TABS.current);\n setcookie(\"exit-intent-hide\", \"\", 1);\n };\n\n const renderView = () => {\n if (view === \"card\") {\n let creditCardPaymentSource = null;\n\n if (userPaymentSource && userPaymentSource.stripe) {\n const stripeSources = userPaymentSource.stripe.sources;\n creditCardPaymentSource = stripeSources[stripeSources.length - 1];\n } else if (userPaymentSource && userPaymentSource.safecharge && !isIE) {\n const sfSources = userPaymentSource.safecharge.sources;\n creditCardPaymentSource = sfSources[sfSources.length - 1];\n }\n\n return (\n
\n );\n } else if (view === \"paypal\") {\n return (\n
\n );\n }\n };\n\n let PaymentViewBox = PaymentViewBoxDefault;\n\n if (template == \"price-on-the-left\") {\n PaymentViewBox = PaymentViewBoxPriceOnTheLeft;\n }\n\n if (template == \"price-on-the-left-2\") {\n PaymentViewBox = PaymentViewBoxPriceOnTheLeft2;\n }\n\n return
;\n};\n\nexport default PaymentViewBox;\n","//@flow\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nimport { planBoxTexts, planBoxPeriodTexts } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { ColorType, PlanIDType } from \"../../../../lib/types/dataTypes.components\";\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\nimport { TimerTemplate } from \"@pcloud/web-utilities/dist/resources/components/TimerTemplate\";\nimport TimerContainer from \"@pcloud/web-utilities/dist/resources/components/TimerContainer\";\nimport { ButtonWithIcon } from \"@pcloud/web-utilities/dist/resources/components/ButtonDefault\";\n\nimport { BoxHeader, BoxPrices, BoxDiscount, PaymentOptions } from \"../../../PlansBox\";\nimport { __ } from \"../../../../lib/utils\";\nimport { detectIsMobile } from \"@pcloud/web-utilities/dist/lib/utils\";\n\ntype PlanViewBoxProps = {\n planId: PlanIDType,\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme: \"light\" | \"dark\",\n timerTheme: string,\n price: number,\n currency: \"$\" | \"€\" | \"₤\",\n timerExp?: number,\n oldPrice?: number,\n periodText?: string,\n discountPercent?: number,\n increasingPrice?: boolean,\n showDiscountCorner: boolean,\n discountPeriod?: number,\n showPaymentOptions?: boolean,\n showPlanDescriptionText?: boolean,\n renderSocialProofText: () => string,\n renderFeatures: () => string,\n onActionButtonClick: () => void\n};\n\nconst PlanBoxDefaultView = ({\n planId,\n billingPeriod,\n color,\n theme,\n timerTheme,\n price,\n currency,\n timerExp,\n oldPrice,\n periodText,\n discountPercent,\n increasingPrice,\n showDiscountCorner = true,\n discountPeriod,\n showPaymentOptions,\n showCurrencyCode = true,\n showPlanDescriptionText = false,\n showSocialProofOnlyMobile = false,\n renderSocialProofText,\n renderFeatures,\n onActionButtonClick\n}: PlanViewBoxProps) => {\n const texts = planBoxTexts[planId.join(\"+\")] || planBoxTexts[planId];\n const { title: titleObj, description, features, buttonText: buttonTextObj } = texts;\n const buttonText = buttonTextObj[billingPeriod] || buttonTextObj.default;\n const title = titleObj[billingPeriod] || titleObj.default;\n const isMobile = detectIsMobile();\n\n return (\n
\n
\n\n
\n
\n\n
\n\n
\n {timerExp ? (\n
\n
\n {increasingPrice ? null :
{__(\"timer_hurryup\")}
}\n
\n
{ }}\n renderTimer={TimerTemplate}\n timerColor={timerTheme === \"dark\" ? \"353535\" : \"fafafa\"}\n textColor={timerTheme === \"dark\" ? \"ffffff\" : \"444444\"}\n showLabels\n />\n
\n {increasingPrice ? (\n
{__(\"easter_promo_timer\")}
\n ) : null}\n
\n
\n ) : null}\n\n
\n
\n
\n
\n
\n {showPlanDescriptionText && description ? (\n
{description}
\n ) : null}\n {showSocialProofOnlyMobile ? (isMobile && showSocialProofOnlyMobile ? renderSocialProofText() : null) : renderSocialProofText() }\n
{renderFeatures()}
\n {showPaymentOptions ?
: null}\n
\n );\n};\n\nexport default PlanBoxDefaultView;\n\nconst Wrapper = styled.div`\n /* font-family: Inter, Roboto; */\n position: relative;\n width: 100%;\n box-sizing: border-box;\n padding: 36px 40px 36px 40px;\n border-radius: 10px;\n box-shadow: 3.8px 5.9px 10px 0 rgba(0, 0, 0, 0.05);\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#ffffff\";\n }\n }};\n overflow: hidden;\n min-height: ${({ showPaymentOptions, timerExp }) => showPaymentOptions && timerExp ? \"743px\" : \"677px\"};\n\n @media (max-width: 768px) {\n padding: 25px 20px;\n min-height: 0px;\n border-radius: 0px;\n }\n\n .tooltip {\n padding: 15px 20px;\n max-width: 250px;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.35;\n font-weight: 400;\n text-align: center;\n }\n`;\n\nconst FeaturesWrapper = styled.div`\n margin-top: 39px;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nconst Timeleft = styled.div`\n text-align: center;\n font-size: 10px;\n font-weight: 500;\n color: #878787;\n letter-spacing: -0.3px;\n text-transform: uppercase;\n margin: 10px auto 10px auto;\n`;\n\nconst BoxWrapper = styled.div``;\n\nconst TimerWrapper = styled.div`\n margin-bottom: 34px;\n padding: 20px 20px 11px 20px;\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"rgba(255,255,255,0.07)\";\n } else {\n return \"#f8f8f8\";\n }\n }};\n border-radius: 12px;\n border: solid 1px #f6f6f6;\n border-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"transparent\";\n } else {\n return \"#f6f6f6\";\n }\n }};\n box-sizing: border-box;\n`;\n\nconst PlanDescription = styled.div`\n margin: 26px auto 0px auto;\n /* font-family: Inter, Roboto; */\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.14;\n letter-spacing: -0.35px;\n text-align: center;\n color: ${props => (props.disabled ? \"#cccccc\" : \"#878787\")};\n height: 32px;\n\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nconst SocialProofText = styled.div`\n font-size: 18px;\n text-align: center;\n color: ${props => (props.color && COLORS[props.color] ? COLORS[props.color].socialProofSecondColor : \"#000\" )};\n margin: 20px 0px 0px 0px;\n display: flex;\n align-items: center;\n align-self: center;\n flex-direction: row;\n gap: 20px;\n\n & > span:first-child {\n color: ${props => (props.color && COLORS[props.color] ? COLORS[props.color].mainColor : \"#000\" )};\n font-size: bold;\n flex-shrink: 0;\n line-height: 0.81;\n\n & > span:last-child {\n align-self: center;\n flex-shrink: 1;\n text-align: left;\n }\n }\n`;","//@flow\nimport React from \"react\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport { Wrapper, WrapperRightColumn, WrapperLeftColumn, FeaturesWrapper, Timeleft, TimerWrapper, PlanDescription, BoxDiscountAnimationContainer } from \"./Styles/PriceOnTheLeftStyles\";\nimport { planBoxTexts } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { ColorType, PlanIDType } from \"../../../../lib/types/dataTypes.components\";\nimport { TimerTemplate } from \"@pcloud/web-utilities/dist/resources/components/TimerTemplate\";\nimport TimerContainer from \"@pcloud/web-utilities/dist/resources/components/TimerContainer\";\nimport { ButtonWithIcon } from \"@pcloud/web-utilities/dist/resources/components/ButtonDefault\";\n\nimport { BoxHeader, BoxPrices, BoxDiscount, PaymentOptions } from \"../../../PlansBox\";\n\nimport { __ } from \"../../../../lib/utils\";\nimport { detectIsMobile } from \"@pcloud/web-utilities/dist/lib/utils\";\n\ntype PlanViewBoxProps = {\n planId: PlanIDType,\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme: \"light\" | \"dark\",\n timerTheme: string,\n price: number,\n currency: \"$\" | \"€\" | \"₤\",\n timerExp?: number,\n oldPrice?: number,\n periodText?: string,\n increasingPrice?: boolean,\n showDiscountCorner: boolean,\n discountPeriod?: number,\n discountValue?: string | number,\n discountType?: \"percent\" | \"fixedamount\" | \"text\",\n discountLabelBackground?: string,\n discountLabelBackgroundMobile?: string,\n discountLabelBackgroundRetina?: string,\n discountLabelWidth?: string,\n discountLabelHeight?: string,\n discountLabelPositionLeft?: string,\n showPaymentOptions?: boolean,\n priceLoading?: boolean,\n showPlanDescriptionText?: boolean,\n renderSocialProofText: () => string,\n renderFeatures: () => string,\n onActionButtonClick: () => void\n};\n\nconst PlanBoxPriceOnTheLeftView = ({\n planId,\n billingPeriod,\n color,\n theme,\n timerTheme,\n price,\n currency,\n timerExp,\n oldPrice,\n increasingPrice,\n discountPeriod,\n discountValue,\n discountType,\n discountLabelBackground,\n discountLabelBackgroundMobile,\n discountLabelBackgroundRetina,\n discountLabelWidth,\n discountLabelHeight,\n discountLabelPositionLeft,\n showPaymentOptions,\n showCurrencyCode = true,\n showPlanDescriptionText = false,\n showSocialProofOnlyMobile = false,\n priceLoading = false,\n renderSocialProofText,\n renderFeatures,\n onActionButtonClick\n}: PlanViewBoxProps) => {\n const texts = planBoxTexts[planId.join(\"+\")] || planBoxTexts[planId];\n const { title: titleObj, description, buttonText: buttonTextObj } = texts;\n const buttonText = buttonTextObj[billingPeriod] || buttonTextObj.default;\n const title = titleObj[billingPeriod] || titleObj.default;\n const isMobile = detectIsMobile();\n\n return (\n
\n \n
\n
\n
{ }}\n onExited={() => { }}\n appear\n >\n
\n \n
\n\n
\n
\n\n
\n\n
\n\n
\n\n
\n\n {showPlanDescriptionText && description ? (\n
{description}
\n ) : null}\n
{renderFeatures()}
\n {showPaymentOptions ?
: null}\n\n
\n {timerExp ? (\n
\n
\n {increasingPrice ? null :
{__(\"timer_hurryup\")}
}\n
\n
{ }}\n renderTimer={TimerTemplate}\n timerColor={timerTheme === \"dark\" ? \"353535\" : \"fafafa\"}\n textColor={timerTheme === \"dark\" ? \"999999\" : \"444444\"}\n showLabels\n />\n
\n {increasingPrice ? (\n
{__(\"easter_promo_timer\")}
\n ) : null}\n
\n
\n ) : null}\n\n
\n
\n
\n
\n\n {showSocialProofOnlyMobile ? (isMobile && showSocialProofOnlyMobile ? renderSocialProofText() : null) : renderSocialProofText() }\n\n
\n
\n );\n};\n\nexport default PlanBoxPriceOnTheLeftView;","//@flow\nimport React, { useEffect, useState } from \"react\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport { Wrapper, FeaturesWrapper, Timeleft, TimerWrapper, PlanDescription, BoxDiscountAnimationContainer } from \"./Styles/PriceOnTheLeftStyles\";\nimport { WrapperRightColumn2, WrapperLeftColumn2, PeriodText } from \"./Styles/PricesOnTheLseftStyles2\";\nimport { planBoxTexts } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { TimerTemplate } from \"@pcloud/web-utilities/dist/resources/components/TimerTemplate\";\nimport TimerContainer from \"@pcloud/web-utilities/dist/resources/components/TimerContainer\";\nimport { ColorType, PlanIDType } from \"../../../../lib/types/dataTypes.components\";\nimport { ButtonWithIcon } from \"@pcloud/web-utilities/dist/resources/components/ButtonDefault\";\n\nimport { BoxPrices, BoxDiscount, PaymentOptions } from \"../../../PlansBox\";\n\nimport { __, calculateDiscountPercent } from \"../../../../lib/utils\";\n\ntype PlanViewBoxProps = {\n planId: PlanIDType,\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme: \"light\" | \"dark\",\n timerTheme: string,\n price: number,\n currency: \"$\" | \"€\" | \"₤\",\n timerExp?: number,\n oldPrice?: number,\n periodText?: string,\n increasingPrice?: boolean,\n showDiscountCorner: boolean,\n discountPeriod?: number,\n discountValue?: string | number,\n discountType?: \"percent\" | \"fixedamount\" | \"text\",\n showPaymentOptions?: boolean,\n priceLoading?: boolean,\n showPlanDescriptionText?: boolean,\n renderSocialProofText: () => string,\n renderFeatures: () => string,\n onActionButtonClick: () => void\n};\n\nconst PlanBoxPriceOnTheLeft2View = ({\n planId,\n billingPeriod,\n color,\n theme,\n timerTheme,\n price,\n currency,\n timerExp,\n oldPrice,\n increasingPrice,\n discountPeriod,\n discountValue,\n discountType,\n discountLabelBackgroundMobile,\n showPaymentOptions,\n showCurrencyCode = true,\n showPlanDescriptionText = false,\n showSocialProofOnlyMobile = false,\n priceLoading = false,\n periodText,\n renderSocialProofText,\n renderFeatures,\n renderTabs,\n onActionButtonClick\n}: PlanViewBoxProps) => {\n const [isMobile, setIsMobile] = useState(window.innerWidth <= 768)\n const texts = planBoxTexts[planId.join(\"+\")] || planBoxTexts[planId];\n const { title: titleObj, description, buttonText: buttonTextObj } = texts;\n const buttonText = buttonTextObj[billingPeriod] || buttonTextObj.default;\n const title = titleObj[billingPeriod] || titleObj.default;\n\n useEffect(() => {\n const resizeEventListener = () => {\n setIsMobile(window.innerWidth <= 768);\n };\n\n window.addEventListener(\"resize\", resizeEventListener);\n\n return () => {\n window.removeEventListener(\"resize\", resizeEventListener);\n }\n }, [])\n\n return (\n
\n
\n {isMobile ? renderTabs() : null}\n
\n
{ }}\n onExited={() => { }}\n appear\n >\n
\n \n
\n
\n
\n {periodText}\n
\n
\n\n
\n {!isMobile ? renderTabs() : null}\n {showPlanDescriptionText && description ? (\n
{description}
\n ) : null}\n
{renderFeatures()}
\n {showPaymentOptions ?
: null}\n\n
\n {timerExp ? (\n
\n
\n {increasingPrice ? null :
{__(\"timer_hurryup\")}
}\n
\n
{ }}\n renderTimer={TimerTemplate}\n timerColor={timerTheme === \"dark\" ? \"353535\" : \"fafafa\"}\n textColor={timerTheme === \"dark\" ? \"999999\" : \"444444\"}\n showLabels\n />\n
\n {increasingPrice ? (\n
{__(\"easter_promo_timer\")}
\n ) : null}\n
\n
\n ) : null}\n\n
\n
\n
\n
\n
\n {showSocialProofOnlyMobile ? (isMobile ? renderSocialProofText() : null) : renderSocialProofText() }\n
\n );\n};\n\nexport default PlanBoxPriceOnTheLeft2View;","//@flow\n\nimport React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport reactStringReplace from \"react-string-replace\";\n\nimport { planBoxTexts } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { ColorType, PlanIDType } from \"../../../lib/types/dataTypes.components\";\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\n\nimport { BoxFeature } from \"../../PlansBox\";\nimport { __ } from \"../../../lib/utils\";\n\nimport PlanBoxDefaultView from \"./planBoxTemplates/PlanBoxDefaultView\";\nimport PlanBoxPriceOnTheLeftView from \"./planBoxTemplates/PlanBoxPriceOnTheLeftView\";\nimport PlanBoxPriceOnTheLeft2View from \"./planBoxTemplates/PlanBoxPriceOnTheLeft2View\";\n\ntype PlanViewBoxProps = {\n planId: PlanIDType,\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme: \"light\" | \"dark\",\n timerTheme: string,\n price: number,\n currency: \"$\" | \"€\" | \"₤\",\n buttonAction: () => void,\n timerExp?: number,\n oldPrice?: number,\n periodText?: string,\n discountPercent?: number,\n increasingPrice?: boolean,\n showDiscountCorner: boolean,\n getTotalStorage: (storage: number) => string,\n getTotalTraffic: (storage: number) => string,\n discountPeriod?: number,\n showPaymentOptions?: boolean,\n showPlanDescriptionText?: boolean,\n showSocialProof?: boolean,\n showSocialProofLanding?: string,\n showSocialProofOnlyMobile?: boolean,\n template: \"default\" | \"price-on-the-left\",\n renderTabs: () => void\n};\n\nconst PlanViewBox = (props: PlanViewBoxProps) => {\n const {\n planId, \n billingPeriod, \n theme, \n color, \n showSocialProofLanding, \n showSocialProof, \n buttonAction,\n template = \"default\",\n renderTabs = () => {},\n getTotalStorage: getTotalStorageForUser,\n getTotalTraffic: getTotalTrafficForUser\n } = props;\n\n const texts = planBoxTexts[planId.join(\"+\")] || planBoxTexts[planId];\n const { features } = texts;\n const [randomGeneratedNumber, setRandomGeneratedNumber] = useState(0);\n\n const getPromoCount = (params = {}, successCallback = () => {}, errorCallback = () => {}) => {\n let paramsCopy = { ...params };\n\n paramsCopy.type = 6;\n paramsCopy.promo = showSocialProofLanding;\n\n return pCloudGlobals.apiMethod(\n \"getpromonewsfeed\",\n paramsCopy,\n res => {\n successCallback(res);\n },\n { errorCallback }\n );\n };\n\n useEffect(() => {\n if (showSocialProof) {\n getPromoCount(\n {},\n res => {\n setRandomGeneratedNumber(res.count);\n },\n () => {});\n }\n }, []); //[]\n\n const handleButtonClick = event => {\n buttonAction(planId, billingPeriod);\n };\n\n const renderFeatures = () => {\n const featureToRender = features[billingPeriod] || features[\"default\"];\n return featureToRender.map(({ feature, tooltip }, index) => {\n if (feature.indexOf(\"%amount%\") !== -1) {\n feature = feature.replace(\"%amount%\", getTotalStorageForUser(planId[0]));\n }\n\n if (feature.indexOf(\"%traffic_amount%\") !== -1) {\n feature = feature.replace(\"%traffic_amount%\", getTotalTrafficForUser(planId[0]));\n }\n\n return (\n
\n );\n });\n };\n\n const renderCards = () => {\n let digits = randomGeneratedNumber.toString().split(\"\");\n let realDigits = digits.map(Number);\n\n return realDigits.map((digit, index) => \n
\n {digit}\n \n );\n };\n\n const renderSocialProofText = () => {\n if (!showSocialProof) {\n return null;\n }\n\n const textSocialProof = __(\"singles_day_offer\", \"%numberOfPeople% people have already taken advantage of the offer\");\n\n let textSocialProofFormatted = reactStringReplace(\n textSocialProof,\n /(%numberOfPeople%)/g,\n (match, i) => (\n
\n {renderCards()}\n
\n )\n )\n\n return (\n
\n {textSocialProofFormatted}\n
\n )\n };\n\n let PlanBoxTemplateView = PlanBoxDefaultView;\n\n if (template == \"price-on-the-left\") {\n PlanBoxTemplateView = PlanBoxPriceOnTheLeftView;\n }\n\n if (template == \"price-on-the-left-2\") {\n PlanBoxTemplateView = PlanBoxPriceOnTheLeft2View;\n }\n\n return (\n
\n );\n};\n\nexport default PlanViewBox;\n\nconst SocialProofText = styled.div`\n font-size: 18px;\n text-align: left;\n color: ${props => (props.color && COLORS[props.color] ? COLORS[props.color].socialProofSecondColor : \"#000\" )};\n margin: 20px 0px 0px 0px;\n display: flex;\n align-items: center;\n align-self: center;\n flex-direction: row;\n gap: 20px;\n\n & > span:first-child {\n color: ${props => (props.color && COLORS[props.color] ? COLORS[props.color].mainColor : \"#000\" )};\n font-size: bold;\n flex-shrink: 0;\n line-height: 0.81;\n\n & > span:last-child {\n align-self: center;\n flex-shrink: 1;\n text-align: left;\n }\n }\n`;\n\nconst CardWrapper =styled.div`\n flex-shrink: 0;\n display: flex;\n gap: 4px;\n`;\n\nconst Card = styled.span`\n font-size: 24px;\n font-weight: bold;\n display: inline-block;\n border-radius: 5px;\n padding: 4px 6px;\n color: #000;\n background: #fff;\n zoom: 1;\n`;","//@floow\n\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nimport { planBoxTexts, planBoxPeriodTexts } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { ColorType, PlanIDType } from \"../../../../lib/types/dataTypes.components\";\nimport { __ } from \"../../../../lib/utils\";\n\nimport { BoxHeader, BoxPrices, BoxDiscount } from \"../../../PlansBox\";\n\ntype LoginViewBoxProps = {\n planId: PlanIDType,\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme?: \"light\" | \"dark\",\n price: number,\n currency: \"$\" | \"€\" | \"₤\",\n renderView: () => string,\n onClick: () => void,\n oldPrice?: number,\n periodText?: string,\n discountPercent?: number,\n showDiscountCorner?: boolean,\n discountPeriod?: number\n};\n\nconst LoginViewBoxDefault = ({\n planId,\n billingPeriod,\n color,\n theme,\n price,\n currency,\n renderView,\n oldPrice,\n periodText,\n discountPercent,\n showDiscountCorner = true,\n discountPeriod,\n showCurrencyCode = true,\n}: LoginViewBoxProps) => {\n const texts = planBoxTexts[planId.join(\"+\")] || planBoxTexts[planId];\n const { title: titleObj } = texts;\n const title = titleObj[billingPeriod] || titleObj.default;\n\n return (\n
\n {discountPercent && showDiscountCorner ? (\n
\n ) : null}\n\n
\n
\n\n
\n
\n\n
\n {renderView()}\n
\n
\n );\n};\n\nexport default LoginViewBoxDefault;\n\nconst Wrapper = styled.div`\n /* font-family: Inter, Roboto; */\n position: relative;\n width: 100%;\n box-sizing: border-box;\n border-radius: 10px;\n box-shadow: 3.8px 5.9px 10px 0 rgba(0, 0, 0, 0.05);\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#fafafa\";\n }\n }};\n overflow: hidden;\n min-height: 677px;\n\n @media (max-width: 768px) {\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#ffffff\";\n }\n }};\n min-height: 0px;\n border-radius: 0px;\n }\n`;\n\nconst FormWrapper = styled.div`\n max-width: 440px;\n width: 100%;\n margin: 0 auto;\n min-height: 385px;\n padding: 30px 40px 20px 40px; \n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#fafafa\";\n }\n }};\n border-top: 1px solid #eeeeee;\n border-top-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"rgba(255,255,255,0.15)\";\n } else {\n return \"#eeeeee\";\n }\n }};\n box-sizing: border-box;\n\n .responsive-wrap {\n width: 100%;\n margin: 0px;\n }\n\n .link {\n color: #746de4;\n }\n @media (max-width: 768px) {\n margin-top: -28px;\n }\n`;\n\nconst AlignContainer = styled.div`\n padding: 36px 40px 2px 40px;\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#ffffff\";\n }\n }};\n\n @media (max-width: 768px) {\n padding: 25px 20px;\n }\n`;\n","//@floow\n\nimport React from \"react\";\n\nimport { Wrapper, WrapperRightColumn, WrapperLeftColumn, FormWrapper} from \"./Styles/PriceOnTheLeftStyles\";\nimport { planBoxTexts } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { ColorType, PlanIDType } from \"../../../../lib/types/dataTypes.components\";\nimport { __ } from \"../../../../lib/utils\";\n\nimport { BoxHeader, BoxPrices, BoxDiscount } from \"../../../PlansBox\";\n\ntype LoginViewBoxProps = {\n planId: PlanIDType,\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme?: \"light\" | \"dark\",\n price: number,\n currency: \"$\" | \"€\" | \"₤\",\n handleLogin: () => void,\n renderView: () => string,\n onTabClick: () => void,\n oldPrice?: number,\n periodText?: string,\n discountPercent?: number,\n discountValue?: string | number,\n discountType?: \"percent\" | \"fixedamount\" | \"text\",\n discountLabelBackground?: string,\n discountLabelBackgroundMobile?: string,\n discountLabelBackgroundRetina?: string,\n discountLabelWidth?: string,\n discountLabelHeight?: string,\n discountLabelPositionLeft?: string,\n showDiscountCorner?: boolean,\n discountPeriod?: number\n};\n\nconst LoginViewBoxPriceOnTheLeft = ({\n planId,\n billingPeriod,\n color,\n theme,\n price,\n currency,\n renderView,\n onTabClick,\n oldPrice,\n discountValue,\n discountType,\n discountLabelBackground,\n discountLabelBackgroundMobile,\n discountLabelBackgroundRetina,\n discountLabelWidth,\n discountLabelHeight,\n discountLabelPositionLeft,\n discountPeriod,\n showCurrencyCode = true\n}: LoginViewBoxProps) => {\n const texts = planBoxTexts[planId.join(\"+\")] || planBoxTexts[planId];\n const { title: titleObj } = texts;\n const title = titleObj[billingPeriod] || titleObj.default;\n\n return (\n
\n
\n
\n
\n
\n\n
\n\n
\n \n
\n\n
\n\n
\n {renderView()}\n
\n
\n
\n );\n};\n\nexport default LoginViewBoxPriceOnTheLeft;\n","//@floow\n\nimport React, { useState, useEffect } from \"react\";\n\nimport { Wrapper, FormWrapper, BoxDiscountAnimationContainer} from \"./Styles/PriceOnTheLeftStyles\";\nimport { planBoxTexts } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { ColorType, PlanIDType } from \"../../../../lib/types/dataTypes.components\";\nimport { __, signToCurrency } from \"../../../../lib/utils\";\n\nimport { BoxPrices, BoxDiscount } from \"../../../PlansBox\";\nimport { PeriodText, WrapperLeftColumn2, WrapperRightColumn2, PlanInfo } from \"./Styles/PricesOnTheLseftStyles2\";\n\ntype LoginViewBoxProps = {\n planId: PlanIDType,\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme?: \"light\" | \"dark\",\n price: number,\n currency: \"$\" | \"€\" | \"₤\",\n handleLogin: () => void,\n renderView: () => string,\n onTabClick: () => void,\n oldPrice?: number,\n periodText?: string,\n discountPercent?: number,\n discountValue?: string | number,\n discountType?: \"percent\" | \"fixedamount\" | \"text\",\n discountLabelBackground?: string,\n discountLabelBackgroundMobile?: string,\n discountLabelBackgroundRetina?: string,\n discountLabelWidth?: string,\n discountLabelHeight?: string,\n discountLabelPositionLeft?: string,\n showDiscountCorner?: boolean,\n discountPeriod?: number,\n showHeader: boolean\n};\n\nconst LoginViewBoxPriceOnTheLeft2 = ({\n planId,\n billingPeriod,\n color,\n theme,\n price,\n currency,\n renderView,\n onTabClick,\n oldPrice,\n discountPeriod,\n showCurrencyCode = true,\n periodText,\n}: LoginViewBoxProps) => {\n const [isMobile, setIsMobile] = useState(window.innerWidth <= 768)\n const texts = planBoxTexts[planId.join(\"+\")] || planBoxTexts[planId];\n const { title: titleObj } = texts;\n const title = titleObj[billingPeriod] || titleObj.default;\n\n useEffect(() => {\n const resizeEventListener = () => {\n setIsMobile(window.innerWidth <= 768);\n };\n\n window.addEventListener(\"resize\", resizeEventListener);\n\n return () => {\n window.removeEventListener(\"resize\", resizeEventListener);\n }\n }, [])\n\n return (\n
\n
\n {isMobile ? (\n
{`${title} / ${price} ${signToCurrency[currency]}`}
\n ) : null }\n {!isMobile ? (\n
\n
\n
\n
\n
\n
\n {periodText}\n
\n
\n ) : null }\n
\n\n
\n
\n {renderView()}\n
\n
\n
\n );\n};\n\nexport default LoginViewBoxPriceOnTheLeft2;\n","//@floow\n\nimport React, { useState, useEffect, useRef } from \"react\";\nimport styled from \"styled-components\";\n\nimport { planBoxTexts } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { ColorType, PlanIDType } from \"../../../lib/types/dataTypes.components\";\nimport { __, getLanguage } from \"../../../lib/utils\";\n\nimport LoginViewBoxDefault from \"./planBoxTemplates/LoginViewBoxDefault\";\nimport LoginViewBoxPriceOnTheLeft from \"./planBoxTemplates/LoginViewBoxPriceOnTheLeft\";\nimport LoginViewBoxPriceOnTheLeft2 from \"./planBoxTemplates/LoginViewBoxPriceOnTheLeft2\";\n\ntype LoginViewBoxProps = {\n planId: PlanIDType,\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme?: \"light\" | \"dark\",\n price: number,\n currency: \"$\" | \"€\" | \"₤\",\n handleLogin: () => void,\n LoginOrSignupComponent: any,\n oldPrice?: number,\n periodText?: string,\n discountPercent?: number,\n showDiscountCorner?: boolean,\n discountPeriod?: number,\n defaultLoginView?: \"login\" | \"register\",\n passPcloud: boolean,\n template: \"default\" | \"price-on-the-left\"\n};\n\nconst LoginViewBox = (props: LoginViewBoxProps) => {\n const {\n planId,\n billingPeriod,\n theme,\n handleLogin,\n LoginOrSignupComponent,\n defaultLoginView = \"login\",\n passPcloud = false,\n template = \"default\"\n } = props;\n const [view, setView] = useState(defaultLoginView);\n const loginOrSignupContainer = useRef(null);\n const texts = planBoxTexts[planId.join(\"+\")] || planBoxTexts[planId];\n const { title: titleObj, description, features, buttonText } = texts;\n const title = titleObj[billingPeriod] || titleObj.default;\n\n useEffect(() => {\n if (passPcloud) {\n openPassLoginModal(true, \"register\");\n } else {\n LoginOrSignupComponent(loginOrSignupContainer.current, {\n isLoginModal: false,\n onSuccess: handleLogin,\n showTitle: false,\n theme: theme,\n language: getLanguage(),\n passpcloud: passPcloud ? 1 : 0,\n });\n }\n }, [view]);\n\n const onTabClick = (tabId) => {\n setView(tabId);\n };\n\n const renderView = () => {\n if (passPcloud) {\n return (\n
\n
\n {__(\"signin_to_pcloud_pass\", \"You need to sign in to a pCloud Pass account to proceed.\")}\n
{__(\"signin\", \"Sign in\")}\n
\n
\n )\n }\n\n if (view === \"login\" || view === \"register\") {\n return (\n
\n );\n }\n\n return null;\n };\n\n let LoginViewBox = LoginViewBoxDefault;\n\n if (template == \"price-on-the-left\") {\n LoginViewBox = LoginViewBoxPriceOnTheLeft;\n }\n\n if (template == \"price-on-the-left-2\") {\n LoginViewBox = LoginViewBoxPriceOnTheLeft2;\n }\n\n return
;\n};\n\nexport default LoginViewBox;\n\nconst Form = styled.div`\n width: 100%;\n height: 100%;\n /* height: 385px; */\n\n overflow-y: auto;\n overflow-x: hidden;\n\n /* width */\n &::-webkit-scrollbar {\n width: 5px;\n border-radius: 3px;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: #eaeaea;\n border-radius: 3px;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #aaa;\n border-radius: 3px;\n transition: background 200ms ease-in-out;\n }\n\n /* Handle on hover */\n &::-webkit-scrollbar-thumb:hover {\n background: #555;\n }\n`;\n\nconst CenteredContent = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n text-align: center;\n line-height: 1.5;\n`;\n\nconst Link = styled.span`\n font-weight: bold;\n color: #746de4;\n cursor: pointer;\n`;\n","//@flow\n\nimport React, { useState, useEffect } from \"react\";\nimport styled from \"styled-components\";\n\nimport { __ } from \"../../../../lib/utils\";\nimport { planBoxTexts, planBoxPeriodTexts, notEligibleTexts, notEligibleTextsForGetPlansApi } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { ColorType, PlanIDType } from \"../../../../lib/types/dataTypes.components\";\nimport Button from \"@pcloud/web-utilities/dist/resources/components/ButtonDefault\";\n\nimport { BoxHeader, BoxDiscount, BoxPrices, BoxDisabled } from \"../../../PlansBox\";\n\ntype DisabledViewBoxProps = {\n planId: PlanIDType,\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme?: \"light\" | \"dark\",\n buttonAction: () => void,\n discountPercent?: number,\n showDiscountCorner?: boolean,\n disabledReason?: string,\n price: number,\n oldPrice: number,\n currency: string,\n periodText: string,\n discountPeriod: number,\n renderFeatures: () => string\n};\n\nconst DisabledViewBoxDefault = ({\n planId,\n billingPeriod,\n color,\n theme,\n buttonAction,\n discountPercent,\n showDiscountCorner,\n disabledReason,\n price,\n oldPrice,\n currency,\n periodText,\n discountPeriod,\n secondaryDisableText,\n showCurrencyCode = true,\n renderFeatures\n}: DisabledViewBoxProps) => {\n const texts = planBoxTexts[planId.join(\"+\")] || planBoxTexts[planId];\n const { title: titleObj } = texts;\n const title = titleObj[billingPeriod] || titleObj.default;\n const disabledText = (notEligibleTextsForGetPlansApi[disabledReason] || notEligibleTexts[disabledReason] || notEligibleTexts[\"plan_upgrade_restrictions\"]);\n\n return (\n
\n {discountPercent && showDiscountCorner ? (\n
\n ) : null}\n\n
\n\n
\n\n
\n\n
\n {__(\"header_logout\").toUpperCase()}\n \n\n {/*
{renderFeatures()}
*/}\n
\n );\n};\n\nexport default DisabledViewBoxDefault;\n\nconst Wrapper = styled.div`\n /* font-family: Inter, Roboto; */\n position: relative;\n width: 100%;\n box-sizing: border-box;\n padding: 36px 40px 36px 40px;\n border-radius: 10px;\n box-shadow: 3.8px 5.9px 10px 0 rgba(0, 0, 0, 0.05);\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#ffffff\";\n }\n }};\n overflow: hidden;\n min-height: 677px;\n\n @media (max-width: 768px) {\n padding: 25px 20px;\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#ffffff\";\n }\n }};\n min-height: 0px;\n border-radius: 0px;\n }\n\n .tooltip {\n padding: 15px 20px;\n max-width: 250px;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.35;\n font-weight: 400;\n text-align: center;\n }\n`;\n\nconst FeaturesWrapper = styled.div`\n margin-top: 39px;\n @media (max-width: 768px) {\n display: none;\n }\n\n .box-feature {\n .inner-text {\n &::before {\n content: \"\";\n display: inline-block;\n width: 5px;\n height: 8px;\n border-right: 2px solid;\n transform: rotate(45deg);\n border-bottom: 2px solid;\n border-color: ${(props) => {\n if (props.color && !props.disabled) {\n return COLORS[props.color].mainColor\n } else if (props.disabled && props.theme === \"dark\") {\n return \"rgba(255, 255, 255, 0.3)\";\n } else if (props.disabled) {\n return \"#cccccc\";\n } else {\n return \"#212121\"\n }\n }};\n margin-right: 18px;\n position: relative;\n bottom: 2px;\n left: 2px;\n }\n }\n }\n`;","//@flow\n\nimport React from \"react\";\n\nimport { CSSTransition } from \"react-transition-group\";\n\nimport { Wrapper, WrapperRightColumn, WrapperLeftColumn, FeaturesWrapper, BoxDiscountAnimationContainer } from \"./Styles/PriceOnTheLeftStyles\";\n\nimport { __ } from \"../../../../lib/utils\";\nimport { planBoxTexts, notEligibleTexts, notEligibleTextsForGetPlansApi } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { ColorType, PlanIDType } from \"../../../../lib/types/dataTypes.components\";\nimport Button from \"@pcloud/web-utilities/dist/resources/components/ButtonDefault\";\n\nimport { BoxHeader, BoxDiscount, BoxDisabled } from \"../../../PlansBox\";\n\ntype DisabledViewBoxProps = {\n planId: PlanIDType,\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme?: \"light\" | \"dark\",\n buttonAction: () => void,\n discountPercent?: number,\n showDiscountCorner?: boolean,\n disabledReason?: string,\n price: number,\n oldPrice: number,\n currency: string,\n periodText: string,\n discountValue?: string | number,\n discountType?: \"percent\" | \"fixedamount\" | \"text\",\n discountLabelBackground?: string,\n discountLabelBackgroundRetina?: string,\n discountLabelWidth?: string,\n discountLabelHeight?: string,\n discountLabelPositionLeft?: string,\n discountPeriod: number,\n renderFeatures: () => string,\n forceDisableText: string,\n priceLoading: boolean\n};\n\nconst DisabledViewBoxPriceOnTheLeft = ({\n planId,\n billingPeriod,\n color,\n theme,\n buttonAction,\n disabledReason,\n currency,\n discountValue,\n discountType,\n discountLabelBackground,\n discountLabelBackgroundRetina,\n discountLabelWidth,\n discountLabelHeight,\n discountLabelPositionLeft,\n discountPeriod,\n secondaryDisableText,\n renderFeatures,\n forceDisableText = \"\",\n priceLoading = false\n}: DisabledViewBoxProps) => {\n const texts = planBoxTexts[planId.join(\"+\")] || planBoxTexts[planId];\n const { title: titleObj } = texts;\n const title = titleObj[billingPeriod] || titleObj.default;\n const disabledText = forceDisableText && forceDisableText !== \"\" ? forceDisableText : (notEligibleTextsForGetPlansApi[disabledReason] || notEligibleTexts[disabledReason] || notEligibleTexts[\"plan_upgrade_restrictions\"]);\n\n return (\n
\n \n
\n
\n
{ }}\n onExited={() => { }}\n appear\n >\n
\n \n
\n \n
\n\n
\n\n
\n
\n\n
\n\n
{renderFeatures()}
\n\n
\n {__(\"header_logout\").toUpperCase()}\n \n\n
\n
\n );\n};\n\nexport default DisabledViewBoxPriceOnTheLeft;","//@flow\n\nimport React, { useEffect, useState } from \"react\";\n\nimport { CSSTransition } from \"react-transition-group\";\n\nimport { Wrapper, BoxDiscountAnimationContainer } from \"./Styles/PriceOnTheLeftStyles\";\n\nimport { __, calculateDiscountPercent, detectIsMobile } from \"../../../../lib/utils\";\nimport { notEligibleTexts, notEligibleTextsForGetPlansApi } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { ColorType, PlanIDType } from \"../../../../lib/types/dataTypes.components\";\nimport Button from \"@pcloud/web-utilities/dist/resources/components/ButtonDefault\";\n\nimport { BoxDiscount, BoxDisabled, BoxPrices } from \"../../../PlansBox\";\nimport { PeriodText, WrapperLeftColumn2, WrapperRightColumn2 } from \"./Styles/PricesOnTheLseftStyles2\";\n\ntype DisabledViewBoxProps = {\n planId: PlanIDType,\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme?: \"light\" | \"dark\",\n buttonAction: () => void,\n discountPercent?: number,\n showDiscountCorner?: boolean,\n disabledReason?: string,\n price: number,\n oldPrice: number,\n currency: string,\n periodText: string,\n discountValue?: string | number,\n discountType?: \"percent\" | \"fixedamount\" | \"text\",\n discountLabelBackground?: string,\n discountLabelBackgroundRetina?: string,\n discountLabelWidth?: string,\n discountLabelHeight?: string,\n discountLabelPositionLeft?: string,\n discountPeriod: number,\n renderFeatures: () => string,\n forceDisableText: string,\n priceLoading: boolean\n};\n\nconst DisabledViewBoxPriceOnTheLeft2 = ({\n color,\n theme,\n buttonAction,\n disabledReason,\n currency,\n discountValue,\n discountType,\n price,\n oldPrice,\n showCurrencyCode,\n secondaryDisableText,\n forceDisableText = \"\",\n priceLoading = false,\n renderTabs,\n periodText,\n discountPeriod\n}: DisabledViewBoxProps) => {\n const disabledText = forceDisableText && forceDisableText !== \"\" ? forceDisableText : (notEligibleTextsForGetPlansApi[disabledReason] || notEligibleTexts[disabledReason] || notEligibleTexts[\"plan_upgrade_restrictions\"]);\n const [isMobile, setIsMobile] = useState(window.innerWidth <= 768)\n\n useEffect(() => {\n const resizeEventListener = () => {\n setIsMobile(window.innerWidth <= 768);\n };\n\n window.addEventListener(\"resize\", resizeEventListener);\n\n return () => {\n window.removeEventListener(\"resize\", resizeEventListener);\n }\n }, [])\n\n return (\n
\n
\n {isMobile ? renderTabs() : null}\n
\n
{ }}\n onExited={() => { }}\n appear\n >\n
\n \n
\n
\n
\n {periodText}\n
\n
\n\n
\n {!isMobile ? renderTabs() : null}\n
\n
\n {__(\"header_logout\").toUpperCase()}\n \n\n
\n
\n );\n};\n\nexport default DisabledViewBoxPriceOnTheLeft2;","//@flow\n\nimport React from \"react\";\n\nimport { __ } from \"../../../lib/utils\";\nimport { planBoxTexts } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { ColorType, PlanIDType } from \"../../../lib/types/dataTypes.components\";\n\nimport { BoxFeature } from \"../../PlansBox\";\n\nimport DisabledViewBoxDefault from \"./planBoxTemplates/DisabledViewBoxDefault\";\nimport DisabledViewBoxPriceOnTheLeft from \"./planBoxTemplates/DisabledViewBoxPriceOnTheLeft\";\nimport DisabledViewBoxPriceOnTheLeft2 from \"./planBoxTemplates/DisabledViewBoxPriceOnTheLeft2\";\n\ntype DisabledViewBoxProps = {\n planId: PlanIDType,\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme?: \"light\" | \"dark\",\n buttonAction: () => void,\n discountPercent?: number,\n showDiscountCorner?: boolean,\n disabledReason?: string,\n price: number,\n oldPrice: number,\n currency: string,\n periodText: string,\n discountPeriod: number,\n template: \"default\" | \"price-on-the-left\"\n};\n\nconst DisabledViewBox = (props: DisabledViewBoxProps) => {\n const {\n planId,\n billingPeriod,\n theme,\n template = \"default\",\n color\n } = props;\n\n const texts = planBoxTexts[planId.join(\"+\")] || planBoxTexts[planId];\n const { features } = texts;\n \n\n const renderFeatures = () => {\n const featuresToRender = features[billingPeriod] || features[\"default\"];\n return featuresToRender.map(({ feature, tooltip }, index) => {\n return (\n
\n );\n });\n };\n\n let DisabledViewBox = DisabledViewBoxDefault;\n\n if (template == \"price-on-the-left\") {\n DisabledViewBox = DisabledViewBoxPriceOnTheLeft;\n }\n\n if (template == \"price-on-the-left-2\") {\n DisabledViewBox = DisabledViewBoxPriceOnTheLeft2;\n }\n\n return
; \n};\n\nexport default DisabledViewBox;","import styled from \"styled-components\";\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\n\nexport const SecondaryActionLink = styled.a`\n color: ${(props) =>\n props.color && COLORS[props.color]\n ? COLORS[props.color].mainColor\n : \"#17bed0\"};\n display: inline-block;\n margin-top: 20px;\n text-decoration: none;\n font-size: 13px;\n font-weight: bold;\n margin-bottom: 34px;\n text-transform: uppercase;\n\n &::after {\n content: \"\";\n display: inline-block;\n width: 6px;\n height: 6px;\n border-top: 1px solid\n ${(props) =>\n props.color && COLORS[props.color]\n ? COLORS[props.color].mainColor\n : \"#17bed0\"};\n border-right: 1px solid\n ${(props) =>\n props.color && COLORS[props.color]\n ? COLORS[props.color].mainColor\n : \"#17bed0\"};\n transform: rotate(45deg);\n margin-left: 5px;\n margin-bottom: 2px;\n }\n`;\n\nexport const Message = styled.div`\n /* font-family: Inter, Roboto; */\n font-size: 22px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.18;\n letter-spacing: -0.55px;\n text-align: center;\n color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#ffffff\";\n } else {\n return \"#111111\";\n }\n }};\n margin-top: 20px;\n padding: 0px 40px 0px 40px;\n`;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgSuccessIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 64 64\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.8 40.1l-6.9-6.9c-.8-.8-2-.8-2.8 0-.8.8-.8 2 0 2.8l8.3 8.4c.8.8 2 .8 2.8 0l21.2-21.2c.8-.8.8-2 0-2.8-.8-.8-2-.8-2.8 0L25.8 40.1zM0 32c0 17.7 14.3 32 32 32s32-14.3 32-32S49.7 0 32 0 0 14.4 0 32zm4 0C4 16.6 16.5 4 32 4s28 12.5 28 28-12.5 28-28 28S4 47.5 4 32z\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })));\n}\nexport default SvgSuccessIcon;","import styled, { keyframes } from \"styled-components\";\n\nexport const AnimationContainer = styled.div`\n width: 100%;\n\n .slide-enter {\n opacity: 0;\n transform: ${({ animationDirection }) => animationDirection && animationDirection === \"right\" ? \"translateX(-150px)\" : \"translateX(150px)\"};\n }\n .slide-enter-active {\n opacity: 1;\n transform: translateX(0px);\n }\n .slide-exit {\n opacity: 1;\n transform: translateX(0px);\n }\n .slide-exit-active {\n opacity: 0;\n transform: ${({ animationDirection }) => animationDirection && animationDirection === \"right\" ? \"translateX(150px)\" : \"translateX(-150px)\"};\n }\n .slide-enter-active,\n .slide-exit-active {\n transition: opacity ${({timeout}) => timeout}ms, transform ${({timeout}) => timeout}ms;\n transition-delay: ${({delay}) => delay}ms;\n }\n\n .fade-enter {\n opacity: 0;\n }\n .fade-enter-active {\n opacity: 1;\n }\n .fade-exit {\n opacity: 1;\n }\n .fade-exit-active {\n opacity: 0;\n }\n .fade-enter-active,\n .fade-exit-active {\n transition: opacity ${({timeout}) => timeout}ms;\n transition-delay: ${({delay}) => delay}ms;\n }\n\n .fade-down-enter {\n opacity: 0;\n transform: translateY(-10px);\n }\n .fade-down-enter-active {\n opacity: 1;\n transform: translateY(0px);\n }\n .fade-down-exit {\n opacity: 1;\n transform: translateY(0px);\n }\n .fade-down-exit-active {\n opacity: 0;\n transform: translateY(-10px);\n }\n .fade-down-enter-active,\n .fade-down-exit-active {\n transition: all ${({timeout}) => timeout}ms;\n }\n\n .expand-enter {\n opacity: 0;\n max-height: 0px;\n }\n .expand-enter-active {\n opacity: 1;\n max-height: ${({height}) => height}px;\n }\n .expand-exit {\n opacity: 1;\n max-height: ${({height}) => height}px;\n }\n .expand-exit-active {\n opacity: 0;\n max-height: 0px\n }\n .expand-enter-active,\n .expand-exit-active {\n transition: all ${({timeout}) => timeout}ms;\n transition-delay: ${({delay}) => delay}ms;\n }\n\n .page-enter {\n .inner-animation.animation-type-slide {\n opacity: 0;\n transform: ${({ animationDirection }) => animationDirection && animationDirection === \"right\" ? \"translateX(-150px)\" : \"translateX(150px)\"};\n }\n\n .inner-animation.animation-type-fade {\n opacity: 0;\n }\n }\n .page-enter-active {\n .inner-animation.animation-type-slide {\n opacity: 1;\n transform: translateX(0px);\n }\n .inner-animation.animation-type-fade {\n opacity: 1;\n }\n }\n .page-exit {\n .inner-animation.animation-type-slide {\n opacity: 1;\n transform: translateX(0px);\n }\n .inner-animation.animation-type-fade {\n opacity: 1;\n }\n }\n .page-exit-active {\n .inner-animation.animation-type-slide {\n opacity: 0;\n transform: ${({ animationDirection }) => animationDirection && animationDirection === \"right\" ? \"translateX(150px)\" : \"translateX(-150px)\"};\n }\n .inner-animation.animation-type-fade {\n opacity: 0;\n }\n }\n .page-enter-active,\n .page-exit-active {\n .inner-animation.animation-type-slide {\n transition: opacity ${({timeout}) => timeout}ms, transform ${({timeout}) => timeout}ms;\n transition-delay: ${({delay}) => delay}ms;\n }\n .inner-animation.animation-type-fade {\n transition: opacity ${({timeout}) => timeout}ms;\n transition-delay: ${({delay}) => delay}ms;\n }\n }\n \n`;\n\nexport const scale = keyframes`\n 0%{\n transform: scale(1)\n }\n\n 33%{\n transform: scale(0.96)\n }\n\n 66%{\n transform: scale(1.12)\n }\n\n 100% {\n transform: scale(1);\n }\n`;","import React from \"react\";\nimport { SwitchTransition, CSSTransition } from \"react-transition-group\";\nimport { AnimationContainer } from \"./AnimationContainer\";\n\ntype AnimationProps = {\n children: any,\n trigger: any,\n type: \"slide\" | \"fade\" | \"page\",\n timeout: number,\n animationDirection: \"left\" | \"right\",\n style: any,\n};\n\nconst SwitchAnimation = ({\n children,\n trigger = false,\n type = \"fade\",\n timeout = 500,\n animationDirection = \"left\",\n style = {},\n}: AnimationProps) => (\n
\n
\n
{\n node.addEventListener(\"transitionend\", done, false);\n }}\n classNames={type || \"fade\"}\n timeout={timeout}\n >\n
{children}
\n \n
\n \n);\n\nexport default SwitchAnimation;","//@flow\n\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nimport { signToCurrency } from \"@pcloud/web-utilities/dist/payments/constants.payments\";\n\ntype BoxPriceInlineProps = {\n price: number,\n currency: string,\n oldPrice?: number,\n className?: string,\n newLine?: boolean,\n size?: \"small\" | \"big\"\n};\n\nconst BoxPricesInline = ({\n price,\n currency,\n oldPrice,\n className = \"\",\n newLine = false,\n size\n}: BoxPriceInlineProps) => (\n
\n {newLine ?
: null}\n
\n {oldPrice ? (\n
\n
\n
{oldPrice}
\n
{signToCurrency[currency]}
\n
\n
\n {size === \"small\" ? null :
/
}\n
\n ) : null}\n\n
\n
{price}
\n
{signToCurrency[currency]}
\n
\n
\n
\n);\n\nexport default BoxPricesInline;\n\nconst PricesWrapper = styled.div`\n /* font-family: Inter, Roboto; */\n display: inline-block;\n`;\n\nconst OldPrice = styled.span`\n position: relative;\n font-size: ${({ size }) => (size === \"small\" ? \"15px\" : \"30px\")};\n font-weight: 300;\n line-height: 1.2;\n letter-spacing: -0.45px;\n color: #aaaaaa;\n margin-right: ${({ size }) => (size === \"small\" ? \"10px\" : \"0px\")};\n\n @media (max-width: 768px) {\n font-size: inherit;\n }\n`;\n\nconst Price = styled.span`\n font-size: ${({ size }) => (size === \"small\" ? \"15px\" : \"30px\")};\n font-weight: bold;\n line-height: 1.2;\n letter-spacing: -0.45px;\n\n @media (max-width: 768px) {\n font-size: inherit;\n }\n`;\n\nconst CurrencyCode = styled.span`\n font-size: ${({ size }) => (size === \"small\" ? \"15px\" : \"18px\")};\n letter-spacing: 0px;\n margin-left: 3px;\n @media (max-width: 768px) {\n font-size: inherit\n }\n`;\n\nconst Value = styled.span``;\n\nconst CrossLine = styled.div`\n position: absolute;\n left: 0px;\n top: ${({ size }) => (size === \"small\" ? \"9px\" : \"17px\")};\n width: 100%;\n height: 1px;\n background-color: #aaaaaa;\n\n @media (max-width: 768px) {\n top: 50%;\n }\n`;\n\nconst Slash = styled.span`\n margin: 0px 5px;\n font-size: 31px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.19;\n letter-spacing: -1.05px;\n text-align: center;\n color: #ececec;\n @media (max-width: 768px) {\n font-size: inherit;\n }\n`;\n","import React, { useRef } from \"react\";\nimport styled from \"styled-components\";\nimport Flipclock from \"react-simple-flipclock\";\n\nimport Modal, { OvalModalClose, OvalModalWrap } from \"@pcloud/web-utilities/dist/resources/components/Modal\";\nimport { ButtonWithIcon } from \"@pcloud/web-utilities/dist/resources/components/ButtonDefault\";\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\nimport { ADD_STORAGE_1COUNT_PLAN_ID, ADD_STORAGE_4COUNT_PLAN_ID, PREMIUM_PLAN_ID, PREMIUM_PLUS_PLAN_ID } from \"@pcloud/web-utilities/dist/plans/constants.plans\";\n\nimport SwitchAnimation from \"../../Animation/SwitchAnimation\";\nimport { upsellButtonText } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { __ } from \"../../../lib/utils\";\nimport { Message, SecondaryActionLink } from \"./common.style\";\n\nimport SuccessIcon from \"../../../svg/success-icon.svg\";\nimport reactStringReplace from \"react-string-replace\";\nimport BoxPricesInline from \"../../PlansBox/BoxPricesInline\";\n\nconst UpsellModalv1 = ({\n currentUpsellProductID,\n closeUpsellModal,\n showUpsellModal,\n currentUpsellProductData,\n paymentLoading,\n handleSubmit,\n color,\n actionLink,\n actionText,\n errorMessage,\n theme,\n successMessage,\n upsellProductPrices,\n currency,\n billingPeriod,\n}) => {\n const closeModalTimeout = useRef(null);\n\n const handleGetUpsell = (e) => {\n if (paymentLoading) {\n return null;\n }\n\n clearTimeout(closeModalTimeout.current);\n handleSubmit(e);\n }\n\n const getUpsellDescription = (upsellDescription) => {\n if (!currentUpsellProductID) {\n return \"\";\n }\n\n const upsellPriceData = upsellProductPrices[currentUpsellProductID] || {};\n const { price, originalPrice } = upsellPriceData;\n\n let upsellTextFormatted = reactStringReplace(\n upsellDescription,\n /(%price%)/g,\n (match, i) => (\n
\n )\n )\n \n upsellTextFormatted = reactStringReplace(\n upsellTextFormatted,\n /(%period%)/g,\n (match, i) => __(billingPeriod)\n )\n\n upsellTextFormatted = reactStringReplace(\n upsellTextFormatted,\n /(%old_price%)/g,\n (match, i) => \"\"\n )\n\n upsellTextFormatted = reactStringReplace(\n upsellTextFormatted,\n /(%XXXGB%)/g,\n (match, i) => {\n if (currentUpsellProductID === ADD_STORAGE_1COUNT_PLAN_ID) {\n return `500 ${__(\"GB\")}`;\n }\n\n if (currentUpsellProductID === ADD_STORAGE_4COUNT_PLAN_ID) {\n return `2 ${__(\"TB\")}`;\n }\n }\n )\n\n upsellTextFormatted = reactStringReplace(\n upsellTextFormatted,\n /(%percent%)/g,\n (match, i) => Math.round((1 - price / originalPrice) * 100) + \"%\"\n )\n \n upsellTextFormatted = reactStringReplace(\n upsellTextFormatted,\n /(
)/g,\n (match, i) =>
\n )\n\n return upsellTextFormatted;\n }\n\n const getUpsellButtonText = () => {\n let buttonText = upsellButtonText[currentUpsellProductID][billingPeriod] || \"\";\n\n if (currentUpsellProductID === PREMIUM_PLAN_ID || currentUpsellProductID === ADD_STORAGE_1COUNT_PLAN_ID) {\n buttonText = buttonText.replace(\"%XXXGB%\", 500 + __(\"GB\"));\n }\n\n if (currentUpsellProductID === PREMIUM_PLUS_PLAN_ID || currentUpsellProductID === ADD_STORAGE_4COUNT_PLAN_ID) {\n buttonText = buttonText.replace(\"%XXXGB%\", 2 + __(\"TB\"));\n }\n\n return buttonText.toUpperCase();\n };\n\n const renderUpsellContent = () => {\n if (!currentUpsellProductID || !currentUpsellProductData) {\n return null;\n };\n\n const {\n upsellImage,\n upsellTimer,\n upsellDescriptionColor,\n upsellDescription,\n upsellDescription2,\n upsellDescription2Color,\n upsellHeadline,\n upsellDisclaimer,\n upsellHeadlineColor\n } = currentUpsellProductData;\n const isMobile = window.innerWidth < 768;\n\n if (upsellTimer) {\n clearTimeout(closeModalTimeout.current);\n closeModalTimeout.current = setTimeout(() => {\n closeUpsellModal();\n }, upsellTimer*1000 + 6);\n }\n \n return (\n
\n
\n
\n
{successMessage}
\n
\n { upsellImage ? (\n
\n ) : null }\n { upsellTimer ? (\n
\n
\n
\n
\n
\n ) : null }\n {upsellHeadline ?
{upsellHeadline}
: null}\n
\n
\n {getUpsellDescription(upsellDescription)}\n
\n
\n
\n
\n {getUpsellDescription(upsellDescription2)}\n
\n
\n
\n
\n
{errorMessage}
\n
\n
\n {actionText}\n \n
\n
\n {(upsellDisclaimer) ? (\n //
\n // {__(\"crypto_cross_disclaimer\").replace(\"%button%\", paymentProvider === \"paypal\" ? \"Pay with PayPal\" : __(\"upsell_disclaimer_button_text\"))}\n //
\n
\n
\n {upsellDisclaimer}\n
\n
\n ) : null}\n
\n )\n }\n\n const renderSuccessViewMessage = () => {\n return (\n
\n
\n
{successMessage}
\n
\n {actionText}\n
\n
\n )\n }\n\n return (\n
\n
\n
\n
\n {currentUpsellProductID ? renderUpsellContent() : renderSuccessViewMessage()}\n
\n
\n
\n )\n}\n\nexport default UpsellModalv1;\n\nconst ModalContent = styled.div`\n /* padding: 40px 40px 20px 40px; */\n min-height: 629px;\n width: 725.63px;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#212429\";\n } else {\n return \"#ffffff\";\n }\n }};\n\n svg {\n flex-shrink: 0;\n }\n\n @media (max-width: 768px) {\n height: auto;\n width: calc(100vw - 40px);\n /* padding: 30px; */\n }\n`;\n\nconst ModalAlignemnt = styled.div`\n padding: 0px 40px;\n\n &:first-of-type {\n padding-top: 40px;\n }\n\n &:last-of-type {\n padding-bottom: 20px;\n }\n\n @media (max-width: 768px) {\n padding: 0px 30px;\n\n &:first-of-type {\n padding-top: 30px;\n }\n\n &:last-of-type {\n padding-bottom: 30px;\n }\n }\n`;\n\nconst UpsellBanner = styled.img`\n margin: 34px auto 24px auto;\n display: inline-block;\n width: 100%;\n height: 180px;\n\n @media (max-width: 768px) {\n height: 180px;\n }\n`;\n\nconst TimerWrapper = styled.div`\n margin: 34px auto;\n padding: 15px;\n max-width: 400px;\n background-color: #f8f8f8;\n border-radius: 12px;\n border: solid 1px #f6f6f6;\n border-color: #f6f6f6;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n\n @media (max-width: 768px) {\n margin: 20px auto;\n }\n`;\n\nconst UpsellWrapper = styled.div`\n width: 100%;\n`;\n\nconst UpsellHeadline = styled.div`\n font-size: 32px;\n font-weight: 700;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.21;\n letter-spacing: -0.36px;\n text-align: center;\n color: ${({ color }) => color};\n margin-bottom: 20px;\n\n @media (max-width: 768px) {\n font-size: 24px !important;\n }\n`;\n\nconst UpsellDescription = styled.div`\n /* font-family: Inter, Roboto; */\n font-size: 22px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.21;\n letter-spacing: -0.36px;\n text-align: center;\n color: ${({ color }) => color};\n\n @media (max-width: 768px) {\n font-size: 18px !important;\n }\n`;\n\nconst UpsellDescription2 = styled.div`\n /* font-family: Inter, Roboto; */\n font-size: 18px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.21;\n letter-spacing: -0.36px;\n text-align: center;\n color: ${({ color }) => color};\n margin-top: 16px;\n\n @media (max-width: 768px) {\n font-size: 18px !important;\n }\n`;\n\nconst UpsellDisclaimer = styled.div`\n /* font-family: Inter, Roboto; */\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.18;\n letter-spacing: -0.17px;\n text-align: center;\n color: #777777;\n`;\n\nconst ButtonWrapper = styled.div`\n max-width: 300px;\n margin: 0 auto;\n margin-top: 0px;\n\n @media (max-width: 768px) {\n max-width: 100%;\n }\n`;\n\nconst Error = styled.div`\n display: inline-block;\n color: #c2313a;\n font-size: 12px;\n min-height: 12px;\n line-height: 12px;\n /* font-family: Inter, Roboto; */\n font-weight: bold;\n visibility: ${(props) => (props.hidden ? \"hidden\" : \"visible\")};\n margin-bottom: 10px;\n`;","import React, { useRef } from \"react\";\nimport styled from \"styled-components\";\nimport { Tooltip as ReactTooltip } from \"react-tooltip\";\n\nimport Modal, { OvalModalClose } from \"@pcloud/web-utilities/dist/resources/components/Modal\";\nimport { ButtonWithIcon } from \"@pcloud/web-utilities/dist/resources/components/ButtonDefault\";\nimport { ADD_STORAGE_1COUNT_PLAN_ID, ADD_STORAGE_4COUNT_PLAN_ID, PREMIUM_PLAN_ID, PREMIUM_PLUS_PLAN_ID } from \"@pcloud/web-utilities/dist/plans/constants.plans\";\n \nimport { planBoxTexts, underPriceTexts, upsellButtonText } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { getTotalStorage, getTotalTraffic } from \"@pcloud/web-utilities/dist/plans/utils.plans\";\nimport { __, signToCurrency } from \"../../../lib/utils\";\n\nimport SuccessIcon from \"../../../svg/success-icon.svg\";\nimport InfoIcon from \"../../../svg/info-icon.svg\";\n\n\nconst UpsellModalv2 = ({\n currentUpsellProductID,\n closeUpsellModal,\n showUpsellModal,\n currentUpsellProductData,\n paymentLoading,\n handleSubmit,\n color,\n actionLink,\n actionText,\n errorMessage,\n theme,\n successMessage,\n upsellProductPrices,\n currency,\n billingPeriod,\n upsellIndex,\n userInfo\n}) => {\n const closeModalTimeout = useRef(null);\n const isMobile = window.innerWidth < 768;\n\n const handleGetUpsell = (e) => {\n if (paymentLoading) {\n return null;\n }\n\n clearTimeout(closeModalTimeout.current);\n handleSubmit(e);\n }\n\n const getUpsellButtonText = () => {\n let buttonText = upsellButtonText[currentUpsellProductID][billingPeriod] || \"\";\n\n if (currentUpsellProductID === PREMIUM_PLAN_ID || currentUpsellProductID === ADD_STORAGE_1COUNT_PLAN_ID) {\n buttonText = buttonText.replace(\"%XXXGB%\", 500 + __(\"GB\"));\n }\n\n if (currentUpsellProductID === PREMIUM_PLUS_PLAN_ID || currentUpsellProductID === ADD_STORAGE_4COUNT_PLAN_ID) {\n buttonText = buttonText.replace(\"%XXXGB%\", 2 + __(\"TB\"));\n }\n\n return buttonText.toUpperCase();\n };\n\n const getUpsellHeadline = () => {\n if (!currentUpsellProductID) {\n return \"\";\n }\n\n const upsellPriceData = upsellProductPrices[currentUpsellProductID] || {};\n const { price, originalPrice } = upsellPriceData;\n\n const { upsellHeadline } = currentUpsellProductData;\n const discountPercentValue = Math.floor((1 - (price / originalPrice)) * 100);\n\n let upsellTextFormatted = upsellHeadline.replace(\"%DISCOUNT%\", `${discountPercentValue}%`);\n\n return upsellTextFormatted;\n }\n \n const renderUpsellFeatures = () => {\n const features = planBoxTexts[currentUpsellProductID] && planBoxTexts[currentUpsellProductID].features.default;\n\n if (!features) {\n return null;\n }\n\n return features.map(({ feature, tooltip }) => {\n if (feature.indexOf(\"%amount%\") !== -1) {\n feature = feature.replace(\"%amount%\", getTotalStorage(currentUpsellProductID, userInfo));\n }\n\n if (feature.indexOf(\"%traffic_amount%\") !== -1) {\n feature = feature.replace(\"%traffic_amount%\", getTotalTraffic(currentUpsellProductID, userInfo));\n }\n\n return (\n
\n
\n
{feature}
\n {tooltip ? (\n
\n
\n
\n
\n ) : null}\n
\n
\n )\n })\n }\n\n const renderUpsellContent = () => {\n if (!currentUpsellProductID || !currentUpsellProductData) {\n return null;\n };\n\n const upsellPriceData = upsellProductPrices[currentUpsellProductID] || {};\n const { price, originalPrice } = upsellPriceData;\n console.log(\"upsellPriceData\", currentUpsellProductID, upsellProductPrices, upsellPriceData)\n const {\n upsellImage,\n upsellHeadline,\n upsellDisclaimer,\n upsellImagePosition,\n } = currentUpsellProductData;\n \n return (\n
\n
\n
\n
\n
{successMessage}
\n {!isMobile ?
\n {actionText}\n
: null}\n
\n
\n
\n
\n {upsellHeadline ? (\n
\n {getUpsellHeadline()}\n
\n ) : null}\n
\n
\n
{price}
\n
{signToCurrency[currency]}
\n
\n
/
\n
{`${originalPrice} ${signToCurrency[currency]}`}
\n
\n
{underPriceTexts[billingPeriod]}
\n
\n {renderUpsellFeatures()}\n
\n
\n
{errorMessage}
\n
\n
\n {(upsellDisclaimer) ? (\n
\n {upsellDisclaimer}\n
\n ) : null}\n
\n
\n
\n
\n
\n {isMobile ?
\n {actionText}\n
: null}\n
\n )\n }\n\n const renderSuccessViewMessage = () => {\n return (\n
\n
\n
\n
\n
{successMessage}
\n
\n {actionText}\n
\n
\n
\n
\n )\n }\n\n return (\n
\n
\n
\n
\n {currentUpsellProductID ? renderUpsellContent() : renderSuccessViewMessage()}\n
\n
\n
\n )\n}\n\nexport default UpsellModalv2;\n\nconst ModalContent = styled.div``;\n\nconst PaymentSuccessMessageWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n margin-bottom: 12px;\n`;\n\nconst Message = styled.div`\n font-size: 15px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1;\n letter-spacing: normal;\n text-align: center;\n color: #000;\n margin-top: 6px;\n\n a {\n color: currentColor;\n text-decoration: underline;\n margin-left: 4px;\n\n &::after {\n content: \"\";\n display: inline-block;\n width: 6px;\n height: 6px;\n border-top: 1px solid currentColor;\n border-right: 1px solid currentColor;\n transform: rotate(45deg);\n margin-left: 5px;\n margin-bottom: 2px;\n }\n\n @media (max-width: 768px) {\n color: #86c600;\n margin-bottom: 0px;\n margin-left: 0px;\n margin-top: 8px;\n display: block;\n }\n }\n`;\n\nconst UpsellContentWrapper = styled.div`\n width: 100%;\n padding: 20px;\n border-radius: 12px;\n border: solid 1px #f8f6fd;\n background-color: #fff;\n box-sizing: border-box;\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 20px;\n\n @media (max-width: 768px) {\n flex-direction: column;\n display: flex;\n background: transparent;\n border: none;\n border-radius: 0;\n }\n`;\n\nconst UpsellTextContent = styled.div`\n order: ${({upsellImagePosition}) => upsellImagePosition && upsellImagePosition === \"right\" ? 1 : 2};\n\n @media (max-width: 768px) {\n order: 2;\n }\n`;\n\nconst UpsellHeadline = styled.div`\n font-size: 26px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.15;\n letter-spacing: -0.52px;\n text-align: center;\n color: #000;\n margin: 10px auto 36px auto;\n padding: 0px 30px;\n box-sizing: border-box;\n\n @media (max-width: 768px) {\n font-size: 22px;\n margin-bottom: 22px;\n }\n`;\n\nconst PricesWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n`;\n\nconst Currency = styled.span`\n vertical-align: top;\n font-size: 0.5em;\n margin-left: 3px;\n font-weight: normal;\n`;\n\n\nconst CurrentPrice = styled.div`\n font-size: 40px;\n font-weight: 800;\n font-stretch: normal;\n font-style: normal;\n line-height: 0.75;\n text-align: center;\n color: #86c224;\n\n @media (max-width: 768px) {\n font-size: 36px;\n }\n`;\n\nconst PriceSlash = styled.div`\n font-size: 33px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1;\n letter-spacing: -0.66px;\n text-align: center;\n color: #86c224;\n\n @media (max-width: 768px) {\n font-size: 30px;\n }\n`;\n\nconst OldPrice = styled.div`\n padding: 6px 9px;\n border-radius: 15px;\n background-color: #1f1f1f;\n font-size: 15px;\n font-weight: 600;\n font-stretch: normal;\n font-style: normal;\n line-height: 1;\n letter-spacing: -0.45px;\n text-align: center;\n color: #fff;\n position: relative;\n\n @media (max-width: 768px) {\n font-size: 18px;\n }\n\n &::after {\n position: absolute;\n content: \"\";\n left: 12px;\n top: 50%;\n right: 0;\n border-top: 2px solid;\n border-color: currentColor;\n transform: rotate(-25deg);\n width: calc(100% - 24px);\n }\n`;\n\nconst UnderPriceText = styled.div`\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 2.31;\n letter-spacing: normal;\n text-align: center;\n color: #a1a1a1;\n margin: 6px auto 36px auto;\n text-transform: uppercase;\n\n @media (max-width: 768px) {\n font-size: 12px;\n margin: 2px auto 22px auto;\n }\n`;\n\nconst FeaturesList = styled.ul`\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.3;\n letter-spacing: normal;\n text-align: left;\n color: #000;\n margin-bottom: 20px;\n\n .feature-tooltip {\n padding: 15px 20px;\n max-width: 250px;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.35;\n font-weight: 400;\n text-align: center;\n width: 100%;\n flex-grow: 1;\n flex-shrink: 0;\n }\n\n li {\n margin: 8px 0px 8px 12px;\n\n &:first-of-type {\n margin-top: 0px;\n }\n\n &:last-of-type {\n margin-bottom: 0px;\n }\n\n @media (max-width: 768px) {\n margin: 4px 0px 4px 12px;\n }\n }\n\n @media (max-width: 768px) {\n margin-bottom: 8px;\n }\n`;\n\nconst FeatureTextWrap = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n svg {\n flex-shrink: 0;\n }\n`;\n\nconst UpsellImageContent = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n order: ${({upsellImagePosition}) => upsellImagePosition && upsellImagePosition === \"right\" ? 2 : 1};\n\n @media (max-width: 768px) {\n order: 1;\n }\n`;\n\nconst UpsellBanner = styled.img`\n display: inline-block;\n width: 100%;\n\n @media (max-width: 768px) {\n max-height: 160px;\n width: auto;\n }\n`;\n\nconst UpsellDisclaimer = styled.div`\n font-size: 12px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.18;\n letter-spacing: -0.17px;\n text-align: center;\n color: #888;\n margin-top: 16px;\n`;\n\nconst Error = styled.div`\n display: inline-block;\n color: #c2313a;\n font-size: 12px;\n min-height: 12px;\n line-height: 12px;\n /* font-family: Inter, Roboto; */\n font-weight: bold;\n visibility: ${(props) => (props.hidden ? \"hidden\" : \"visible\")};\n margin-bottom: 10px;\n`;\n\nconst UpsellModalWrapper = styled.div`\n padding: 20px 10px 10px;\n border-radius: 22px;\n box-shadow: 0 25px 60px 0 rgba(0, 0, 0, 0.16);\n background-color: #fbfafe;\n min-height: 562px;\n width: 800px;\n box-sizing: border-box;\n max-height: calc(100vh - 80px);\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n overflow: auto;\n\n @media (max-width: 768px) {\n height: auto;\n width: calc(100vw - 40px);\n background: #fff;\n overflow: auto;\n min-height: 300px;\n\n &:not(.centered) {\n justify-content: flex-start;\n }\n }\n\n @media (max-height: 642px) {\n min-height: calc(100vh - 80px);\n }\n`;\n\nconst MyAccountLink = styled.a`\n display: inline-block;\n font-size: 15px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1;\n letter-spacing: normal;\n text-align: center;\n color: #000;\n text-decoration: underline;\n margin-left: 4px;\n\n &::after {\n content: \"\";\n display: inline-block;\n width: 6px;\n height: 6px;\n border-top: 1px solid currentColor;\n border-right: 1px solid currentColor;\n transform: rotate(45deg);\n margin-left: 5px;\n margin-bottom: 2px;\n }\n\n @media (max-width: 768px) {\n color: #86c600;\n margin-bottom: 20px;\n }\n`;","//@flow\n\nimport React, { useState, useRef, useEffect } from \"react\";\nimport reactStringReplace from \"react-string-replace\";\nimport styled from \"styled-components\";\nimport { sha256 } from \"js-sha256\";\n\nimport {\n __,\n rcookie,\n signToCurrency,\n} from \"../../../lib/utils\";\nimport { SubscriptionUpdate } from \"../../../lib/payments\";\n\nimport {\n getPrice,\n planNames,\n PASS_PLANS_PER_PERIOD,\n gaPeriods,\n} from \"@pcloud/web-utilities/dist/plans/plansInfo\";\n\nimport { CUSTOM_PLAN_ID } from \"@pcloud/web-utilities/dist/plans/constants.plans\";\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\nimport {\n PlanIDType,\n Userinfo,\n ColorType,\n} from \"../../../lib/types/dataTypes.components\";\nimport { sendCJPageVisitTag, CJ_PLANS_PREFIX } from \"@pcloud/web-utilities/dist/lib/cjAffiliate\";\nimport { get6HData, send6HData } from \"@pcloud/web-utilities/dist/lib/6HAgancy\";\nimport diffs from \"../../../lib/diffs\";\nimport { getPromoParam } from \"@pcloud/web-utilities/dist/lib/ptr\";\nimport { Message, SecondaryActionLink } from \"./common.style\";\n\nimport SuccessIcon from \"../../../svg/success-icon.svg\";\nimport UpsellModalv1 from \"./UpsellModalv1\";\nimport UpsellModalv2 from \"./UpsellModalv2\";\nimport { getGlobalLocationId } from \"@pcloud/web-utilities/dist/api/utils.api\";\n\ntype SuccessViewBoxProps = {\n successMessage: string,\n color: ColorType,\n theme: \"dark\" | \"light\",\n billingAddress: any,\n paymentProvider: string,\n open3DsecureIframe: () => void,\n on3DsecureError: () => void,\n upsellProduct?: PlanIDType,\n billingPeriod?: \"month\" | \"year\" | \"lifetime\",\n userInfo?: Userinfo,\n currency?: \"$\" | \"€\" | \"₤\",\n cart: Array
,\n analytics: {\n category: string,\n label: string,\n },\n sfPaymentSourceID: string,\n upsellDiscount?: string,\n passPcloud?: boolean\n};\n\nconst SuccessViewBox = ({\n successMessage = __(\"Your payment has been successful\"),\n color = \"cyan\",\n theme,\n billingAddress,\n upsellProduct,\n billingPeriod,\n paymentProvider,\n userInfo,\n currency,\n open3DsecureIframe,\n on3DsecureError,\n cart,\n analytics,\n sfPaymentSourceID,\n upsellDiscount,\n actionLink,\n actionText,\n actionTextToUpperCase = false,\n upsellProductsInfo,\n upsellProductPrices,\n seenUpsellProducts,\n setSeenUpsellProducts,\n currentUpsellProductID,\n setCurrentUpsellProductID,\n upsellVersion,\n passPcloud = false\n}: SuccessViewBoxProps) => {\n const [paymentLoading, setPaymentLoading] = useState(false);\n const [errorMessage, setErrorMessage] = useState(\"\");\n const [showUpsellModal, setShowUpsellModal] = useState(false);\n const [cjData, setCjData] = useState(null);\n const [countdown, setCountdown] = useState(5);\n const userDiff = useRef(null);\n\n actionText = actionTextToUpperCase ? __(actionText || \"birthday_landing_not_eligible_CTA1\", \"Go to my account\").toUpperCase() : __(actionText || \"birthday_landing_not_eligible_CTA1\", \"Go to my account\");\n\n const changeUpsell = () => {\n for (let index = 0; index < upsellProductsInfo.length; index++) {\n const upsell = upsellProductsInfo[index];\n const { disabled, planId } = upsell;\n\n if (planId && !disabled && seenUpsellProducts.indexOf(planId) === -1) {\n setErrorMessage(\"\");\n setShowUpsellModal(true);\n setCurrentUpsellProductID(planId);\n break;\n };\n\n if (index === upsellProductsInfo.length - 1) {\n setCurrentUpsellProductID(null);\n }\n };\n };\n\n useEffect(() => {\n changeUpsell();\n }, [upsellProductsInfo, seenUpsellProducts]);\n\n useEffect(() => {\n setPaymentLoading(false);\n }, [currentUpsellProductID])\n\n // useEffect(() => {\n // if (showUpsellModal && currentUpsellProductID && upsellProductPrices && upsellProductPrices[currentUpsellProductID]) {\n // if (typeof ga4 == 'function') {\n // const upsellPriceData = upsellProductPrices[currentUpsellProductID] || {};\n // ga4({\n // eventname: \"view_promotion\",\n // ecommerce: {\n // items: [{\n // promotion_name: getPromoParam(\"label\") || analytics.label,\n // creative_slot: \"upsell\",\n // item_name: planNames[currentUpsellProductID] + \" \" + gaPeriods[billingPeriod],\n // item_brand: PASS_PLANS_PER_PERIOD[billingPeriod].includes(currentUpsellProductID) ? \"pCloudPass\" : \"pCloud\",\n // item_id: getPromoParam(\"channelid\"),\n // affiliation: rcookie(\"ref\"),\n // quantity: 1,\n // currency: signToCurrency[currency] || \"USD\",\n // price: upsellPriceData.price,\n // item_variant: plansQuota[currentUpsellProductID]\n // }]\n // }\n // })\n // }\n // }\n // }, [showUpsellModal, currentUpsellProductID, upsellProductPrices])\n\n useEffect(() => {\n if (cjData) {\n sendCJPageVisitTag(cjData);\n }\n }, [cjData]);\n\n useEffect(() => {\n document.getElementsByTagName(\"body\")[0].classList.add(\"successeful-payment\");\n\n // redirect countdown for pPass trial users\n if (passPcloud) {\n const timer = setInterval(() => {\n setCountdown((currentCountdown) => {\n console.log({ currentCountdown })\n\n if (currentCountdown <= 1) {\n window.location.href = actionLink;\n }\n return currentCountdown - 1;\n });\n }, 1000);\n\n return () => clearInterval(timer);\n }\n\n }, []);\n\n const setCJData = () => {\n const newCjData = {};\n const items = [];\n const locationid = rcookie(\"locationid\") || \"0\";\n const sha256Email = sha256 ? sha256(userInfo.email) : \"\";\n\n newCjData.emailHash = sha256Email;\n newCjData.userId = locationid + \"_\" + userInfo.userid;\n\n if (upsellProduct) {\n let totalDiscount = 0;\n\n const planId = CJ_PLANS_PREFIX[upsellProduct] + \"_\" + billingPeriod[0].toUpperCase();\n const currentPrice = getPrice(upsellProduct, billingPeriod, currency);\n let discountValue = 0;\n\n if (upsellPriceData) {\n discountValue = upsellPriceData.oldPrice - upsellPriceData.currentPrice;\n }\n\n items.push({\n itemId: planId,\n quantity: 1,\n unitPrice: currentPrice,\n discount: discountValue\n })\n\n newCjData.cartSubtotal = price;\n newCjData.currency = signToCurrency[currency] || 'USD';\n newCjData.items = items;\n }\n\n setCjData(newCjData);\n }\n\n const closeUpsellModal = () => {\n setShowUpsellModal(false);\n setTimeout(() => {\n setSeenUpsellProducts(seenUpsellProducts.concat(currentUpsellProductID));\n }, 500);\n };\n\n const subscribeForUserDiff = onChange => {\n if (!userInfo) {\n return;\n }\n\n if (userDiff.current) {\n userDiff.current(true);\n }\n\n const { auth } = userInfo;\n\n userDiff.current = diffs.listen(auth, entries => {\n if (entries.length) {\n const modifyUserEvents = entries.filter(({ event, time, userinfo }) => {\n return event === \"modifyuserinfo\" && userinfo;\n });\n if (modifyUserEvents.length) {\n const { userinfo } = modifyUserEvents[modifyUserEvents.length - 1];\n if (onChange) {\n onChange(userinfo);\n }\n }\n }\n });\n };\n\n const waitForAPItoUpdate = (callback) => {\n const onUpdateSuccess = () => {\n if (userDiff.current) {\n userDiff.current();\n }\n\n if (pCloudGlobals && pCloudGlobals.apiMethod) {\n clearTimeout(timeout);\n setTimeout(() => {\n const { auth } = userInfo;\n pCloudGlobals.apiMethod('userinfo', { auth }, (userinfo) => {\n callback({ ...userinfo, auth });\n }, {\n errorCallback: (error) => {\n console.error(error);\n callback(null);\n },\n forceFresh: true\n })\n }, 1500);\n } else {\n callback(null);\n }\n };\n\n subscribeForUserDiff(onUpdateSuccess);\n\n const timeout = setTimeout(() => {\n onUpdateSuccess();\n }, (paymentProvider === \"paypal\" ? 0 : 6000));\n };\n\n const afterPaymentActions = (res) => {\n const transactionID = res.transactionId || res.transactionid || res.id || \"\";\n const { label, category } = analytics;\n const upsellPriceData = upsellProductPrices[currentUpsellProductID] || {};\n const promoParams = {\n label: getPromoParam(\"label\"),\n channelid: getPromoParam(\"channelid\"),\n passcampaign: getPromoParam(\"passcampaign\"),\n };\n \n const analyticsParams = {\n category: \"promo\",\n action: \"purchase\",\n label: promoParams.label || label,\n os: 4,\n };\n\n const analyticsData = {\n revenue: upsellPriceData.price,\n currency: signToCurrency[currency] || \"USD\",\n };\n\n const data6H = get6HData();\n\n if (promoParams.channelid) {\n analyticsData.channelid = promoParams.channelid;\n }\n\n if (promoParams.passcampaign) {\n analyticsData.passcampaign = promoParams.passcampaign;\n }\n\n sendAnalyticsEvent(analyticsParams, analyticsData);\n\n if (data6H && pCloudGlobals.apiMethod) {\n send6HData(pCloudGlobals.apiMethod, data6H);\n }\n\n // if (typeof ga4 !== \"undefined\") {\n // ga4({\n // eventname: \"purchase\",\n // ecommerce: {\n // currency: signToCurrency[currency],\n // value: upsellPriceData.price,\n // transaction_id: transactionID,\n // payment_type: paymentProvider,\n // items: [{\n // promotion_name: getPromoParam(\"label\") || analytics.label,\n // creative_slot: \"upsell\",\n // item_name: planNames[currentUpsellProductID] + \" \" + gaPeriods[billingPeriod],\n // item_brand: PASS_PLANS_PER_PERIOD[billingPeriod].includes(currentUpsellProductID) ? \"pCloudPass\" : \"pCloud\",\n // creative_name: getPromoParam(\"channelid\"),\n // affiliation: rcookie(\"ref\"),\n // quantity: 1,\n // currency: signToCurrency[currency] || \"USD\",\n // price: upsellPriceData.price,\n // item_variant: plansQuota[currentUpsellProductID]\n // }]\n // }\n // })\n // }\n\n const itemsInfo = [\n {\n name: planNames[currentUpsellProductID],\n price: upsellPriceData.price,\n quantity: 1,\n },\n ];\n\n gtagAds('event', 'conversion', {\n 'send_to': 'AW-946159937/3Uu5CKv9wo0YEMGClcMD',\n 'value': upsellPriceData.price,\n 'currency': signToCurrency[currency] || \"USD\",\n 'transaction_id': transactionID,\n items: itemsInfo\n });\n\n if (typeof ttq !== \"undefined\" && ttq.track && typeof ttq.track == \"function\") {\n ttq.track('CompletePayment', {\n content_id: currentUpsellProductID,\n content_type: 'product',\n content_name: planNames[currentUpsellProductID],\n quantity: 1,\n price: upsellPriceData.price,\n value: upsellPriceData.price,\n currency: signToCurrency[currency] || \"USD\"\n })\n }\n\n if (typeof fbq == \"function\") {\n let sha256UserID = sha256(user.userid.toString());\n\n if (sha256UserID.length) {\n sha256UserID += `-${getGlobalLocationId()}`;\n }\n\n fbq(\"track\", billingPeriod === \"lifetime\" ? \"Purchase\" : \"Subscribe\", {\n value: upsellPriceData.price,\n currency: signToCurrency[currency] || \"USD\",\n });\n }\n window.uetq = window.uetq || [];\n window.uetq.push('event', 'purchase', { 'revenue_value': upsellPriceData.price, currency: (signToCurrency[currency] || 'USD') });\n\n waitForAPItoUpdate((userInfo) => {\n setSeenUpsellProducts(seenUpsellProducts.concat(currentUpsellProductID));\n // setCurrentUpsellProductID(null);\n // setPaymentLoading(false);\n\n if (sessionStorage.pCloud) {\n sessionStorage.removeItem(\"pCloud\");\n };\n });\n };\n\n const handleSubmit = (event: SyntheticInputEvent
) => {\n const upsellPriceData = upsellProductPrices[currentUpsellProductID] || {};\n event.preventDefault();\n setErrorMessage(\"\");\n\n if (paymentLoading) {\n return;\n };\n\n // if (typeof ga4 == 'function') {\n // ga4({\n // eventname: \"select_promotion\",\n // ecommerce: {\n // items: [{\n // promotion_name: getPromoParam(\"label\") || analytics.label,\n // creative_slot: \"upsell\",\n // item_name: planNames[currentUpsellProductID] + \" \" + gaPeriods[billingPeriod],\n // item_brand: PASS_PLANS_PER_PERIOD[billingPeriod].includes(currentUpsellProductID) ? \"pCloudPass\" : \"pCloud\",\n // item_id: getPromoParam(\"channelid\"),\n // affiliation: rcookie(\"ref\"),\n // quantity: 1,\n // currency: signToCurrency[currency] || \"USD\",\n // price: upsellPriceData.price,\n // item_variant: plansQuota[currentUpsellProductID]\n // }]\n // }\n // })\n // }\n\n const products = billingPeriod === \"lifetime\" ? [typeof currentUpsellProductID === \"string\" && currentUpsellProductID.indexOf(CUSTOM_PLAN_ID) !== -1 ? CUSTOM_PLAN_ID : currentUpsellProductID] : [...cart, currentUpsellProductID];\n const params = {\n provider: paymentProvider,\n period: billingPeriod,\n userAuth: userInfo.auth,\n products: products,\n billingAddress: billingAddress,\n storage: upsellPriceData.storage || 0,\n traffic: 0,\n providerSourceId: sfPaymentSourceID,\n toggleLoader: togglePaymentLoader,\n showPaymentError: setErrorMessage,\n showBadInput: () => { },\n open3DsecureIframe,\n on3DsecureError,\n };\n\n if (upsellPriceData.discountCode && upsellPriceData.validdiscountcode) {\n params.discountcode = upsellPriceData.discountCode;\n }\n\n const payments = new SubscriptionUpdate(params);\n\n if (paymentProvider === \"paypal\") {\n payments.createBraintreePayment({\n refresh: false,\n callback: afterPaymentActions,\n });\n } else if (paymentProvider === \"safecharge\") {\n payments.initSafechargePayment({\n refresh: false,\n callback: afterPaymentActions,\n });\n } else if (paymentProvider === \"stripe\") {\n payments.updateStripeSubscription({\n refresh: false,\n callback: afterPaymentActions,\n });\n }\n };\n\n const togglePaymentLoader = (action: \"show\" | \"hide\", type) => {\n if (action === \"hide\" && type && type === \"success\") {\n return;\n }\n\n setPaymentLoading(action === \"show\");\n };\n\n const getRedirectCountDownMessage = () => {\n let message = __(\"ppass_redirect_msg\", \"You will be automatically redirected in %seconds% seconds\");\n message = reactStringReplace(message, /(%seconds%)/g, (match, i) => (\n
{countdown}
\n ));\n\n return message;\n }\n\n\n const renderUpsell = () => {\n const currentUpsellIndex = upsellProductsInfo.findIndex(({ planId }) => currentUpsellProductID === planId);\n const currentUpsellProductData = currentUpsellIndex !== -1 && upsellProductsInfo[currentUpsellIndex];\n\n if (upsellVersion === 1 || typeof upsellVersion === \"undefined\") {\n return (\n
\n )\n } else if (upsellVersion === 2) {\n return (\n
\n )\n }\n }\n\n return (\n
\n
\n
\n
{successMessage}
\n
\n {actionText}\n
\n {passPcloud &&\n
\n {getRedirectCountDownMessage()}\n
\n }\n
\n {renderUpsell()}\n
\n );\n};\n\nexport default SuccessViewBox;\n\nconst Wrapper = styled.div`\n /* font-family: Inter, Roboto; */\n position: relative;\n width: 100%;\n box-sizing: border-box;\n padding: 40px 40px 46px 40px;\n box-shadow: 3.8px 5.9px 10px 0 rgba(0, 0, 0, 0.05);\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#fafafa\";\n }\n }};\n min-height: 677px;\n\n //fix for IE\n height: 676px;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n\n @media (max-width: 768px) {\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#ffffff\";\n }\n }};\n min-height: 0px;\n border-radius: 0px;\n height: auto;\n }\n`;\n\nconst RedirectMessage = styled.div`\n font-size: 16px;\n text-align: center;\n color: #888;\n font-family: 'Roboto';\n`\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgWarning(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 50.7 45.3\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.3 45.3h40c4.1 0 6.6-4.4 4.6-8l-20-34.7c-2-3.5-7.1-3.5-9.2 0L.7 37.3c-2 3.6.5 8 4.6 8zm20-18.6c-1.5 0-2.7-1.2-2.7-2.7v-5.3c0-1.5 1.2-2.7 2.7-2.7s2.7 1.2 2.7 2.7V24c0 1.5-1.2 2.7-2.7 2.7zM28 37.3h-5.3V32H28v5.3z\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"#ff8000\"\n })));\n}\nexport default SvgWarning;","//@flow\n\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nimport { __ } from \"../../../lib/utils\";\nimport { planBoxTexts, planBoxPeriodTexts } from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport { ColorType, PlanIDType } from \"../../../lib/types/dataTypes.components\";\nimport WarningIcon from \"../../../../new_site/images/p_promo/warning.svg\";\n\nimport { BoxHeader, BoxDiscount, BoxPrices, BoxFeature } from \"../../PlansBox\";\n\ntype PaymentDisruptionViewProps = {\n planId: PlanIDType,\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme?: \"light\" | \"dark\",\n discountPercent?: number,\n showDiscountCorner?: boolean,\n getTotalStorage: (storage: number) => string,\n getTotalTraffic: (storage: number) => string,\n price: number,\n oldPrice: number,\n currency: string,\n periodText: string,\n discountPeriod: number\n};\n\nconst PaymentDisruptionViewBox = ({\n planId,\n billingPeriod,\n color,\n theme,\n discountPercent,\n showDiscountCorner,\n price,\n oldPrice,\n currency,\n periodText,\n discountPeriod,\n showCurrencyCode = true,\n getTotalStorage: getTotalStorageForUser,\n getTotalTraffic: getTotalTrafficForUser\n}: PaymentDisruptionViewProps) => {\n const texts = planBoxTexts[planId.join(\"+\")] || planBoxTexts[planId];\n const { title: titleObj, features } = texts;\n const title = titleObj[billingPeriod] || titleObj.default;\n const renderFeatures = () => {\n const featuresToRender = features[billingPeriod] || features.default;\n return featuresToRender.map(({ feature, tooltip }, index) => {\n if (feature.indexOf(\"%amount%\") !== -1) {\n feature = feature.replace(\"%amount%\", getTotalStorageForUser(planId[0]));\n }\n\n if (feature.indexOf(\"%traffic_amount%\") !== -1) {\n feature = feature.replace(\"%traffic_amount%\", getTotalTrafficForUser(planId[0]));\n }\n return (\n
\n );\n });\n };\n\n return (\n
\n {discountPercent && showDiscountCorner ? (\n
\n ) : null}\n\n
\n\n
\n\n
\n
\n
{__(\"payment_disruption\")}
\n
\n\n
{renderFeatures()}
\n
\n );\n};\n\nexport default PaymentDisruptionViewBox;\n\nconst Wrapper = styled.div`\n /* font-family: Inter, Roboto; */\n position: relative;\n width: 100%;\n box-sizing: border-box;\n padding: 36px 40px 36px 40px;\n border-radius: 10px;\n box-shadow: 3.8px 5.9px 10px 0 rgba(0, 0, 0, 0.05);\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#ffffff\";\n }\n }};\n overflow: hidden;\n min-height: 677px;\n\n @media (max-width: 768px) {\n padding: 25px 20px;\n background-color: ${({ theme }) => {\n if (theme === \"dark\") {\n return \"#0d0e0f\";\n } else {\n return \"#ffffff\";\n }\n }};\n min-height: 0px;\n border-radius: 0px;\n }\n\n .tooltip {\n padding: 15px 20px;\n max-width: 250px;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.35;\n font-weight: 400;\n text-align: center;\n }\n`;\n\nconst PaymentMessageForm = styled.div`\n padding: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n flex-direction: column;\n\tline-height: 20px;\n\tpadding: 20px;\n\tfont-size: 14px;\n background: #fffbdd;\n border: 1px solid #ede9cd;\n\n svg {\n margin-bottom: 20px;\n\n @media (max-width: 768px) {\n margin-bottom: 15px;\n }\n }\n\n @media (max-width: 768px) {\n font-size: 15px;\n font-weight: bold;\n }\n`;\n\nconst FeaturesWrapper = styled.div`\n margin-top: 39px;\n @media (max-width: 768px) {\n display: none;\n }\n`;","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgErrorIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 64,\n height: 63.999\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#f73c3c\",\n d: \"M19.544 61.484a31.9 31.9 0 01-10.171-6.858 31.857 31.857 0 01-6.858-10.172A31.794 31.794 0 010 32a31.806 31.806 0 012.516-12.457 31.875 31.875 0 016.858-10.17 31.855 31.855 0 0110.171-6.858A31.785 31.785 0 0132 0a31.785 31.785 0 0112.456 2.516 31.839 31.839 0 0110.171 6.858 31.879 31.879 0 016.859 10.17A31.8 31.8 0 0164 32a31.792 31.792 0 01-2.514 12.455 31.9 31.9 0 01-6.859 10.172 31.887 31.887 0 01-10.171 6.858A31.815 31.815 0 0132 64a31.814 31.814 0 01-12.456-2.516zM21.49 7.121a26.911 26.911 0 00-8.582 5.786 26.891 26.891 0 00-5.786 8.582A26.822 26.822 0 005 32a26.822 26.822 0 002.123 10.51 26.891 26.891 0 005.786 8.582 26.911 26.911 0 008.582 5.786A26.824 26.824 0 0032 59a26.826 26.826 0 0010.511-2.122 26.911 26.911 0 008.582-5.786 26.915 26.915 0 005.786-8.582A26.821 26.821 0 0059 32a26.82 26.82 0 00-2.122-10.51 26.915 26.915 0 00-5.786-8.582 26.911 26.911 0 00-8.582-5.786A26.853 26.853 0 0032 5a26.85 26.85 0 00-10.509 2.121zM30 44.5a2.5 2.5 0 012.5-2.5 2.5 2.5 0 012.5 2.5 2.5 2.5 0 01-2.5 2.5 2.5 2.5 0 01-2.5-2.5zm0-8v-17a2.5 2.5 0 012.5-2.5 2.5 2.5 0 012.5 2.5v17a2.5 2.5 0 01-2.5 2.5 2.5 2.5 0 01-2.5-2.5z\"\n })));\n}\nexport default SvgErrorIcon;","//@flow\n\nimport React, { useState, useEffect, useLayoutEffect, useRef } from \"react\";\nimport styled from \"styled-components\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport {\n __,\n currencyMap,\n rcookie,\n hrefSearch,\n getCurrency,\n signToCurrency,\n} from \"../../lib/utils\";\nimport { findIndex } from \"@pcloud/web-utilities/dist/lib/utils\";\nimport { getPromoParam, sendAnalyticsEvent } from \"@pcloud/web-utilities/dist/lib/ptr\";\nimport {\n underPriceTexts,\n getPrice,\n planNames,\n gaPeriods,\n PASS_PLANS_PER_PERIOD,\n plansQuota,\n} from \"@pcloud/web-utilities/dist/plans/plansInfo\";\nimport {\n getCurrentStorageCount,\n getTotalTraffic,\n getTotalStorage\n} from \"@pcloud/web-utilities/dist/plans/utils.plans\";\nimport diffs from \"../../lib/diffs\";\n\nimport PaymentViewBox from \"./views/PaymentViewBox\";\nimport PlanViewBox from \"./views/PlanViewBox\";\nimport LoginViewBox from \"./views/LoginViewBox\";\nimport DisabledViewBox from \"./views/DisabledViewBox\";\nimport SuccessViewBox from \"./views/SuccessViewBox\";\nimport PaymentDisruptionViewBox from \"./views/PaymentDisruptionViewBox\";\nimport ToggleTabs from \"../ToggleTabs\";\nimport SpinContainer from \"../SpinContainer\";\nimport LoadingIcon from \"../../svg/loading-icon.svg\";\nimport ErrorIcon from \"../../svg/error-icon.svg\";\n\nimport { ColorType, PlanIDType, Userinfo } from \"../../lib/types/dataTypes.components\";\nimport usePrevious from \"@pcloud/web-utilities/dist/hooks/usePrevious\";\n\nimport { COLORS } from \"@pcloud/web-utilities/dist/config/constants\";\nimport {\n PASS_FAMILY_PLAN_ID,\n PASS_PREMIUM_PLAN_ID\n} from \"@pcloud/web-utilities/dist/plans/constants.plans\";\nimport {\n PAYMENT_DISRUPTION_COUNTRIES\n} from \"@pcloud/web-utilities/dist/payments/constants.payments\";\nimport { sendCJPageVisitTag, CJ_PLANS_PREFIX } from \"@pcloud/web-utilities/dist/lib/cjAffiliate\";\n\ntype TabType = {\n tabId: string | number,\n tabValue: Array
,\n tabTitle: string,\n tabType: \"plan\" | \"period\"\n};\n\ntype PaymentPlanWrapperProps = {\n planIds: Array
,\n billingPeriod: \"month\" | \"year\" | \"lifetime\",\n color: ColorType,\n theme: \"light\" | \"dark\",\n country: string,\n logoutCallback: () => void,\n onAuthAction: (data: Userinfo) => void,\n open3DsecureIframe: () => void,\n on3DsecureError: () => void,\n timer: {\n start: number,\n end: number,\n encreasingPriceValue: number,\n discountPreset: string,\n encreasingPriceInterval?: number,\n theme?: string,\n initialDiscount?: string\n },\n LoginOrSignupComponent: any,\n analytics: {\n category: string,\n label: string\n },\n discount?: string,\n currencyDiscounts?: any,\n upsellProduct?: PlanIDType,\n upsellProducts?: Array
,\n customUpsellDiscount?: string,\n user?: Userinfo,\n tabs?: {\n color: ColorType,\n tabs: Array
,\n activeTab: string | number,\n theme?: \"light\" | \"dark\",\n title?: string,\n isAlwaysVisible?: boolean\n },\n openPrivecyModal?: () => void,\n canAddStorage?: boolean,\n limitedPeriodDiscount?: string,\n discountPeriod?: number,\n freeUsersOnly?: boolean,\n showPaymentOptions?: boolean,\n onPriceGet?: (price) => void,\n defaultLoginView?: \"login\" | \"register\",\n handleExternalLogin?: boolean,\n passPcloud?: boolean,\n showPlanDescriptionText?: boolean,\n showSocialProof?: boolean,\n showSocialProofLanding?: string,\n showSocialProofOnlyMobile?: boolean, \n template: \"default\" | \"price-on-the-left\" | \"price-on-the-left-2\",\n discountValue: string | Number,\n discountType: \"percent\" | \"fixedamount\" | \"text\",\n discountLabelBackground?: string,\n discountLabelBackgroundMobile?: string,\n discountLabelBackgroundRetina?: string,\n discountLabelWidth?: string,\n discountLabelHeight?: string,\n discountLabelPositionLeft?: string\n};\n\nconst PaymentPlanWrapper = ({\n planIds,\n billingPeriod,\n color,\n theme,\n country = \"fr\",\n logoutCallback,\n onAuthAction,\n open3DsecureIframe = () => { },\n on3DsecureError = () => { },\n timer = {},\n LoginOrSignupComponent,\n discount,\n currencyDiscounts,\n user,\n upsellProducts = [],\n analytics,\n tabs,\n openPrivecyModal,\n canAddStorage = true,\n limitedPeriodDiscount,\n discountPeriod,\n freeUsersOnly,\n showPaymentOptions,\n onPriceGet,\n customSuccessMessage,\n successActionLink,\n successActionText,\n successActionTextToUpperCase = false,\n secondaryDisableText,\n showCurrencyCode = true,\n flow = {\n steps: [\"plan\", \"login\", \"payment\", \"success\"],\n actions: {\n plan: null,\n login: null,\n payment: null,\n success: null\n }\n },\n defaultLoginView,\n handleExternalLogin = false,\n passPcloud = false,\n showPlanDescriptionText = false,\n showSocialProof = false,\n showSocialProofLanding = \"\",\n showSocialProofOnlyMobile = false,\n template = \"default\",\n discountValue,\n discountType,\n discountLabelBackground,\n discountLabelBackgroundMobile,\n discountLabelBackgroundRetina,\n discountLabelWidth,\n discountLabelHeight,\n discountLabelPositionLeft,\n upsellVersion,\n abTest = false\n}: PaymentPlanWrapperProps) => {\n const [view, setView] = useState(\"plan\");\n const [currentPlanIds, setCurrentPlanIds] = useState(planIds);\n const [selectedTab, setSelectedTab] = useState((tabs && tabs.activeTab) || null);\n const [period, setPeriod] = useState(billingPeriod);\n const [price, setPrice] = useState(0);\n const [oldPrice, setOldPrice] = useState(0);\n const [currency, setCurrency] = useState(null);\n const [userInfo, setUserInfo] = useState(user || null);\n const [discountCode, setDiscountCode] = useState(false);\n const [discountPercent, setDiscountPercent] = useState(0);\n const [disabledReason, setDisabledReason] = useState(\"\");\n const [paymentProvider, setPaymentProvider] = useState(\"safecharge\");\n const [sfPaymentSourceID, setsfPaymentSourceID] = useState(null);\n const [cart, setCart] = useState(null);\n const [cjData, setCjData] = useState(null);\n const [paymentInitiated, setPaymentInitiated] = useState(false);\n const [tabsSetting, setTabsSetting] = useState(tabs);\n const [priceLoading, setPriceLoading] = useState(true);\n const [priceLoadingError, setPriceLoadingError] = useState(\"\");\n const [tabsSwitched, setTabsSwitched] = useState(false);\n const [plans, setPlans] = useState({});\n const [successMessage, setSuccessMessage] = useState(customSuccessMessage || \"Your payment has been successful\");\n const [upsellProductsInfo, setUpsellProductsInfo] = useState([]);\n const [upsellProductPrices, setUpsellProductPrices] = useState({});\n const [seenUpsellProducts, setSeenUpsellProducts] = useState([]);\n const [currentUpsellProductID, setCurrentUpsellProductID] = useState(null);\n const shouldStartFreeTrial = useRef({ value: false });\n\n const [timerExp, setTimerExp] = useState(null);\n const [passedHours, setPassedHours] = useState(null);\n\n const prevUserInfo = usePrevious(userInfo);\n\n const { encreasingPriceValue, discountPreset } = timer;\n const timerInterval = useRef(null);\n const getplansXHR = useRef(null);\n const increasingPrice = encreasingPriceValue && discountPreset;\n\n const promoParams = {\n label: getPromoParam(\"label\"),\n channelid: getPromoParam(\"channelid\"),\n passcampaign: getPromoParam(\"passcampaign\"),\n };\n\n const loginCallback = (newUser) => {\n if (newUser) {\n if (!passPcloud || (passPcloud && (rcookie(\"passtoken\") || rcookie(\"restrictedPassToken\")))) {\n setUserInfo(newUser);\n if (shouldStartFreeTrial.current.value) {\n startTrial(newUser.auth);\n return;\n }\n }\n\n if (handleExternalLogin) {\n setView(\"payment\");\n }\n }\n }\n\n const registerCallback = (newUser) => {\n if (newUser) {\n if (!passPcloud || (passPcloud && (rcookie(\"passtoken\") || rcookie(\"restrictedPassToken\")))) {\n setUserInfo(newUser);\n if (shouldStartFreeTrial.current.value) {\n startTrial(newUser.auth);\n return;\n }\n }\n if (handleExternalLogin) {\n setView(\"payment\");\n }/* else {\n setView(\"plan\");\n }*/\n }\n }\n\n const onUserInfoChangeAfterPayment = (userInfo) => {\n if (!userInfo || !upsellProducts || upsellProducts.length === 0) {\n showSuccessMessage();\n return null;\n }\n\n const newUpsellProductsInfo = upsellProducts.map(upsell => {\n const { planId, planIdAccordingPurchase } = upsell;\n let newPlanId = planId;\n if (!planId) {\n if (planIdAccordingPurchase && planIdAccordingPurchase[currentPlanIds.join(\"+\")]) {\n newPlanId = planIdAccordingPurchase[currentPlanIds.join(\"+\")];\n }\n }\n\n return { ...upsell, planId: newPlanId }\n });\n\n const getUpsellPlansApiCalls = [];\n const newUpsellProductPrices = {};\n\n newUpsellProductsInfo.forEach(upsell => {\n const { planId, upsellDiscount } = upsell;\n\n if (planId) {\n const params = {\n products: planId,\n period: period,\n auth: userInfo.auth\n };\n\n if (upsellDiscount) {\n params.discountcode = upsellDiscount;\n };\n\n const onSuccessCallback = (plansData, resolve) => {\n const product = plansData.products[period] && plansData.products[period].find((product) => product.productid == planId);\n \n if (product) {\n const { pricecents, originalpricecents, validdiscountcode, canbuy, canbuydisabledreason = \"plan_upgrade_restrictions\"} = product;\n \n newUpsellProductPrices[planId] = {\n price: pricecents / 100,\n originalPrice: originalpricecents / 100,\n validdiscountcode: validdiscountcode,\n discountCode: upsellDiscount,\n };\n \n upsell.disabled = !canbuy;\n upsell.disabledReason = !canbuy && canbuydisabledreason;\n }\n\n resolve(plansData);\n };\n\n const promise = new Promise((resolve, reject) => {\n getPlanPrice(\n params,\n (data) => onSuccessCallback(data, resolve),\n reject\n );\n });\n\n getUpsellPlansApiCalls.push(promise);\n }\n });\n\n Promise.all(getUpsellPlansApiCalls)\n .then(values => {\n setUpsellProductPrices(newUpsellProductPrices);\n setUpsellProductsInfo(newUpsellProductsInfo);\n })\n .catch(error => {\n console.log(\"ERROR on getting upsell plans!\");\n }).finally(() => {\n showSuccessMessage();\n });\n };\n\n useEffect(() => {\n login_callback = login_callback ? [].concat(login_callback) : [];\n register_callback = register_callback ? [].concat(register_callback) : [];\n logout_callback = logout_callback ? [].concat(logout_callback) : [];\n\n const logoutCallback = () => {\n handleUIChangesOnLogout();\n }\n \n logout_callback.push(logoutCallback);\n login_callback.push(loginCallback);\n register_callback.push(registerCallback);\n\n if (timer) {\n initTimer();\n }\n\n return () => {\n diffs.stop();\n clearInterval(timerInterval.current);\n };\n }, []);\n\n useEffect(() => {\n // Await plans data to be ready.\n if (\n (\n !plans || !period || !plans[period]\n ) &&\n billingPeriod !== 'trial'\n ) {\n return;\n }\n\n if (view === \"plan\" || view === \"login\" || view === \"disabled\") {\n if (checkUserCanBuyPlans(userInfo)) {\n if (!handleExternalLogin && userInfo && view === \"login\") {\n setView(\"payment\");\n }\n\n if (view === \"disabled\") {\n setView(\"plan\");\n }\n }\n }\n }, [plans, period]);\n\n useEffect(() => {\n if (userInfo) {\n if (typeof _learnq !== 'undefined' && (rcookie('ref') == 56215 || hrefSearch(\"ref\") == 56215)) {\n _learnq.push(['identify', {\n '$email': userInfo.email,\n '$id': userInfo.userid\n }])\n }\n } else {\n resetTabs();\n }\n }, [userInfo]);\n\n useEffect(() => {\n if (!increasingPrice || passedHours === null || !timerExp) {\n return;\n }\n\n const { discountPreset, initialDiscount } = timer;\n const discountPresetPerProduct = typeof discountPreset === \"object\" ? discountPreset[currentPlanIds.join(\"+\")] : discountPreset;\n const initialDiscountPerProduct = typeof initialDiscount === \"object\" ? initialDiscount[currentPlanIds.join(\"+\")] : initialDiscount;\n const newDiscountCode = passedHours ? discountPresetPerProduct + passedHours : initialDiscountPerProduct;\n\n initPlansData(newDiscountCode);\n }, [passedHours, timerExp]); //[passedHours, timerExp]\n\n useEffect(() => {\n setDiscountPercent(Math.round((1 - price / oldPrice) * 100));\n\n if (onPriceGet) {\n onPriceGet(price, oldPrice, currency)\n }\n }, [price, oldPrice, currency]); //[price, oldPrice, currency]\n\n const biggestPaymenPlanWrapperViewHeight = useRef(0);\n\n useEffect(() => {\n if (view === \"payment\") {\n setUserVisit();\n initCJData();\n\n if (typeof fbq == \"function\") {\n fbq(\"track\", \"InitiateCheckout\", {});\n }\n window.uetq = window.uetq || [];\n window.uetq.push('event', 'InitiateCheckout');\n\n if (typeof ttq !== \"undefined\" && ttq.track && typeof ttq.track == \"function\") {\n ttq.track('InitiateCheckout');\n }\n // pintrk('track', 'custom', {eventName: \"InitiateCheckout\"});\n\n if (typeof pintrk === \"function\") {\n pintrk('track', 'addtocart');\n }\n } \n }, [view]); //[view]\n\n // useEffect(() => {\n // if (view === \"plan\" && price && currentPlanIds && period && currency) {\n // const ga4Items = [{\n // item_name: currentPlanIds.map(planID => planNames[planID]).join(\" + \") + \" \" + gaPeriods[period],\n // item_brand: currentPlanIds.some(planID => PASS_PLANS_PER_PERIOD[period].includes(planID)) ? \"pCloudPass\" : \"pCloud\",\n // item_category: gaPeriods[period],\n // item_variant: plansQuota[currentPlanIds.find(planID => plansQuota[planID])] || \"\",\n // affiliation: rcookie(\"ref\"),\n // coupon: discountCode || \"\",\n // index: 0,\n // price: price,\n // currency: signToCurrency[currency],\n // quantity: 1\n // }];\n // console.log(\"ga4Items\", ga4Items);\n // ga4({\n // eventname: \"view_item\",\n // items: ga4Items\n // })\n // }\n // }, [price, currency]);\n\n useLayoutEffect(() => {\n // Keep payment wrapper height equal on each steps for viewport > 768px.\n // Check if height is greater than CSS min-height and if so use it as new min-height value.\n if (typeof $ !== 'undefined') {\n // Desktop only\n if ($('.view-box-wrapper').height() > parseInt($('.view-box-wrapper').css('min-height'))) {\n biggestPaymenPlanWrapperViewHeight.current = $('.view-box-wrapper').height();\n }\n \n if (biggestPaymenPlanWrapperViewHeight.current > 0) {\n // TODO remove this need to set min-height when visiting each step by moving the min-height to be only to the parent container.\n let style = document.getElementById('payment-plan-wrapper-component-custom-styles');\n if (!style) {\n style = document.createElement('style');\n style.id = \"payment-plan-wrapper-component-custom-styles\";\n document.head.appendChild(style);\n }\n // Desktop only\n style.innerHTML = `@media (min-width: 769px) {\n .product_box_wrap, .view-box-wrapper, .loginview_wrapper, .planview_wrapper, .paymentview_wrapper, .disabledview_wrapper, .successview_wrapper {\n min-height: ${biggestPaymenPlanWrapperViewHeight.current}px !important;\n }\n }`;\n }\n }\n // \n }, [view]); //[view]\n\n useEffect(() => {\n const { discountPreset, initialDiscount } = timer;\n const discountPresetPerProduct = typeof discountPreset === \"object\" ? discountPreset[currentPlanIds.join(\"+\")] : discountPreset;\n const initialDiscountPerProduct = typeof initialDiscount === \"object\" ? initialDiscount[currentPlanIds.join(\"+\")] : initialDiscount;\n const newDiscountCode = passedHours ? discountPresetPerProduct + passedHours : initialDiscountPerProduct;\n\n initPlansData(newDiscountCode);\n }, [currentPlanIds, userInfo, period]);\n\n useEffect(() => {\n if (view === \"payment\" && cjData) {\n sendCJPageVisitTag(cjData);\n }\n }, [cjData]); //[cjData]\n\n const onLoadedPlans = (res, discountCode) => {\n const { currency, products } = res;\n let totalPrice = 0;\n let totalOriginalprice = 0;\n let validdiscountcode = false;\n\n if (products[period] && products[period].length > 0) {\n products[period].forEach((product) => {\n const { pricecents, originalpricecents } = product;\n totalPrice += pricecents;\n totalOriginalprice += discountPeriod ? discountPeriod * originalpricecents : originalpricecents;\n if (product.validdiscountcode) {\n validdiscountcode = true;\n }\n });\n }\n\n totalPrice /= 100;\n totalOriginalprice /= 100;\n\n setDiscountCode(discountCode && validdiscountcode ? discountCode : false);\n setPrice(totalPrice);\n setOldPrice(totalOriginalprice);\n setCurrency(currencyMap[currency]);\n setPriceLoading(false);\n setPlans(products);\n\n getplansXHR.current = null;\n };\n\n const onLoadPlansError = () => {\n setPriceLoading(false);\n setPriceLoadingError(__(\"custom_plan_price_error\"));\n getplansXHR.current = null;\n };\n\n const initCJData = () => {\n const newCjData = {};\n const items = [];\n const locationid = rcookie(\"locationid\") || \"0\";\n const sha256Email = sha256 ? sha256(userInfo.email) : \"\";\n\n newCjData.emailHash = sha256Email;\n newCjData.userId = locationid + \"_\" + userInfo.userid;\n\n let planId = \"\";\n let totalRegularPrice = 0;\n\n currentPlanIds.forEach((planid, index) => {\n planId += CJ_PLANS_PREFIX[planid] + \"_\";\n if (index === currentPlanIds.length - 1) {\n planId += period[0].toUpperCase();\n }\n\n const currentPrice = getPrice(planid, period, currency || '$');\n totalRegularPrice += currentPrice;\n });\n\n items.push({\n itemId: planId,\n quantity: 1,\n unitPrice: totalRegularPrice,\n discount: totalRegularPrice - price\n });\n\n newCjData.cartSubtotal = price;\n newCjData.currency = signToCurrency[currency] || \"USD\";\n newCjData.items = items;\n newCjData.discount = totalRegularPrice - price;\n\n setCjData(newCjData);\n };\n\n const getCurrencyForDiscount = (callback) => {\n if ((userInfo && userInfo.currency) || (currency && Boolean(prevUserInfo) == Boolean(userInfo))) {\n callback((userInfo && userInfo.currency) || currency);\n return;\n }\n\n const getCurrencyParams = {\n callback: callback,\n };\n\n if (userInfo) {\n getCurrencyParams.auth = userInfo.auth;\n }\n\n getCurrency(getCurrencyParams);\n }\n\n const initPlansData = (newDiscount) => {\n setPriceLoading(true);\n\n if (getplansXHR.current && getplansXHR.current.abort) {\n getplansXHR.current.abort();\n }\n\n if (priceLoadingError) {\n setPriceLoadingError(\"\");\n }\n\n const params = {\n products: currentPlanIds.join(\",\"),\n period: period\n }\n\n if (discount || newDiscount) {\n params.discountcode = newDiscount || (typeof discount === \"object\" && discount[currentPlanIds[0]]) || discount;\n }\n\n if (userInfo) {\n params.auth = userInfo.auth;\n } else {\n params.clearsession = 1;\n }\n\n if (currencyDiscounts) {\n getCurrencyForDiscount((newCurrency) => {\n newCurrency = currencyMap[newCurrency] || newCurrency;\n if (newCurrency) {\n if (currencyDiscounts[newCurrency]) {\n params.discountcode = currencyDiscounts[newCurrency];\n }\n }\n\n getplansXHR.current = getPlanPrice(params, (res) => onLoadedPlans(res, params.discountcode), onLoadPlansError);\n });\n } else {\n getplansXHR.current = getPlanPrice(params, (res) => onLoadedPlans(res, params.discountcode), onLoadPlansError);\n }\n };\n\n const getPlanPrice = (params = {}, successCallback = () => { }, errorCallback = () => { }) => {\n if (params.period && (params.period === \"trial\" || params.period === \"free\")) {\n setDiscountCode(false);\n setPrice(\"0.00\");\n setOldPrice(0);\n setCurrency(pclCurrency);\n setPriceLoading(false);\n return null;\n }\n\n if (rcookie(\"abtestinitiated\") || rcookie(\"showorigprices\")) {\n params.showorigprices = 1;\n params.label = rcookie(\"origipricelable\") || \"ABTestJan2024\";\n\n if (!rcookie(\"origipricelable\")) {\n setcookie(\"origipricelable\", \"ABTestJan2024\");\n }\n };\n\n return pCloudGlobals.apiMethod(\"billing/getplans\", params, successCallback, {\n errorCallback,\n onXhrError: errorCallback\n });\n };\n\n const handleUIChangesOnLogout = () => {\n diffs.stop();\n setView(\"plan\");\n setUserInfo(null);\n initTimer();\n setUpsellProductsInfo([]);\n setUpsellProductPrices({});\n setSeenUpsellProducts([]);\n setCurrentUpsellProductID(null);\n setDisabledReason(null);\n }\n\n const handleLogout = () => {\n handleUIChangesOnLogout();\n logoutCallback(() => { }, false, true);\n };\n\n const setUserVisit = () => {\n const params = {\n auth: userInfo.auth,\n products: currentPlanIds.join(\",\"),\n period: period,\n storage: getCurrentStorageCount(userInfo)\n };\n\n if (discountCode) {\n params.discountcode = discountCode;\n }\n\n pCloudGlobals.apiMethod(\"setuservisit\", params, () => { }, {});\n };\n\n const handleLogin = user => {\n onAuthAction(user, {\n promotion_name: analytics && analytics.label\n });\n\n setUserInfo(user.userinfo);\n };\n\n const startTrial = (auth) => {\n call.apiCall('passmanager/starttrial', { auth: auth },\n (res) => {\n showSuccessMessage();\n },\n (err) => {}\n )\n }\n\n const handleStartTrial = () => {\n if (userInfo) {\n startTrial(userInfo.auth);\n }\n }\n\n const handleGetPlan = (planId, billingPeriod) => {\n const { category, label } = analytics;\n\n const analyticsParams = {\n category: category + \" - buy button\",\n action: \"click\",\n label: promoParams.label || label,\n os: 4\n };\n const analyticsData = {};\n\n if (userInfo && userInfo.auth) {\n analyticsParams.auth = userInfo.auth;\n };\n\n if (promoParams.channelid) {\n analyticsData.channelid = promoParams.channelid;\n };\n\n if (promoParams.passcampaign) {\n analyticsData.passcampaign = promoParams.passcampaign;\n };\n\n if (flow.actions[view]) {\n flow.actions[view]({\n period: period,\n currentPlanIds: currentPlanIds,\n discountCode: discountCode\n });\n } else {\n if (userInfo) {\n if (billingPeriod === \"trial\") {\n handleStartTrial();\n } else {\n setView(\"payment\");\n }\n } else {\n setView(\"login\");\n if (billingPeriod === \"trial\") {\n shouldStartFreeTrial.current.value = true;\n }\n }\n }\n\n clearInterval(timerInterval.current);\n sendAnalyticsEvent(analyticsParams, analyticsData);\n\n // if (typeof ga4 == 'function') {\n // ga4({\n // eventname: \"select_promotion\",\n // ecommerce: {\n // items: [{\n // promotion_name: getPromoParam(\"label\") || analytics.label,\n // creative_slot: \"button\",\n // item_name: planNames[planId] + \" \" + gaPeriods[billingPeriod],\n // item_brand: PASS_PLANS_PER_PERIOD[billingPeriod].includes(planId) ? \"pCloudPass\" : \"pCloud\",\n // item_id: getPromoParam(\"channelid\"),\n // affiliation: rcookie(\"ref\"),\n // quantity: 1,\n // currency: signToCurrency[currency] || \"USD\",\n // price: price,\n // item_variant: plansQuota[planId]\n // }]\n // }\n // })\n // }\n };\n\n const resetTabs = () => {\n if (tabs) {\n setTabsSetting(tabs);\n }\n\n setTabsSwitched(false);\n };\n\n const checkUserCanBuyPlans = (user) => {\n let reason;\n\n if (user) {\n const userPlan = user.plan;\n const isBusiness = user.business;\n const isCrypto = user.cryptosubscription || user.cryptolifetime;\n const hasExtendedHistory = user.efh;\n const hasExtraTraffic = user.additionaltraffic || user.additionaltrafficlifetime;\n\n if (freeUsersOnly && (userPlan || isBusiness || isCrypto || hasExtendedHistory || hasExtraTraffic)) {\n reason = 'promotion_not_available';\n\n const { tabs: tabsCoppy } = { ...tabsSetting };\n const selectedTabIndex =\n tabsCoppy && findIndex(tabsCoppy, ({ tabId }) => tabId === selectedTab);\n\n if (tabsCoppy && selectedTabIndex < tabsCoppy.length - 1 && !tabsSwitched) {\n onTabClick(tabsCoppy[selectedTabIndex + 1].tabId);\n setTabsSwitched(true);\n } else {\n setDisabledReason(reason);\n setView(\"disabled\");\n setTabsSwitched(true);\n }\n } else {\n if (plans[period]) {\n const disabledPlan = plans[period].find((plan) => !plan.canbuy);\n\n if (disabledPlan) {\n reason = disabledPlan.canbuydisabledreason || \"plan_upgrade_restrictions\";\n\n const { tabs: tabsCoppy } = { ...tabsSetting };\n const selectedTabIndex =\n tabsCoppy && findIndex(tabsCoppy, ({ tabId }) => tabId === selectedTab);\n\n if (tabsCoppy && selectedTabIndex < tabsCoppy.length - 1 && !tabsSwitched) {\n onTabClick(tabsCoppy[selectedTabIndex + 1].tabId);\n setTabsSwitched(true);\n\n if (view !== \"plan\") {\n setView(\"plan\");\n }\n } else {\n setDisabledReason(reason);\n setView(\"disabled\");\n setTabsSwitched(true);\n }\n }\n } else if (\n billingPeriod === 'trial' &&\n user.usepassmanagertrial &&\n (\n currentPlanIds.includes(PASS_PREMIUM_PLAN_ID) ||\n currentPlanIds.includes(PASS_FAMILY_PLAN_ID)\n )\n ) {\n reason = 'current_plan';\n setDisabledReason(reason);\n setView(\"disabled\");\n setTabsSwitched(true);\n }\n }\n }\n\n return reason && reason !== \"\" ? false : true;\n };\n\n const initTimer = () => {\n const { start, end, initialDiscountStart } = timer;\n let timeNow = new Date().getTime();\n let newtimerExp = start;\n let newPassedHours = 0;\n const timeBetween = newtimerExp - timeNow;\n\n if (increasingPrice) {\n if (\n (timeNow >= start && timeNow <= end) ||\n (timeNow < start && timeNow >= initialDiscountStart)\n ) {\n if (timeNow > start) {\n newtimerExp =\n // timeNow + 6000\n // newPassedHours = Math.ceil(Math.abs(timeBetween) / (1000 * 60 * 6));\n timeNow + (60 - (timeNow % (1000 * 60 * 60)) / (1000 * 60)) * 60 * 1000;\n newPassedHours = Math.ceil(Math.abs(timeBetween) / (1000 * 60 * 60));\n }\n\n timerInterval.current = setInterval(() => {\n timeNow = new Date().getTime();\n\n if (timeNow >= end) {\n initPlansData();\n clearInterval(timerInterval.current);\n setTimerExp(null);\n setPassedHours(null);\n } else if (timeNow > newtimerExp) {\n newtimerExp += 1000 * 60 * 60;\n // newtimerExp += 6000;\n newPassedHours++;\n setPassedHours(newPassedHours);\n setTimerExp(newtimerExp);\n }\n }, 1000);\n\n setPassedHours(newPassedHours);\n setTimerExp(newtimerExp);\n } else if (timeNow < initialDiscountStart) {\n setPassedHours(newPassedHours);\n } else {\n initPlansData();\n }\n } else {\n if (timeNow >= start && timeNow <= end) {\n setTimerExp(end);\n } else {\n setTimerExp(null);\n }\n }\n };\n\n const showSuccessMessage = () => {\n setView(\"success\");\n };\n\n const onTabClick = clickedTabId => {\n const newTabsSetting = { ...tabsSetting };\n const { tabs } = newTabsSetting;\n const tabInfo = tabs.find(({ tabId }) => tabId === clickedTabId);\n const { tabType } = tabInfo;\n\n if (tabType === \"plan\") {\n setCurrentPlanIds(tabInfo.tabValue);\n } else if (tabType === \"period\") {\n setPeriod(tabInfo.tabValue);\n }\n\n setSelectedTab(clickedTabId);\n };\n\n const renderTabs = () => {\n if (!tabsSetting) {\n return;\n }\n\n let tabsSettingCoppy = { ...tabsSetting };\n const { tabs: tabsCoppy, isAlwaysVisible } = tabsSettingCoppy;\n\n const newTabs = tabsCoppy.map(tab => {\n const disabled = view !== \"plan\" && view !== \"disabled\";\n\n return { ...tab, clickAction: onTabClick, disabled };\n });\n\n tabsSettingCoppy = { ...tabsSettingCoppy, tabs: newTabs };\n\n if (selectedTab) {\n tabsSettingCoppy.activeTab = selectedTab;\n }\n\n let visible = true;\n if (!isAlwaysVisible && view !== \"plan\" && view !== \"disabled\") {\n visible = false;\n }\n\n return (\n
\n
\n \n );\n };\n\n const renderLoading = () => {\n return (\n
\n
{ }}\n onExited={() => { }}\n appear\n >\n
\n
\n
\n
\n
\n \n
\n );\n };\n\n const renderError = () => {\n return (\n
\n
{ }}\n onExited={() => { }}\n appear\n >\n
\n {template === \"price-on-the-left\" || template === \"price-on-the-left-2\" && \n
\n
\n
\n }\n
{priceLoadingError}
\n
\n \n
\n );\n };\n\n const renderView = () => {\n const periodText = discountPeriod ? underPriceTexts['discountPeriod'] : underPriceTexts[period];\n let viewToRender = view;\n // viewToRender = 'success';\n \n // Handle payment disruption in template \"price-on-the-left\"\n let forceDisableText = \"\";\n if (view === \"payment\" && flow && flow.steps.indexOf(view) !== -1 && template === \"price-on-the-left\" && PAYMENT_DISRUPTION_COUNTRIES.indexOf(country.toLowerCase()) !== -1) {\n viewToRender = \"disabled\";\n forceDisableText = __(\"payment_disruption\");\n }\n\n if (viewToRender === \"plan\" && flow && flow.steps.indexOf(viewToRender) !== -1) {\n return (\n
getTotalStorage(planId, userInfo)}\n getTotalTraffic={planId => getTotalTraffic(planId, userInfo)}\n discountPeriod={discountPeriod}\n showPaymentOptions={showPaymentOptions}\n showCurrencyCode={showCurrencyCode}\n showPlanDescriptionText={showPlanDescriptionText}\n showSocialProof={showSocialProof}\n showSocialProofLanding={showSocialProofLanding}\n showSocialProofOnlyMobile={showSocialProofOnlyMobile}\n template={template}\n discountValue={discountValue}\n discountType={discountType}\n discountLabelBackground={discountLabelBackground}\n discountLabelBackgroundMobile={discountLabelBackgroundMobile}\n discountLabelBackgroundRetina={discountLabelBackgroundRetina}\n discountLabelWidth={discountLabelWidth}\n discountLabelHeight={discountLabelHeight}\n discountLabelPositionLeft={discountLabelPositionLeft}\n />\n );\n } else if (viewToRender === \"login\" && flow && flow.steps.indexOf(viewToRender) !== -1) {\n return (\n
\n );\n } else if (viewToRender === \"payment\" && flow && flow.steps.indexOf(viewToRender) !== -1) {\n return (\n // Not used for template: \"price-on-the-left\"\n PAYMENT_DISRUPTION_COUNTRIES.indexOf(country.toLowerCase()) !== -1 ? (\n
getTotalStorage(planId, userInfo)}\n getTotalTraffic={planId => getTotalTraffic(planId, userInfo)}\n oldPrice={oldPrice}\n price={price}\n currency={currency}\n periodText={periodText}\n discountPeriod={discountPeriod}\n showCurrencyCode={showCurrencyCode}\n />\n ) : (\n
{ }}\n userInfo={userInfo}\n oldPrice={oldPrice}\n discountPercent={discountPercent}\n discount={discountCode}\n periodText={periodText}\n open3DsecureIframe={open3DsecureIframe}\n on3DsecureError={on3DsecureError}\n paymentProvider={paymentProvider}\n setPaymentProvider={setPaymentProvider}\n setsfPaymentSourceID={setsfPaymentSourceID}\n cart={cart}\n setCart={setCart}\n renderTabs={renderTabs}\n openPrivecyModal={openPrivecyModal}\n showDiscountCorner={!passedHours}\n cjData={cjData}\n setPaymentInitiated={setPaymentInitiated}\n getCurrentStorageCount={() => getCurrentStorageCount(userInfo)}\n discountPeriod={discountPeriod}\n limitedPeriodDiscount={limitedPeriodDiscount}\n showCurrencyCode={showCurrencyCode}\n onUserInfoChangeAfterPayment={onUserInfoChangeAfterPayment}\n setUserInfo={setUserInfo}\n template={template}\n discountValue={discountValue}\n discountType={discountType}\n discountLabelBackground={discountLabelBackground}\n discountLabelBackgroundMobile={discountLabelBackgroundMobile}\n discountLabelBackgroundRetina={discountLabelBackgroundRetina}\n discountLabelWidth={discountLabelWidth}\n discountLabelHeight={discountLabelHeight}\n discountLabelPositionLeft={discountLabelPositionLeft}\n />\n )\n );\n } else if (viewToRender === \"disabled\") {\n return (\n
\n );\n } else if (viewToRender === \"success\" && flow && flow.steps.indexOf(viewToRender) !== -1) {\n return (\n
\n );\n }\n };\n\n return (\n
\n {template === \"default\" ? renderTabs() : null}\n
\n {renderLoading()}\n {renderError()}\n {renderView()}\n
\n
\n );\n};\n\nexport default PaymentPlanWrapper;\n\nconst Wrapper = styled.div`\n position: relative;\n`;\n\nconst ViewWrapper = styled.div`\n position: relative;\n`;\n\nconst TabsWrapper = styled.div`\n opacity: ${({ visible }) => (visible ? \"1\" : \"0\")};\n visibility: ${({ visible }) => (visible ? \"visible\" : \"hidden\")};\n transition: opacity 250ms ease-in-out;\n\n @media (max-width: 768px) {\n display: ${({ visible }) => visible ? \"block\" : \"none\"};\n }\n`;\n\nconst AnimationContainer = styled.div`\n background-color: inherit;\n transition: opacity 400ms ease-in-out;\n\n & > div {\n transition: opacity 400ms ease-in-out;\n }\n\n .fading-enter,\n .fading-appear {\n opacity: 1;\n }\n .fading-exit {\n opacity: 0;\n }\n .fading-enter-active,\n .fading-appear-active {\n opacity: 1;\n }\n .fading-exit-active {\n opacity: 0;\n }\n .fading-enter-active,\n .fading-appear-active,\n .fading-exit-active {\n transition: opacity 400ms ease-in-out;\n }\n`;\n\nconst LoaderWrapper = styled.div`\n position: absolute;\n height: 100%;\n width: 100%;\n left: 0px;\n background: inherit;\n z-index: 101;\n\n .loading-icon_svg__color-path {\n fill: ${({ color }) => (color && COLORS[color] ? (COLORS[color].loadingIconColor ? COLORS[color].loadingIconColor : COLORS[color].mainColor) : \"#17bed0\")};\n }\n`;\n\nconst ErrorMessageWrapper = styled.div`\n position: absolute;\n height: 100%;\n width: 100%;\n left: 0px;\n background: inherit;\n z-index: 101;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n`;\n\nconst ErrorMessage = styled.div`\n display: inline-block;\n width: calc(100% - 80px);\n border: solid 1px #ff7373;\n background-color: #fff4f4;\n padding: 20px;\n /* font-family: Inter, Roboto; */\n font-size: 15px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.2;\n letter-spacing: normal;\n text-align: center;\n color: #ff2626;\n`;\n\nconst ErrorIconWrapper = styled.div`\n svg {\n path {\n fill: ${({ color }) => (color && COLORS[color] ? (COLORS[color].errorIconColor ? COLORS[color].errorIconColor : COLORS[color].mainColor) : \"#17bed0\")};\n }\n }\n`;\n","import React from \"react\";\n\nimport _move from \"../lib/move\";\nimport componentMount from \"../lib/componentMount\"\nimport PaymentPlanWrapper from \"../components/PaymentPlanBox/PaymentPlanWrapper\";\n\nconst _attachList = [\n {\n attach: self,\n list: [\n //components\n \"PaymentPlanWrapper\"\n ]\n }\n]\n\nconst prepComponents = {\n PaymentPlanWrapper: componentMount(props =>
)\n};\n\n_move(prepComponents, _attachList);","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","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]';\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n}\n\nmodule.exports = baseIsRegExp;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var toString = require('./toString');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nmodule.exports = escapeRegExp;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseIsRegExp = require('./_baseIsRegExp'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\nmodule.exports = isRegExp;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\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","module.exports=function(e){var t={};function n(s){if(t[s])return t[s].exports;var i=t[s]={i:s,l:!1,exports:{}};return e[s].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,s){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(n.r(s),Object.defineProperty(s,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)n.d(s,i,function(t){return e[t]}.bind(null,i));return s},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=3)}([function(e,t){e.exports=require(\"react\")},function(e,t,n){(function(e){e.exports=function(){\"use strict\";var t,n;function s(){return t.apply(null,arguments)}function i(e){return e instanceof Array||\"[object Array]\"===Object.prototype.toString.call(e)}function r(e){return null!=e&&\"[object Object]\"===Object.prototype.toString.call(e)}function a(e){return void 0===e}function o(e){return\"number\"==typeof e||\"[object Number]\"===Object.prototype.toString.call(e)}function u(e){return e instanceof Date||\"[object Date]\"===Object.prototype.toString.call(e)}function l(e,t){var n,s=[];for(n=0;n
>>0,s=0;s
0)for(n=0;n
=0?n?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}var L=/(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,j=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,G={},V={};function I(e,t,n,s){var i=s;\"string\"==typeof s&&(i=function(){return this[s]()}),e&&(V[e]=i),t&&(V[t[0]]=function(){return F(i.apply(this,arguments),t[1],t[2])}),n&&(V[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function A(e,t){return e.isValid()?(t=z(t,e.localeData()),G[t]=G[t]||function(e){var t,n,s,i=e.match(L);for(t=0,n=i.length;t
=0&&j.test(e);)e=e.replace(j,s),j.lastIndex=0,n-=1;return e}var Z=/\\d/,$=/\\d\\d/,q=/\\d{3}/,J=/\\d{4}/,B=/[+-]?\\d{6}/,Q=/\\d\\d?/,X=/\\d\\d\\d\\d?/,K=/\\d\\d\\d\\d\\d\\d?/,ee=/\\d{1,3}/,te=/\\d{1,4}/,ne=/[+-]?\\d{1,6}/,se=/\\d+/,ie=/[+-]?\\d+/,re=/Z|[+-]\\d\\d:?\\d\\d/gi,ae=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi,oe=/[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,ue={};function le(e,t,n){ue[e]=x(t)?t:function(e,s){return e&&n?n:t}}function de(e,t){return d(ue,e)?ue[e](t._strict,t._locale):new RegExp(he(e.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,(function(e,t,n,s,i){return t||n||s||i}))))}function he(e){return e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}var ce={};function fe(e,t){var n,s=t;for(\"string\"==typeof e&&(e=[e]),o(t)&&(s=function(e,n){n[t]=M(e)}),n=0;n
68?1900:2e3)};var ge,ve=we(\"FullYear\",!0);function we(e,t){return function(n){return null!=n?(Me(this,e,n),s.updateOffset(this,t),this):Se(this,e)}}function Se(e,t){return e.isValid()?e._d[\"get\"+(e._isUTC?\"UTC\":\"\")+t]():NaN}function Me(e,t,n){e.isValid()&&!isNaN(n)&&(\"FullYear\"===t&&pe(e.year())&&1===e.month()&&29===e.date()?e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+t](n,e.month(),ke(n,e.month())):e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+t](n))}function ke(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,s=(t%(n=12)+n)%n;return e+=(t-s)/12,1===s?pe(e)?29:28:31-s%7%2}ge=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t
=0?(o=new Date(e+400,t,n,s,i,r,a),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,s,i,r,a),o}function He(e){var t;if(e<100&&e>=0){var n=Array.prototype.slice.call(arguments);n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function Ne(e,t,n){var s=7+t-n;return-(7+He(e,0,s).getUTCDay()-t)%7+s-1}function Re(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+Ne(e,s,i);return o<=0?a=ye(r=e-1)+o:o>ye(e)?(r=e+1,a=o-ye(e)):(r=e,a=o),{year:r,dayOfYear:a}}function Ue(e,t,n){var s,i,r=Ne(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+Fe(i=e.year()-1,t,n):a>Fe(e.year(),t,n)?(s=a-Fe(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function Fe(e,t,n){var s=Ne(e,t,n),i=Ne(e+1,t,n);return(ye(e)-s+i)/7}function Le(e,t){return e.slice(t,7).concat(e.slice(0,t))}I(\"w\",[\"ww\",2],\"wo\",\"week\"),I(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),E(\"week\",\"w\"),E(\"isoWeek\",\"W\"),U(\"week\",5),U(\"isoWeek\",5),le(\"w\",Q),le(\"ww\",Q,$),le(\"W\",Q),le(\"WW\",Q,$),me([\"w\",\"ww\",\"W\",\"WW\"],(function(e,t,n,s){t[s.substr(0,1)]=M(e)})),I(\"d\",0,\"do\",\"day\"),I(\"dd\",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),I(\"ddd\",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),I(\"dddd\",0,0,(function(e){return this.localeData().weekdays(this,e)})),I(\"e\",0,0,\"weekday\"),I(\"E\",0,0,\"isoWeekday\"),E(\"day\",\"d\"),E(\"weekday\",\"e\"),E(\"isoWeekday\",\"E\"),U(\"day\",11),U(\"weekday\",11),U(\"isoWeekday\",11),le(\"d\",Q),le(\"e\",Q),le(\"E\",Q),le(\"dd\",(function(e,t){return t.weekdaysMinRegex(e)})),le(\"ddd\",(function(e,t){return t.weekdaysShortRegex(e)})),le(\"dddd\",(function(e,t){return t.weekdaysRegex(e)})),me([\"dd\",\"ddd\",\"dddd\"],(function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:f(n).invalidWeekday=e})),me([\"d\",\"e\",\"E\"],(function(e,t,n,s){t[s]=M(e)}));var je=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),Ge=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),Ve=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\");function Ie(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=c([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,\"\").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,\"\").toLocaleLowerCase();return n?\"dddd\"===t?-1!==(i=ge.call(this._weekdaysParse,a))?i:null:\"ddd\"===t?-1!==(i=ge.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=ge.call(this._minWeekdaysParse,a))?i:null:\"dddd\"===t?-1!==(i=ge.call(this._weekdaysParse,a))||-1!==(i=ge.call(this._shortWeekdaysParse,a))||-1!==(i=ge.call(this._minWeekdaysParse,a))?i:null:\"ddd\"===t?-1!==(i=ge.call(this._shortWeekdaysParse,a))||-1!==(i=ge.call(this._weekdaysParse,a))||-1!==(i=ge.call(this._minWeekdaysParse,a))?i:null:-1!==(i=ge.call(this._minWeekdaysParse,a))||-1!==(i=ge.call(this._weekdaysParse,a))||-1!==(i=ge.call(this._shortWeekdaysParse,a))?i:null}var Ae=oe,ze=oe,Ze=oe;function $e(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],l=[];for(t=0;t<7;t++)n=c([2e3,1]).day(t),s=this.weekdaysMin(n,\"\"),i=this.weekdaysShort(n,\"\"),r=this.weekdays(n,\"\"),a.push(s),o.push(i),u.push(r),l.push(s),l.push(i),l.push(r);for(a.sort(e),o.sort(e),u.sort(e),l.sort(e),t=0;t<7;t++)o[t]=he(o[t]),u[t]=he(u[t]),l[t]=he(l[t]);this._weekdaysRegex=new RegExp(\"^(\"+l.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+u.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+o.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+a.join(\"|\")+\")\",\"i\")}function qe(){return this.hours()%12||12}function Je(e,t){I(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function Be(e,t){return t._meridiemParse}I(\"H\",[\"HH\",2],0,\"hour\"),I(\"h\",[\"hh\",2],0,qe),I(\"k\",[\"kk\",2],0,(function(){return this.hours()||24})),I(\"hmm\",0,0,(function(){return\"\"+qe.apply(this)+F(this.minutes(),2)})),I(\"hmmss\",0,0,(function(){return\"\"+qe.apply(this)+F(this.minutes(),2)+F(this.seconds(),2)})),I(\"Hmm\",0,0,(function(){return\"\"+this.hours()+F(this.minutes(),2)})),I(\"Hmmss\",0,0,(function(){return\"\"+this.hours()+F(this.minutes(),2)+F(this.seconds(),2)})),Je(\"a\",!0),Je(\"A\",!1),E(\"hour\",\"h\"),U(\"hour\",13),le(\"a\",Be),le(\"A\",Be),le(\"H\",Q),le(\"h\",Q),le(\"k\",Q),le(\"HH\",Q,$),le(\"hh\",Q,$),le(\"kk\",Q,$),le(\"hmm\",X),le(\"hmmss\",K),le(\"Hmm\",X),le(\"Hmmss\",K),fe([\"H\",\"HH\"],3),fe([\"k\",\"kk\"],(function(e,t,n){var s=M(e);t[3]=24===s?0:s})),fe([\"a\",\"A\"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),fe([\"h\",\"hh\"],(function(e,t,n){t[3]=M(e),f(n).bigHour=!0})),fe(\"hmm\",(function(e,t,n){var s=e.length-2;t[3]=M(e.substr(0,s)),t[4]=M(e.substr(s)),f(n).bigHour=!0})),fe(\"hmmss\",(function(e,t,n){var s=e.length-4,i=e.length-2;t[3]=M(e.substr(0,s)),t[4]=M(e.substr(s,2)),t[5]=M(e.substr(i)),f(n).bigHour=!0})),fe(\"Hmm\",(function(e,t,n){var s=e.length-2;t[3]=M(e.substr(0,s)),t[4]=M(e.substr(s))})),fe(\"Hmmss\",(function(e,t,n){var s=e.length-4,i=e.length-2;t[3]=M(e.substr(0,s)),t[4]=M(e.substr(s,2)),t[5]=M(e.substr(i))}));var Qe,Xe=we(\"Hours\",!0),Ke={calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},longDateFormat:{LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},invalidDate:\"Invalid date\",ordinal:\"%d\",dayOfMonthOrdinalParse:/\\d{1,2}/,relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},months:De,monthsShort:Oe,week:{dow:0,doy:6},weekdays:je,weekdaysMin:Ve,weekdaysShort:Ge,meridiemParse:/[ap]\\.?m?\\.?/i},et={},tt={};function nt(e){return e?e.toLowerCase().replace(\"_\",\"-\"):e}function st(t){var n=null;if(!et[t]&&void 0!==e&&e&&e.exports)try{n=Qe._abbr,!function(){var e=new Error(\"Cannot find module 'undefined'\");throw e.code=\"MODULE_NOT_FOUND\",e}(),it(n)}catch(e){}return et[t]}function it(e,t){var n;return e&&((n=a(t)?at(e):rt(e,t))?Qe=n:\"undefined\"!=typeof console&&console.warn&&console.warn(\"Locale \"+e+\" not found. Did you forget to load it?\")),Qe._abbr}function rt(e,t){if(null!==t){var n,s=Ke;if(t.abbr=e,null!=et[e])T(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\"),s=et[e]._config;else if(null!=t.parentLocale)if(null!=et[t.parentLocale])s=et[t.parentLocale]._config;else{if(null==(n=st(t.parentLocale)))return tt[t.parentLocale]||(tt[t.parentLocale]=[]),tt[t.parentLocale].push({name:e,config:t}),null;s=n._config}return et[e]=new W(P(s,t)),tt[e]&&tt[e].forEach((function(e){rt(e.name,e.config)})),it(e),et[e]}return delete et[e],null}function at(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Qe;if(!i(e)){if(t=st(e))return t;e=[e]}return function(e){for(var t,n,s,i,r=0;r
0;){if(s=st(i.slice(0,t).join(\"-\")))return s;if(n&&n.length>=t&&k(i,n,!0)>=t-1)break;t--}r++}return Qe}(e)}function ot(e){var t,n=e._a;return n&&-2===f(e).overflow&&(t=n[1]<0||n[1]>11?1:n[2]<1||n[2]>ke(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,f(e)._overflowDayOfYear&&(t<0||t>2)&&(t=2),f(e)._overflowWeeks&&-1===t&&(t=7),f(e)._overflowWeekday&&-1===t&&(t=8),f(e).overflow=t),e}function ut(e,t,n){return null!=e?e:null!=t?t:n}function lt(e){var t,n,i,r,a,o=[];if(!e._d){for(i=function(e){var t=new Date(s.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}(e),e._w&&null==e._a[2]&&null==e._a[1]&&function(e){var t,n,s,i,r,a,o,u;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)r=1,a=4,n=ut(t.GG,e._a[0],Ue(Yt(),1,4).year),s=ut(t.W,1),((i=ut(t.E,1))<1||i>7)&&(u=!0);else{r=e._locale._week.dow,a=e._locale._week.doy;var l=Ue(Yt(),r,a);n=ut(t.gg,e._a[0],l.year),s=ut(t.w,l.week),null!=t.d?((i=t.d)<0||i>6)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||t.e>6)&&(u=!0)):i=r}s<1||s>Fe(n,r,a)?f(e)._overflowWeeks=!0:null!=u?f(e)._overflowWeekday=!0:(o=Re(n,s,i,r,a),e._a[0]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(a=ut(e._a[0],i[0]),(e._dayOfYear>ye(a)||0===e._dayOfYear)&&(f(e)._overflowDayOfYear=!0),n=He(a,0,e._dayOfYear),e._a[1]=n.getUTCMonth(),e._a[2]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=i[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?He:Ee).apply(null,o),r=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&void 0!==e._w.d&&e._w.d!==r&&(f(e).weekdayMismatch=!0)}}var dt=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,ht=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,ct=/Z|[+-]\\d\\d(?::?\\d\\d)?/,ft=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/]],mt=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],_t=/^\\/?Date\\((\\-?\\d+)/i;function yt(e){var t,n,s,i,r,a,o=e._i,u=dt.exec(o)||ht.exec(o);if(u){for(f(e).iso=!0,t=0,n=ft.length;t
0&&f(e).unusedInput.push(a),o=o.slice(o.indexOf(n)+n.length),l+=n.length),V[r]?(n?f(e).empty=!1:f(e).unusedTokens.push(r),_e(r,n,e)):e._strict&&!n&&f(e).unusedTokens.push(r);f(e).charsLeftOver=u-l,o.length>0&&f(e).unusedInput.push(o),e._a[3]<=12&&!0===f(e).bigHour&&e._a[3]>0&&(f(e).bigHour=void 0),f(e).parsedDateParts=e._a.slice(0),f(e).meridiem=e._meridiem,e._a[3]=function(e,t,n){var s;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0),t):t}(e._locale,e._a[3],e._meridiem),lt(e),ot(e)}else wt(e);else yt(e)}function Mt(e){var t=e._i,n=e._f;return e._locale=e._locale||at(e._l),null===t||void 0===n&&\"\"===t?_({nullInput:!0}):(\"string\"==typeof t&&(e._i=t=e._locale.preparse(t)),w(t)?new v(ot(t)):(u(t)?e._d=t:i(n)?function(e){var t,n,s,i,r;if(0===e._f.length)return f(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;i
this?this:e:_()}));function bt(e,t){var n,s;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return Yt();for(n=t[0],s=1;s
=0?new Date(e+400,t,n)-126227808e5:new Date(e,t,n).valueOf()}function Kt(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-126227808e5:Date.UTC(e,t,n)}function en(e,t){I(0,[e,e.length],0,t)}function tn(e,t,n,s,i){var r;return null==e?Ue(this,s,i).year:(t>(r=Fe(e,s,i))&&(t=r),nn.call(this,e,t,n,s,i))}function nn(e,t,n,s,i){var r=Re(e,t,n,s,i),a=He(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}I(0,[\"gg\",2],0,(function(){return this.weekYear()%100})),I(0,[\"GG\",2],0,(function(){return this.isoWeekYear()%100})),en(\"gggg\",\"weekYear\"),en(\"ggggg\",\"weekYear\"),en(\"GGGG\",\"isoWeekYear\"),en(\"GGGGG\",\"isoWeekYear\"),E(\"weekYear\",\"gg\"),E(\"isoWeekYear\",\"GG\"),U(\"weekYear\",1),U(\"isoWeekYear\",1),le(\"G\",ie),le(\"g\",ie),le(\"GG\",Q,$),le(\"gg\",Q,$),le(\"GGGG\",te,J),le(\"gggg\",te,J),le(\"GGGGG\",ne,B),le(\"ggggg\",ne,B),me([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],(function(e,t,n,s){t[s.substr(0,2)]=M(e)})),me([\"gg\",\"GG\"],(function(e,t,n,i){t[i]=s.parseTwoDigitYear(e)})),I(\"Q\",0,\"Qo\",\"quarter\"),E(\"quarter\",\"Q\"),U(\"quarter\",7),le(\"Q\",Z),fe(\"Q\",(function(e,t){t[1]=3*(M(e)-1)})),I(\"D\",[\"DD\",2],\"Do\",\"date\"),E(\"date\",\"D\"),U(\"date\",9),le(\"D\",Q),le(\"DD\",Q,$),le(\"Do\",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),fe([\"D\",\"DD\"],2),fe(\"Do\",(function(e,t){t[2]=M(e.match(Q)[0])}));var sn=we(\"Date\",!0);I(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),E(\"dayOfYear\",\"DDD\"),U(\"dayOfYear\",4),le(\"DDD\",ee),le(\"DDDD\",q),fe([\"DDD\",\"DDDD\"],(function(e,t,n){n._dayOfYear=M(e)})),I(\"m\",[\"mm\",2],0,\"minute\"),E(\"minute\",\"m\"),U(\"minute\",14),le(\"m\",Q),le(\"mm\",Q,$),fe([\"m\",\"mm\"],4);var rn=we(\"Minutes\",!1);I(\"s\",[\"ss\",2],0,\"second\"),E(\"second\",\"s\"),U(\"second\",15),le(\"s\",Q),le(\"ss\",Q,$),fe([\"s\",\"ss\"],5);var an,on=we(\"Seconds\",!1);for(I(\"S\",0,0,(function(){return~~(this.millisecond()/100)})),I(0,[\"SS\",2],0,(function(){return~~(this.millisecond()/10)})),I(0,[\"SSS\",3],0,\"millisecond\"),I(0,[\"SSSS\",4],0,(function(){return 10*this.millisecond()})),I(0,[\"SSSSS\",5],0,(function(){return 100*this.millisecond()})),I(0,[\"SSSSSS\",6],0,(function(){return 1e3*this.millisecond()})),I(0,[\"SSSSSSS\",7],0,(function(){return 1e4*this.millisecond()})),I(0,[\"SSSSSSSS\",8],0,(function(){return 1e5*this.millisecond()})),I(0,[\"SSSSSSSSS\",9],0,(function(){return 1e6*this.millisecond()})),E(\"millisecond\",\"ms\"),U(\"millisecond\",16),le(\"S\",ee,Z),le(\"SS\",ee,$),le(\"SSS\",ee,q),an=\"SSSS\";an.length<=9;an+=\"S\")le(an,se);function un(e,t){t[6]=M(1e3*(\"0.\"+e))}for(an=\"S\";an.length<=9;an+=\"S\")fe(an,un);var ln=we(\"Milliseconds\",!1);I(\"z\",0,0,\"zoneAbbr\"),I(\"zz\",0,0,\"zoneName\");var dn=v.prototype;function hn(e){return e}dn.add=zt,dn.calendar=function(e,t){var n=e||Yt(),i=Nt(n,this).startOf(\"day\"),r=s.calendarFormat(this,i)||\"sameElse\",a=t&&(x(t[r])?t[r].call(this,n):t[r]);return this.format(a||this.localeData().calendar(r,this,Yt(n)))},dn.clone=function(){return new v(this)},dn.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Nt(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=H(t)){case\"year\":r=$t(this,s)/12;break;case\"month\":r=$t(this,s);break;case\"quarter\":r=$t(this,s)/3;break;case\"second\":r=(this-s)/1e3;break;case\"minute\":r=(this-s)/6e4;break;case\"hour\":r=(this-s)/36e5;break;case\"day\":r=(this-s-i)/864e5;break;case\"week\":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:S(r)},dn.endOf=function(e){var t;if(void 0===(e=H(e))||\"millisecond\"===e||!this.isValid())return this;var n=this._isUTC?Kt:Xt;switch(e){case\"year\":t=n(this.year()+1,0,1)-1;break;case\"quarter\":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case\"month\":t=n(this.year(),this.month()+1,1)-1;break;case\"week\":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case\"isoWeek\":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case\"day\":case\"date\":t=n(this.year(),this.month(),this.date()+1)-1;break;case\"hour\":t=this._d.valueOf(),t+=36e5-Qt(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case\"minute\":t=this._d.valueOf(),t+=6e4-Qt(t,6e4)-1;break;case\"second\":t=this._d.valueOf(),t+=1e3-Qt(t,1e3)-1}return this._d.setTime(t),s.updateOffset(this,!0),this},dn.format=function(e){e||(e=this.isUtc()?s.defaultFormatUtc:s.defaultFormat);var t=A(this,e);return this.localeData().postformat(t)},dn.from=function(e,t){return this.isValid()&&(w(e)&&e.isValid()||Yt(e).isValid())?jt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},dn.fromNow=function(e){return this.from(Yt(),e)},dn.to=function(e,t){return this.isValid()&&(w(e)&&e.isValid()||Yt(e).isValid())?jt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},dn.toNow=function(e){return this.to(Yt(),e)},dn.get=function(e){return x(this[e=H(e)])?this[e]():this},dn.invalidAt=function(){return f(this).overflow},dn.isAfter=function(e,t){var n=w(e)?e:Yt(e);return!(!this.isValid()||!n.isValid())&&(\"millisecond\"===(t=H(t)||\"millisecond\")?this.valueOf()>n.valueOf():n.valueOf()
9999?A(n,t?\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\":\"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ\"):x(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace(\"Z\",A(n,\"Z\")):A(n,t?\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\":\"YYYY-MM-DD[T]HH:mm:ss.SSSZ\")},dn.inspect=function(){if(!this.isValid())return\"moment.invalid(/* \"+this._i+\" */)\";var e=\"moment\",t=\"\";this.isLocal()||(e=0===this.utcOffset()?\"moment.utc\":\"moment.parseZone\",t=\"Z\");var n=\"[\"+e+'(\"]',s=0<=this.year()&&this.year()<=9999?\"YYYY\":\"YYYYYY\",i=t+'[\")]';return this.format(n+s+\"-MM-DD[T]HH:mm:ss.SSS\"+i)},dn.toJSON=function(){return this.isValid()?this.toISOString():null},dn.toString=function(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")},dn.unix=function(){return Math.floor(this.valueOf()/1e3)},dn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},dn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},dn.year=ve,dn.isLeapYear=function(){return pe(this.year())},dn.weekYear=function(e){return tn.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},dn.isoWeekYear=function(e){return tn.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},dn.quarter=dn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},dn.month=xe,dn.daysInMonth=function(){return ke(this.year(),this.month())},dn.week=dn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),\"d\")},dn.isoWeek=dn.isoWeeks=function(e){var t=Ue(this,1,4).week;return null==e?t:this.add(7*(e-t),\"d\")},dn.weeksInYear=function(){var e=this.localeData()._week;return Fe(this.year(),e.dow,e.doy)},dn.isoWeeksInYear=function(){return Fe(this.year(),1,4)},dn.date=sn,dn.day=dn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return\"string\"!=typeof e?e:isNaN(e)?\"number\"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,\"d\")):t},dn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,\"d\")},dn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return\"string\"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},dn.dayOfYear=function(e){var t=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return null==e?t:this.add(e-t,\"d\")},dn.hour=dn.hours=Xe,dn.minute=dn.minutes=rn,dn.second=dn.seconds=on,dn.millisecond=dn.milliseconds=ln,dn.utcOffset=function(e,t,n){var i,r=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if(\"string\"==typeof e){if(null===(e=Ht(ae,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(i=Rt(this)),this._offset=e,this._isUTC=!0,null!=i&&this.add(i,\"m\"),r!==e&&(!t||this._changeInProgress?At(this,jt(e-r,\"m\"),1,!1):this._changeInProgress||(this._changeInProgress=!0,s.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?r:Rt(this)},dn.utc=function(e){return this.utcOffset(0,e)},dn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Rt(this),\"m\")),this},dn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if(\"string\"==typeof this._i){var e=Ht(re,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},dn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Yt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},dn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},dn.isLocal=function(){return!!this.isValid()&&!this._isUTC},dn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},dn.isUtc=Ut,dn.isUTC=Ut,dn.zoneAbbr=function(){return this._isUTC?\"UTC\":\"\"},dn.zoneName=function(){return this._isUTC?\"Coordinated Universal Time\":\"\"},dn.dates=D(\"dates accessor is deprecated. Use date instead.\",sn),dn.months=D(\"months accessor is deprecated. Use month instead\",xe),dn.years=D(\"years accessor is deprecated. Use year instead\",ve),dn.zone=D(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",(function(e,t){return null!=e?(\"string\"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),dn.isDSTShifted=D(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",(function(){if(!a(this._isDSTShifted))return this._isDSTShifted;var e={};if(p(e,this),(e=Mt(e))._a){var t=e._isUTC?c(e._a):Yt(e._a);this._isDSTShifted=this.isValid()&&k(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var cn=W.prototype;function fn(e,t,n,s){var i=at(),r=c().set(s,t);return i[n](r,e)}function mn(e,t,n){if(o(e)&&(t=e,e=void 0),e=e||\"\",null!=t)return fn(e,t,n,\"month\");var s,i=[];for(s=0;s<12;s++)i[s]=fn(e,s,n,\"month\");return i}function _n(e,t,n,s){\"boolean\"==typeof e?(o(t)&&(n=t,t=void 0),t=t||\"\"):(n=t=e,e=!1,o(t)&&(n=t,t=void 0),t=t||\"\");var i,r=at(),a=e?r._week.dow:0;if(null!=n)return fn(t,(n+a)%7,s,\"day\");var u=[];for(i=0;i<7;i++)u[i]=fn(t,(i+a)%7,s,\"day\");return u}cn.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return x(s)?s.call(t,n):s},cn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,(function(e){return e.slice(1)})),this._longDateFormat[e])},cn.invalidDate=function(){return this._invalidDate},cn.ordinal=function(e){return this._ordinal.replace(\"%d\",e)},cn.preparse=hn,cn.postformat=hn,cn.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return x(i)?i(e,t,n,s):i.replace(/%d/i,e)},cn.pastFuture=function(e,t){var n=this._relativeTime[e>0?\"future\":\"past\"];return x(n)?n(t):n.replace(/%s/i,t)},cn.set=function(e){var t,n;for(n in e)x(t=e[n])?this[n]=t:this[\"_\"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+\"|\"+/\\d{1,2}/.source)},cn.months=function(e,t){return e?i(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Ye).test(t)?\"format\":\"standalone\"][e.month()]:i(this._months)?this._months:this._months.standalone},cn.monthsShort=function(e,t){return e?i(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Ye.test(t)?\"format\":\"standalone\"][e.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},cn.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return be.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=c([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp(\"^\"+this.months(i,\"\").replace(\".\",\"\")+\"$\",\"i\"),this._shortMonthsParse[s]=new RegExp(\"^\"+this.monthsShort(i,\"\").replace(\".\",\"\")+\"$\",\"i\")),n||this._monthsParse[s]||(r=\"^\"+this.months(i,\"\")+\"|^\"+this.monthsShort(i,\"\"),this._monthsParse[s]=new RegExp(r.replace(\".\",\"\"),\"i\")),n&&\"MMMM\"===t&&this._longMonthsParse[s].test(e))return s;if(n&&\"MMM\"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},cn.monthsRegex=function(e){return this._monthsParseExact?(d(this,\"_monthsRegex\")||Ce.call(this),e?this._monthsStrictRegex:this._monthsRegex):(d(this,\"_monthsRegex\")||(this._monthsRegex=We),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},cn.monthsShortRegex=function(e){return this._monthsParseExact?(d(this,\"_monthsRegex\")||Ce.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(d(this,\"_monthsShortRegex\")||(this._monthsShortRegex=Pe),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},cn.week=function(e){return Ue(e,this._week.dow,this._week.doy).week},cn.firstDayOfYear=function(){return this._week.doy},cn.firstDayOfWeek=function(){return this._week.dow},cn.weekdays=function(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?\"format\":\"standalone\"];return!0===e?Le(n,this._week.dow):e?n[e.day()]:n},cn.weekdaysMin=function(e){return!0===e?Le(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},cn.weekdaysShort=function(e){return!0===e?Le(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},cn.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return Ie.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=c([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp(\"^\"+this.weekdays(i,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\"),this._shortWeekdaysParse[s]=new RegExp(\"^\"+this.weekdaysShort(i,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\"),this._minWeekdaysParse[s]=new RegExp(\"^\"+this.weekdaysMin(i,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\")),this._weekdaysParse[s]||(r=\"^\"+this.weekdays(i,\"\")+\"|^\"+this.weekdaysShort(i,\"\")+\"|^\"+this.weekdaysMin(i,\"\"),this._weekdaysParse[s]=new RegExp(r.replace(\".\",\"\"),\"i\")),n&&\"dddd\"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&\"ddd\"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&\"dd\"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},cn.weekdaysRegex=function(e){return this._weekdaysParseExact?(d(this,\"_weekdaysRegex\")||$e.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,\"_weekdaysRegex\")||(this._weekdaysRegex=Ae),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},cn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(d(this,\"_weekdaysRegex\")||$e.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,\"_weekdaysShortRegex\")||(this._weekdaysShortRegex=ze),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},cn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(d(this,\"_weekdaysRegex\")||$e.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,\"_weekdaysMinRegex\")||(this._weekdaysMinRegex=Ze),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},cn.isPM=function(e){return\"p\"===(e+\"\").toLowerCase().charAt(0)},cn.meridiem=function(e,t,n){return e>11?n?\"pm\":\"PM\":n?\"am\":\"AM\"},it(\"en\",{dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===M(e%100/10)?\"th\":1===t?\"st\":2===t?\"nd\":3===t?\"rd\":\"th\")}}),s.lang=D(\"moment.lang is deprecated. Use moment.locale instead.\",it),s.langData=D(\"moment.langData is deprecated. Use moment.localeData instead.\",at);var yn=Math.abs;function pn(e,t,n,s){var i=jt(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function gn(e){return e<0?Math.floor(e):Math.ceil(e)}function vn(e){return 4800*e/146097}function wn(e){return 146097*e/4800}function Sn(e){return function(){return this.as(e)}}var Mn=Sn(\"ms\"),kn=Sn(\"s\"),Yn=Sn(\"m\"),Dn=Sn(\"h\"),On=Sn(\"d\"),bn=Sn(\"w\"),Tn=Sn(\"M\"),xn=Sn(\"Q\"),Pn=Sn(\"y\");function Wn(e){return function(){return this.isValid()?this._data[e]:NaN}}var Cn=Wn(\"milliseconds\"),En=Wn(\"seconds\"),Hn=Wn(\"minutes\"),Nn=Wn(\"hours\"),Rn=Wn(\"days\"),Un=Wn(\"months\"),Fn=Wn(\"years\"),Ln=Math.round,jn={ss:44,s:45,m:45,h:22,d:26,M:11};function Gn(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}var Vn=Math.abs;function In(e){return(e>0)-(e<0)||+e}function An(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Vn(this._milliseconds)/1e3,s=Vn(this._days),i=Vn(this._months);e=S(n/60),t=S(e/60),n%=60,e%=60;var r=S(i/12),a=i%=12,o=s,u=t,l=e,d=n?n.toFixed(3).replace(/\\.?0+$/,\"\"):\"\",h=this.asSeconds();if(!h)return\"P0D\";var c=h<0?\"-\":\"\",f=In(this._months)!==In(h)?\"-\":\"\",m=In(this._days)!==In(h)?\"-\":\"\",_=In(this._milliseconds)!==In(h)?\"-\":\"\";return c+\"P\"+(r?f+r+\"Y\":\"\")+(a?f+a+\"M\":\"\")+(o?m+o+\"D\":\"\")+(u||l||d?\"T\":\"\")+(u?_+u+\"H\":\"\")+(l?_+l+\"M\":\"\")+(d?_+d+\"S\":\"\")}var zn=xt.prototype;return zn.isValid=function(){return this._isValid},zn.abs=function(){var e=this._data;return this._milliseconds=yn(this._milliseconds),this._days=yn(this._days),this._months=yn(this._months),e.milliseconds=yn(e.milliseconds),e.seconds=yn(e.seconds),e.minutes=yn(e.minutes),e.hours=yn(e.hours),e.months=yn(e.months),e.years=yn(e.years),this},zn.add=function(e,t){return pn(this,e,t,1)},zn.subtract=function(e,t){return pn(this,e,t,-1)},zn.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if(\"month\"===(e=H(e))||\"quarter\"===e||\"year\"===e)switch(t=this._days+s/864e5,n=this._months+vn(t),e){case\"month\":return n;case\"quarter\":return n/3;case\"year\":return n/12}else switch(t=this._days+Math.round(wn(this._months)),e){case\"week\":return t/7+s/6048e5;case\"day\":return t+s/864e5;case\"hour\":return 24*t+s/36e5;case\"minute\":return 1440*t+s/6e4;case\"second\":return 86400*t+s/1e3;case\"millisecond\":return Math.floor(864e5*t)+s;default:throw new Error(\"Unknown unit \"+e)}},zn.asMilliseconds=Mn,zn.asSeconds=kn,zn.asMinutes=Yn,zn.asHours=Dn,zn.asDays=On,zn.asWeeks=bn,zn.asMonths=Tn,zn.asQuarters=xn,zn.asYears=Pn,zn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*M(this._months/12):NaN},zn._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return r>=0&&a>=0&&o>=0||r<=0&&a<=0&&o<=0||(r+=864e5*gn(wn(o)+a),a=0,o=0),u.milliseconds=r%1e3,e=S(r/1e3),u.seconds=e%60,t=S(e/60),u.minutes=t%60,n=S(t/60),u.hours=n%24,a+=S(n/24),i=S(vn(a)),o+=i,a-=gn(wn(i)),s=S(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},zn.clone=function(){return jt(this)},zn.get=function(e){return e=H(e),this.isValid()?this[e+\"s\"]():NaN},zn.milliseconds=Cn,zn.seconds=En,zn.minutes=Hn,zn.hours=Nn,zn.days=Rn,zn.weeks=function(){return S(this.days()/7)},zn.months=Un,zn.years=Fn,zn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=function(e,t,n){var s=jt(e).abs(),i=Ln(s.as(\"s\")),r=Ln(s.as(\"m\")),a=Ln(s.as(\"h\")),o=Ln(s.as(\"d\")),u=Ln(s.as(\"M\")),l=Ln(s.as(\"y\")),d=i<=jn.ss&&[\"s\",i]||i
0,d[4]=n,Gn.apply(null,d)}(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)},zn.toISOString=An,zn.toString=An,zn.toJSON=An,zn.locale=qt,zn.localeData=Bt,zn.toIsoString=D(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",An),zn.lang=Jt,I(\"X\",0,0,\"unix\"),I(\"x\",0,0,\"valueOf\"),le(\"x\",ie),le(\"X\",/[+-]?\\d+(\\.\\d{1,3})?/),fe(\"X\",(function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))})),fe(\"x\",(function(e,t,n){n._d=new Date(M(e))})),s.version=\"2.24.0\",t=Yt,s.fn=dn,s.min=function(){var e=[].slice.call(arguments,0);return bt(\"isBefore\",e)},s.max=function(){var e=[].slice.call(arguments,0);return bt(\"isAfter\",e)},s.now=function(){return Date.now?Date.now():+new Date},s.utc=c,s.unix=function(e){return Yt(1e3*e)},s.months=function(e,t){return mn(e,t,\"months\")},s.isDate=u,s.locale=it,s.invalid=_,s.duration=jt,s.isMoment=w,s.weekdays=function(e,t,n){return _n(e,t,n,\"weekdays\")},s.parseZone=function(){return Yt.apply(null,arguments).parseZone()},s.localeData=at,s.isDuration=Pt,s.monthsShort=function(e,t){return mn(e,t,\"monthsShort\")},s.weekdaysMin=function(e,t,n){return _n(e,t,n,\"weekdaysMin\")},s.defineLocale=rt,s.updateLocale=function(e,t){if(null!=t){var n,s,i=Ke;null!=(s=st(e))&&(i=s._config),t=P(i,t),(n=new W(t)).parentLocale=et[e],et[e]=n,it(e)}else null!=et[e]&&(null!=et[e].parentLocale?et[e]=et[e].parentLocale:null!=et[e]&&delete et[e]);return et[e]},s.locales=function(){return O(et)},s.weekdaysShort=function(e,t,n){return _n(e,t,n,\"weekdaysShort\")},s.normalizeUnits=H,s.relativeTimeRounding=function(e){return void 0===e?Ln:\"function\"==typeof e&&(Ln=e,!0)},s.relativeTimeThreshold=function(e,t){return void 0!==jn[e]&&(void 0===t?jn[e]:(jn[e]=t,\"s\"===e&&(jn.ss=t-1),!0))},s.calendarFormat=function(e,t){var n=e.diff(t,\"days\",!0);return n<-6?\"sameElse\":n<-1?\"lastWeek\":n<0?\"lastDay\":n<1?\"sameDay\":n<2?\"nextDay\":n<7?\"nextWeek\":\"sameElse\"},s.prototype=dn,s.HTML5_FMT={DATETIME_LOCAL:\"YYYY-MM-DDTHH:mm\",DATETIME_LOCAL_SECONDS:\"YYYY-MM-DDTHH:mm:ss\",DATETIME_LOCAL_MS:\"YYYY-MM-DDTHH:mm:ss.SSS\",DATE:\"YYYY-MM-DD\",TIME:\"HH:mm\",TIME_SECONDS:\"HH:mm:ss\",TIME_MS:\"HH:mm:ss.SSS\",WEEK:\"GGGG-[W]WW\",MONTH:\"YYYY-MM\"},s}()}).call(this,n(2)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,\"loaded\",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,\"id\",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){\"use strict\";n.r(t);var s=n(0),i=n(1),r=n.n(i),a=function(e){var t=e.translateY;return s.createElement(\"div\",{className:\"countdown-timer-item\"},s.createElement(\"div\",{className:\"digit-wrapper\",style:{transform:\"translateY(-\"+t+\"0%\",transitionDuration:(0===t?200:500)+\"ms\"}},s.createElement(\"span\",null,\"9\"),s.createElement(\"span\",null,\"8\"),s.createElement(\"span\",null,\"7\"),s.createElement(\"span\",null,\"6\"),s.createElement(\"span\",null,\"5\"),s.createElement(\"span\",null,\"4\"),s.createElement(\"span\",null,\"3\"),s.createElement(\"span\",null,\"2\"),s.createElement(\"span\",null,\"1\"),s.createElement(\"span\",null,\"0\")))},o=document.createElement(\"style\");o.type=\"text/css\";t.default=function(e){var t=e.dark,n=e.seconds,i=e.fontSize,u=Object(s.useMemo)((function(){return n>86400?\"days\":n>3600?\"hours\":\"seconds\"}),[n]);Object(s.useEffect)((function(){var e=document.querySelector(\"head\");return o.innerHTML=function(e){var t=e.fontSize,n=e.dark;return\"\\n .react-simple-flipclock {\\n display: flex;\\n align-items: center;\\n height: \"+(t?1.75*t:28)+'px;\\n overflow: hidden;\\n font-family: \"Arial\", sans-serif;\\n }\\n .react-simple-flipclock .countdown-separator {\\n font-size: '+(t||16)+\"px;\\n padding: \"+(t?t/16:1)+\"px;\\n box-sizing: border-box;\\n color: \"+(n?\"#fff\":\"#000\")+\";\\n }\\n .react-simple-flipclock .countdown-timer-item {\\n background: \"+(n?\"rgba(0, 0, 0, 0.7)\":\"rgba(0, 0, 0, 0.2)\")+\";\\n border-radius: 4px;\\n overflow: hidden;\\n width: \"+(t?1.25*t:18)+\"px;\\n height: 100%;\\n position: relative;\\n box-sizing: border-box;\\n margin: 0 2px;\\n color: \"+(n?\"#fff\":\"#000\")+\";\\n }\\n .react-simple-flipclock .countdown-timer-item .digit-wrapper {\\n position: absolute;\\n width: 100%;\\n transition: all 500ms cubic-bezier(0.4, 0, 0.2, 1);\\n transform: translateY(-90%);\\n will-change: transform;\\n }\\n .react-simple-flipclock .countdown-timer-item .digit-wrapper > span {\\n position: relative;\\n height: \"+(t?1.75*t:28)+\"px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n font-size: \"+(t||16)+\"px;\\n }\\n \"}({fontSize:i,dark:t}),e.append(o),function(){o.remove()}}),[]);var l=function(e){var t=e.seconds,n=e.duration,i=Object(s.useState)(t),a=i[0],o=i[1],u=Object(s.useState)(9),l=u[0],d=u[1],h=Object(s.useState)(9),c=h[0],f=h[1],m=Object(s.useState)(9),_=m[0],y=m[1],p=Object(s.useState)(9),g=p[0],v=p[1],w=Object(s.useState)(9),S=w[0],M=w[1],k=Object(s.useState)(9),Y=k[0],D=k[1],O=Object(s.useState)(9),b=O[0],T=O[1],x=Object(s.useState)(9),P=x[0],W=x[1],C=Object(s.useState)(9),E=C[0],H=C[1];return Object(s.useEffect)((function(){o(t)}),[t]),Object(s.useEffect)((function(){var e=setInterval((function(){if(a<0)clearInterval(e);else{var t=r.a.utc(1e3*a).subtract(1,\"days\").format(\"DDDD:HH:mm:ss\"),s=Number(t[0]),i=Number(t[1]),u=Number(t[2]),l=Number(t[4]),h=Number(t[5]),c=Number(t[7]),m=Number(t[8]),_=Number(t[10]),p=Number(t[11]);\"days\"===n&&(d(9-s),f(9-i),y(9-u)),\"days\"!==n&&\"hours\"!==n||(v(9-l),M(9-h)),D(9-c),T(9-m),W(9-_),H(9-p),o(a-1)}}),1e3);return function(){clearInterval(e)}}),[a,n]),{day1TranslateY:l,day2TranslateY:c,day3TranslateY:_,hour1TranslateY:g,hour2TranslateY:S,minute1TranslateY:Y,minute2TranslateY:b,second1TranslateY:P,second2TranslateY:E}}({seconds:n,duration:u}),d=l.day1TranslateY,h=l.day2TranslateY,c=l.day3TranslateY,f=l.hour1TranslateY,m=l.hour2TranslateY,_=l.minute1TranslateY,y=l.minute2TranslateY,p=l.second1TranslateY,g=l.second2TranslateY;return s.createElement(\"div\",{className:\"react-simple-flipclock\"},\"days\"===u&&s.createElement(s.Fragment,null,s.createElement(a,{translateY:d}),s.createElement(a,{translateY:h}),s.createElement(a,{translateY:c}),s.createElement(\"span\",{className:\"countdown-separator\"},\":\")),(\"days\"===u||\"hours\"===u)&&s.createElement(s.Fragment,null,s.createElement(a,{translateY:f}),s.createElement(a,{translateY:m}),s.createElement(\"span\",{className:\"countdown-separator\"},\":\")),s.createElement(a,{translateY:_}),s.createElement(a,{translateY:y}),s.createElement(\"span\",{className:\"countdown-separator\"},\":\"),s.createElement(a,{translateY:p}),s.createElement(a,{translateY:g}))}}]);","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/from\");","module.exports = require(\"core-js/library/fn/array/is-array\");","module.exports = require(\"core-js/library/fn/date/now\");","module.exports = require(\"core-js/library/fn/json/stringify\");","module.exports = require(\"core-js/library/fn/object/assign\");","module.exports = require(\"core-js/library/fn/object/create\");","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/get-prototype-of\");","module.exports = require(\"core-js/library/fn/object/keys\");","module.exports = require(\"core-js/library/fn/object/set-prototype-of\");","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/promise\");","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\");","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n // If the scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the element as the offsetParent if it's non-static,\n // while Chrome and Safari return the element. The element must\n // be used to perform the correct calculations even if the element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle
s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e
3?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;e
1&&(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;e
1?t-1:0),o=1;o
1?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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\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\t58: 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__(42750)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","obj","_attachList","n","hasOwnProperty","k","length","list","indexOf","attach","usedReactRoots","getExistingOrNewRoot","element","reactRootId","dataset","Math","random","toString","slice","root","createRoot","render","props","_getExistingOrNewRoot","unmount","signToCurrency","currencyMap","findCardType","cardNumber","name","range","valid_length","find","cardTemplate","split","some","rangeLength","calculateDiscountPercent","_defineProperty","_countriesInEuropeLis","price","oldPrice","floor","onSentSubscribeRequestResolve","onSentSubscribeRequest","_Promise","resolve","reject","subscriptions","xhr","chkint","resetTo","resetTimeoutMilisec","subscribers","add","subscriber","instance","console","log","this","remove","checkInstanceInterface","subs","state","push","forEach","method","Error","filter","sub","abort","setState","_getSubscriber","undefined","listen","_getReady","reset","stop","resume","func","_this","self","params","subscribefor","subsrdy","isRunning","$","extend","getParams","join","_t","now","pCloudGlobals","apiMethod","ret","clearInterval","from","handleEvents","restartTo","clearTimeout","setTimeout","bind","timeout","errorCallback","onXhrError","status","error","arguments","round","setCheck","document","readyState","window","on","setInterval","e","authToken","listeners","lastDiffId","diffIsReadyResolve","diffIsReadyReject","setDiffIsReady","diffIsReady","promise","diffInstance","diffid","iconformat","difflimit","auth","entries","listener","token","callback","onErrorDiffRequest","last","then","start","skipStop","splice","concat","onDiffIsReady","_regeneratorRuntime","t","r","Object","prototype","o","_Object$defineProperty","value","i","_Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","_Object$create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","_Object$getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","_typeof","__await","callInvokeWithMethodAndArg","done","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isNaN","displayName","isGeneratorFunction","constructor","mark","_Object$setPrototypeOf","__proto__","awrap","async","keys","reverse","pop","prev","charAt","rval","handle","complete","finish","delegateYield","asyncGeneratorStep","gen","_next","_throw","key","info","_asyncToGenerator","fn","args","apply","err","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","_Object$getOwnPropertyDescriptor","_objectSpread","_Object$getOwnPropertyDescriptors","_Object$defineProperties","input","hint","prim","_Symbol$toPrimitive","res","String","Number","_toPrimitive","_toPropertyKey","paymentApiUrls","EU_LOCATIONID","US_LOCATIONID","passedOpts","getPaymentsApiUrl","apiConfig","locationid","SubscriptionUpdate","_ref","provider","period","discountcode","billingAddress","userAuth","_ref$products","products","traffic","storage","toggleLoader","showPaymentError","providerSourceId","newCC","authorizeCard","_ref$isBusinessTrial","isBusinessTrial","_ref$downgrade","downgrade","_ref$onBraintreeCreat","onBraintreeCreatePayment","apiMethods","stripe","safecharge","paypal","adyen","checkout","safeChargeCCToken","amountToPay","userTokenId","orderid","metapixeleventid","paymentInfo","isdowngrade","rcookie","fbp","fbc","errors","__","api_connection_error","api_error","authentication_error","invalid_request_error","rate_limit_error","invalid_number","invalid_expiry_month","invalid_expiry_year","invalid_cvc","incorrect_number","expired_card","incorrect_cvc","incorrect_zip","card_declined","processing_error","missing","incorrect_card_number","xhr_error","handlePaymenterror","data","message","translated","reasoncode","reason","result","code","errorDescription","onPaymentSuccess","opt","createCardData","numberProp","expMonthProp","expYearProp","nameProp","cvcProp","forCardData","expirationMonth","expirationYear","cardHolderName","CVV","paymentApiCall","apiCall","eventid","redirecturl","action","showSafeChargeError","onPaymentError","xhrError","createStripePayment","_ref2","newpaymentmethod","paymentmethodid","paymentintentsecret","Stripe","payment_method","setup_future_usage","card","confirmCardPayment","_result$paymentIntent","paymentIntent","id","sha256","confirmStripeCard","_ref3","clientsecret","confirmCardSetup","_result$setupIntent","setupIntent","shoudUpdateDefaultSource","updateStripeDefaultSource","refresh","paymentCallback","updateStripeSubscription","_ref4","_callee","skipModal","_context","diffs","changeCard","changecard","showPaymentConfirmationModal","modalManager","open","handleButtonClick","handleModalClose","setStripePaymentSource","_x","_x2","methodid","openSafechargeOrder","_ref5","successCallback","openorderParams","authorizecard","sessiontoken","usertokenid","amounttopay","applySafechargeOrder","callSafechargePayment","billingAddressFormatted","currency","sessionStorage","pclCurrency","country","toUpperCase","sessionToken","merchantId","SAFECHARGE_MERCHANT_ID","replace","merchantSiteId","SAFECHARGE_MERCHANT_SITE_ID","clientUniqueId","_Date$now","amount","SFCardNumber","removeCyclic","paymentOption","userPaymentOptionId","sfc","createPayment","transactionId","initSafechargePayment","_ref6","_callee2","afterOpenOrder","_context2","loadSafecharge","_x3","createBraintreePayment","_ref7","_callee3","_context3","teardown","transactionid","apiServer","_x4","_x5","initBrainTree","braintree","client","create","authorization","clientErr","clientInstance","paypalCheckout","paypalCheckoutErr","paypalCheckoutInstance","loadPayPalSDK","vault","Buttons","fundingSource","FUNDING","PAYPAL","style","color","label","createBillingAgreement","flow","onApprove","actions","tokenizePayment","payload","nonce","onCancel","onError","onReady","getTokenBraintree","_ref8","setupresult","setPublishableKey","STRIPE_PK","cardData","createToken","tokenInfo","createAlipayPayment","instrument","confirmAlipayPayment","return_url","location","href","createWechatPayment","confirmWechatPayPayment","payment_method_options","wechat_pay","handleActions","_ref9","next_action","onNextAction","wechat_pay_display_qr_code","image_url_png","errorImg","cdnPath","devicePixelRatio","styled","div","withConfig","componentId","slideRight","keyframes","CardIcon","visaCardImg","VisaCardIcon","masterCardImg","MasterCardIcon","amexCardImg","AmexCardIcon","dinersCardImg","DinersCardIcon","discoverCardImg","DiscoverCardIcon","jcbCardImg","JCBCardIcon","defaultCardImg","DefaultCardIcon","cardIcons","visa","React","master","mastercard","amex","americanexpress","diners","dinersclub","discover","jcb","default","reactStringReplace","require","validCardNumber","cardType","handleCardNumberChange","handleCardNumberKeyPress","handleCardNumberPaste","expDate","validExpDate","handleExpDateKeyUp","handleExpDateChange","CVC","validCVC","handleCVCChange","handleCVCKeyPress","holderName","validHolderName","handleHolderNameChange","handleHolderNameKeyPress","errorMessage","paymentLoading","handleSubmit","handleCardChange","_ref$shouldRenderInpu","shouldRenderInputs","buttonText","shouldRenderHolderName","_ref$showDisclaimer","showDisclaimer","theme","CardFormWrapper","onSubmit","className","CardNumberWrapper","InputLabel","ChangeCard","onClick","InputField","placeholder","autoComplete","onChange","onKeyPress","onPaste","inputMode","autoFocus","ExpDateWrapper","maxLength","onKeyUp","CVCWrapper","InfoIcon","ReactTooltip","multiline","CardHolderWrapper","ButtonWrapper","ButtonWithIcon","size","disabled","height","loading","text","icon","DisclaimerText","match","Link","SecureText","form","InputWrapper","shake","COLORS","mainColor","secureIconImg","userPaymentSource","last4","brand","expmonth","expyear","brandLowerCase","toLowerCase","autocomplete","secureImg","isLoading","_ref$user","user","userId","_ref$planId","planId","discount","_ref$RenderForm","RenderForm","CreditCardFormTemplate","afterPaymentActions","_ref$RenderPrefilledF","RenderPrefilledForm","PrefilledCreditCardForm","_ref$color","_ref$buttonText","_ref$onPaymentProcess","onPaymentProcessing","_ref$afterPaymentProc","afterPaymentProcessing","payButtonClicked","payButtonRef","_ref$disabledButton","disabledButton","_ref$setDisabledButto","setDisabledButton","_ref$setDisabledPlanO","setDisabledPlanOptions","_ref$checkCurrentSubs","checkCurrentSubscription","isIE","_ref$subscribeForUser","subscribeForUserInfoChange","_ref$abbortUserInfoCh","abbortUserInfoChangeSubscribe","_ref$stopUserDiff","stopUserDiff","_ref$onPaymentErrorMe","onPaymentErrorMessageChange","newErrorMessage","_useState2","_slicedToArray","useState","setCardNumber","_useState4","cardNumberLength","setCardNumberLength","_useState6","setCardType","_useState8","setExpDate","_useState10","setCVC","_useState12","setHolderName","_useState14","setValidCardNumber","_useState16","setValidExpDate","_useState18","setValidCVC","_useState20","setValidHolderName","_useState22","setErrorMessage","_useState24","setPaymentLoading","_useState26","setChangeCard","_useState28","safechargeFormInserted","setSafechargeFormInserted","_useState30","_useState32","disableErrorAnimation","setDisableErrorAnimation","getHolderNameFormatted","validateHolderName","holderNameFormated","_useSafeChargeInputsV","_ref$changeCard","holderNameRef","useRef","scFieldsState","useEffect","clearSafeChargeFields","current","addEventListener","onChangeHolderName","onFocusHolderName","onBlurHolderName","removeEventListener","SAFECHARGE_CARD_FIELDS","scFieldName","destroy","еvt","target","setValidScFields","valid","setScFieldsValidationListeners","evt","empty","onSafechargeFieldsCreated","validateSafeChargeInputs","validationRes","cardExpiry","cardCvc","filledInputs","useSafeChargeInputsValidations","SAFECHARGE_PAYMENT_PROVIDER","SFFieldsParams","language","ScFieldStyles","insertSafechargeForm","event","newCardType","formatExpDatetoMMYY","preventEnteringChars","formatCardNumberOnKeyPress","formatExpDate","preventSymbolsOnCCHolderName","formatedValue","selectionStart","selectionEnd","substr","which","keyCode","charCode","fromCharCode","preventDefault","formatCardNumberOnPaste","paste","clipboardData","getData","formattedNumberSubs","validCardLength","formattedNumber","setPaymentErrorMessageOnInvalidInputs","validExpDateTemp","validCardNumberTemp","validHolderNameTemp","validCVCTemp","invalidFields","togglePaymentLoader","showBadInput","inputName","handlePaymentSuccess","skipApiUpdate","_user$lastsubscriptio","_user$lastsubscriptio2","_user$planparams","_user$planparams2","ADDITIONAL_TRAFFIC_ID","_parseInt","getUserTtrafficCount","lastsubscription","CUSTOM4TB_PLAN_ID","planparams","providersourceid","payments","handlePaymentConfirmationCancle","STRIPE_PAYMENT_PROVIDER","callbackOnValidInputs","cvcFormated","validateExpiryDate","validationsRes","validateCreditCardInputs","getExpiryDatePeriod","handleSafeChargeSuccess","transactionID","on3DsecureSuccess","errorTextColor","spin","width","position","css","assign","source","xmlns","fill","paypalLoading","paypalEmail","handleLogout","AnimationContainer","CSSTransition","in","unmountOnExit","classNames","onEnter","onExited","appear","LoaderWrapper","SpinContainer","LoadingIcon","Wrapper","PaypalError","PaypalIcon","ExistingEmail","Logout","paypalImg","span","loadingIconColor","_ref$paypalButtonLabe","paypalButtonLabel","_ref$RenderTemplate","RenderTemplate","PaypalTemplate","_ref$setExternalButto","setExternalButtonLoading","_ref$isMobile","isMobile","_ref$hidePaypalButton","hidePaypalButton","_ref$removePaypalPaym","removePaypalPaymentSource","setPaypalLoading","setPaypalEmail","prevIsMobile","usePrevious","fireAfterPaymentActions","setFireAfterPaymentActions","renderPaypalButton","email","initAuthFlow","textGradientCSS","baseButtonCSS","PlansContainerWrapper","background","PlansContainerWrapperVer0","PlansPageTitle","PlansWrapper","PlansWrapperVer0","PeriodsWrapper","PeriodsWrapperVer0","PlanBoxesWrapper","PlanBoxesWrapperVer0","ArrowBoxWrapper","ArrowBoxWrapperVer0","PaymentPartner","img","show","PaymentPartnerVer0","GogoLogo","GogoLogoVer0","JapaneseCertification","JapaneseCertificationVer0","JapaneseCloudAwardContainer","JapaneseCloudAwardContainerVer0","JapaneseCloudAwardContainerTitle","JapaneseCloudAwardContainerTitleVer0","h2","ReadMoreToggle","ReadMoreToggleVer0","JapaneseCertificationDescription","JapaneseCertificationDescriptionVer0","CertificatesWrapper","CertificatesWrapperVer0","CertificateImage","CertificateImageVer0","PlanBoxOuterWrapper","borderRadius","showBestPriceByRandomGirl","PlanBoxOuterWrapperVer0","PlanBoxWrapper","_ref10","newLabel","PlanBoxWrapperVer0","_ref11","_ref12","_ref13","PlanBoxFeaturesWrapper","PlanBoxFeaturesWrapperVer0","PeriodWrapper","_ref14","backgroundColorValue","PeriodWrapperVer0","_ref15","PeriodSelectedBar","leftOffset","PeriodSelectedBarVer0","VatIncluded","VatIncludedVer0","BoxTitle","BoxTitleVer0","_ref16","BoxSubtitle","BoxSubtitleVer0","_ref17","HeaderWrapper","HeaderWrapperVer0","PricesWrapperRow","PricesWrapperRowVer0","PricesWrapperInnerRow","PricesWrapperInnerRowVer0","TryPcloud","TryPcloudVer0","UserPlanInfoContainer","UserPlanInfoContainerVer0","Crypto_PlansWrapper","Crypto_PlanBoxOuterWrapper","Crypto_PeriodsWrapper","Crypto_PeriodWrapper","Crypto_PlanBoxWrapper","Crypto_PlanBoxFeaturesWrapper","Storage_PlanBoxWrapperVer0","Storage_PlanBoxWrapper","StorageFamily_PlansWrapper","StorageFamily_PlanBoxOuterWrapper","StorageFamily_PlanBoxWrapper","StorageFamily_PlanBoxFeaturesWrapper","Traffic_PlansWrapper","Traffic_PeriodsWrapper","Pass_PlansWrapper","Pass_PeriodsWrapper","Pass_PeriodWrapper","Pass_VatIncluded","FormWrapper","PaymentFormWrapper","TopHeadline","h3","h1","viewBox","version","useMemo","plansVersion","hrefSearch","PLANS_VERSION","components","PlansContainer","crypto","passwords","storage_family","CheckIcon","CheckIconV2","tmpComponentByPlansType","ComponentByPlansType","title","subtitle","_ref$disabled","_ref$className","_ref$theme","discountPeriod","subtitlePosition","_ref$plansType","plansType","_ref$plansVersion","plansTypeProps","PlansTypeComponent","_extends","Label","CenterAlign","_ref$price","_ref$oldPrice","slashPeriod","periodText","_ref$template","template","_ref$showSaveLabel","showSaveLabel","toFixed","priceFractions","priceDecimalPart","newPriceWholeNumber","Price","PriceRow","OldPrice","OldPriceRow","CurrencyCode","CurrencyCodeRow","CrossLine","CrossLineRow","PriceColumn","OldPriceColumn","CurrencyCodeColumn","CrossLineColumn","renderOldPrice","Value","renderSlashPeriod","SlashPeriod","renderPeriodText","PeriodText","renderSaveLabel","SaveLabel","Slash","PricesWrapperColumn","PricesWrapperInnerColumn","ValueNewPriceColumn","fontSize","fontSizeMobile","fontSizeTablet","ValueDecimalPart","CurrencyCodeNewPrice","lightShade","feature","tooltip","_ref$lastChild","lastChild","showCheck","uuidv4","colorValue","bulletsColor","FeatureWrapper","FeatureText","_ref$type","positionLeft","backgroundRetina","DiscountWrap","DiscountWrapCorner","DiscountValueWrap","DiscountValueWrapCorner","DiscountWrapPaperclip","DiscountValueWrapPaperclip","DiscountWrapFullWidth","DiscountValueWrapFullWidth","isRetina","detectIsRetina","MinusSign","Currency","PercentSign","actionText","handleAction","wrapperClassName","DisabledWrapper","DisabledTitle","DisabledSubtitle","ActionButton","PaymentOptionsWrapper","VisaIcon","AmericanExpressIcon","DiscoverIcon","PaymentIcon","visaImg","masterImg","americanExpressImg","discoverImg","tabs","activeTab","_ref$uppercase","uppercase","_ref$iconFill","iconFill","_ref$iconActiveFill","iconActiveFill","tabsMap","tabWidth","TabsWrapper","map","tab","index","tabId","tabTitle","clickAction","TabIcon","tabIconActive","_tab$testId","testId","_tab$tabAttributeId","tabAttributeId","isActiveTab","Tab","active","activeFill","TabIconWrapper","ActiveLine","billingPeriod","_ref$currency","discountPercent","_ref$showDiscountCorn","showDiscountCorner","_ref$showCurrencyCode","showCurrencyCode","renderView","selectedTabView","_ref$loading","BoxDiscount","AlignContainer","BoxHeader","planBoxPeriodTexts","BoxPrices","Tabs","showPaymentOptions","timerExp","WrapperRightColumn","WrapperLeftColumn","FeaturesWrapper","Timeleft","TimerWrapper","PlanDescription","BoxDiscountAnimationContainer","discountValue","discountType","discountLabelBackground","discountLabelBackgroundMobile","discountLabelBackgroundRetina","discountLabelWidth","discountLabelHeight","discountLabelPositionLeft","_ref$priceLoading","showHeader","priceLoading","fasle","WrapperLeftColumn2","WrapperRightColumn2","PlanInfo","_ref$activeTab","defaultClickAction","_ref$showBestValued","showBestValued","chosenTabId","setChosenTabId","tabsContainerWidth","_useMemo","offsets","reduce","offsetsOut","TabsTitle","SelectedBar","tabCustomColor","clickedTabId","tabClickAction","handleOnClick","New","Separator","BestValue","BestValueArrow","BestValueText","innerWidth","setIsMobile","resizeEventListener","visible","ToggleTabs","isAlwaysVisible","_props$currency","_props$country","userInfo","setCart","paymentProvider","setsfPaymentSourceID","setPaymentProvider","open3DsecureIframe","on3DsecureError","cjData","setPaymentInitiated","_props$getCurrentStor","getCurrentStorageCount","limitedPeriodDiscount","itemsPriceData","_props$onUserInfoChan","onUserInfoChangeAfterPayment","_props$template","setUserInfo","view","setView","DEFAULT_TABS","tabValue","setTabs","setUserPaymentSource","cardProvider","setCardProvider","setLoading","documentMode","titleObj","planBoxTexts","loaderElement","userDiff","promoParams","getPromoParam","channelid","passcampaign","loadPaymentData","loadSubscribedProducts","subscribeForUserDiff","dfd","returnedValues","paymentSourcePromise","paymentSource","jQuery","Deferred","paymentProviderPromise","browser","getPaymentProvider","when","paymentSourceData","paymentProviderData","newView","newProvider","newCardProvider","paymentmethods","paymentMethod","newTabs","classList","toggle","choosenProducts","productId","otherProducts","subscribedProduct","choosenPremiumProducts","userChoosedPremiumProduct","userHasPremiumSubscription","skipPremium","applyDiscount","totalStorage","totalTraffic","retryCount","MAX_CUSTOM_TRAFFIC_COUNT","cookie","waitForAPItoUpdate","diffUserInfo","getUserInfo","count","prevUserInfo","userinfo","plan","quota","forceFresh","modifyUserEvents","useCallback","analyticsParams","category","os","analyticsData","revenue","data6H","get6HData","sendAnalyticsEvent","itemsInfo","planid","planNames","quantity","gtagAds","items","ttq","track","customPlanId","productPrice","product","productid","pricecents","content_id","content_type","content_name","contents","fbq","sha256UserID","userid","getGlobalLocationId","uetq","orderId","cartSubtotal","sendCJConversionTag","send6HData","pCloud","removeItem","setcookie","paymentSourceId","creditCardPaymentSource","stripeSources","sources","sfSources","paymentsourceid","providerSourceID","paymentsouce","paymentSoucesLength","subscribeForPaymentSource","PaymentViewBox","PaymentViewBoxDefault","PaymentViewBoxPriceOnTheLeft","PaymentViewBoxPriceOnTheLeft2","CreditCardBox","PaypalBox","timerTheme","increasingPrice","_ref$showPlanDescript","showPlanDescriptionText","_ref$showSocialProofO","showSocialProofOnlyMobile","renderSocialProofText","renderFeatures","onActionButtonClick","texts","description","buttonTextObj","features","detectIsMobile","BoxWrapper","TimerContainer","timeExpire","timeExpireCallback","renderTimer","TimerTemplate","timerColor","textColor","showLabels","disabledColor","PaymentOptions","socialProofSecondColor","renderTabs","showSocialProofLanding","showSocialProof","buttonAction","_props$renderTabs","getTotalStorageForUser","getTotalStorage","getTotalTrafficForUser","getTotalTraffic","randomGeneratedNumber","setRandomGeneratedNumber","getPromoCount","paramsCopy","promo","PlanBoxTemplateView","PlanBoxDefaultView","PlanBoxPriceOnTheLeftView","PlanBoxPriceOnTheLeft2View","textSocialProof","textSocialProofFormatted","CardWrapper","digit","Card","SocialProofText","featureToRender","BoxFeature","onTabClick","handleLogin","LoginOrSignupComponent","_props$defaultLoginVi","defaultLoginView","_props$passPcloud","passPcloud","loginOrSignupContainer","openPassLoginModal","isLoginModal","onSuccess","showTitle","currentLang","passpcloud","LoginViewBox","LoginViewBoxDefault","LoginViewBoxPriceOnTheLeft","LoginViewBoxPriceOnTheLeft2","CenteredContent","Form","ref","loginOrSignupView","disabledReason","secondaryDisableText","disabledText","notEligibleTextsForGetPlansApi","notEligibleTexts","BoxDisabled","Button","_ref$forceDisableText","forceDisableText","DisabledViewBox","DisabledViewBoxDefault","DisabledViewBoxPriceOnTheLeft","DisabledViewBoxPriceOnTheLeft2","featuresToRender","SecondaryActionLink","Message","fillRule","clipRule","animationDirection","delay","_ref18","_ref19","children","_ref$trigger","trigger","_ref$timeout","_ref$animationDirecti","_ref$style","SwitchTransition","mode","addEndListener","node","_ref$newLine","newLine","PricesWrapper","currentUpsellProductID","closeUpsellModal","showUpsellModal","currentUpsellProductData","actionLink","successMessage","upsellProductPrices","closeModalTimeout","handleGetUpsell","getUpsellDescription","upsellDescription","upsellPriceData","originalPrice","upsellTextFormatted","BoxPricesInline","ADD_STORAGE_1COUNT_PLAN_ID","ADD_STORAGE_4COUNT_PLAN_ID","Modal","onClose","opened","top","fullSize","shouldCloseOnOverlayClick","OvalModalWrap","backgroundColor","OvalModalClose","ModalContent","upsellImage","upsellTimer","upsellDescriptionColor","upsellDescription2","upsellDescription2Color","upsellHeadline","upsellDisclaimer","upsellHeadlineColor","SwitchAnimation","ModalAlignemnt","SuccessIcon","UpsellBanner","src","Flipclock","seconds","dark","UpsellHeadline","UpsellDescription","UpsellDescription2","hidden","upsellButtonText","PREMIUM_PLAN_ID","PREMIUM_PLUS_PLAN_ID","myPcloudURL","UpsellDisclaimer","renderUpsellContent","upsellIndex","UpsellModalWrapper","upsellImagePosition","PaymentSuccessMessageWrapper","MyAccountLink","UpsellContentWrapper","UpsellTextContent","discountPercentValue","getUpsellHeadline","CurrentPrice","PriceSlash","UnderPriceText","underPriceTexts","FeaturesList","FeatureTextWrap","UpsellImageContent","ul","_ref$successMessage","upsellProduct","cart","analytics","sfPaymentSourceID","upsellDiscount","_ref$actionTextToUppe","actionTextToUpperCase","upsellProductsInfo","seenUpsellProducts","setSeenUpsellProducts","setCurrentUpsellProductID","upsellVersion","_ref$passPcloud","setShowUpsellModal","countdown","setCountdown","upsell","changeUpsell","sendCJPageVisitTag","getElementsByTagName","timer","currentCountdown","currentUpsellIndex","onUpdateSuccess","time","CUSTOM_PLAN_ID","_toConsumableArray","discountCode","validdiscountcode","RedirectMessage","findIndex","UpsellModalv1","UpsellModalv2","PaymentMessageForm","WarningIcon","planIds","_ref$country","logoutCallback","onAuthAction","_ref$open3DsecureIfra","_ref$on3DsecureError","_ref$timer","currencyDiscounts","_ref$upsellProducts","upsellProducts","openPrivecyModal","canAddStorage","freeUsersOnly","onPriceGet","customSuccessMessage","successActionLink","successActionText","_ref$successActionTex","successActionTextToUpperCase","_ref$flow","steps","login","payment","success","_ref$handleExternalLo","handleExternalLogin","_ref$showSocialProof","_ref$showSocialProofL","abTest","currentPlanIds","setCurrentPlanIds","selectedTab","setSelectedTab","setPeriod","setPrice","setOldPrice","setCurrency","setDiscountCode","setDiscountPercent","setDisabledReason","setCjData","_useState34","tabsSetting","setTabsSetting","_useState36","setPriceLoading","_useState38","priceLoadingError","setPriceLoadingError","_useState40","tabsSwitched","setTabsSwitched","_useState42","plans","setPlans","_useState44","_useState46","setUpsellProductsInfo","_useState48","setUpsellProductPrices","_useState50","_useState52","shouldStartFreeTrial","_useState54","setTimerExp","_useState56","passedHours","setPassedHours","encreasingPriceValue","discountPreset","timerInterval","getplansXHR","loginCallback","newUser","startTrial","registerCallback","showSuccessMessage","newUpsellProductsInfo","planIdAccordingPurchase","newPlanId","getUpsellPlansApiCalls","newUpsellProductPrices","getPlanPrice","plansData","originalpricecents","canbuy","_product$canbuydisabl","canbuydisabledreason","onSuccessCallback","login_callback","register_callback","logout_callback","handleUIChangesOnLogout","initTimer","checkUserCanBuyPlans","_learnq","resetTabs","initialDiscount","discountPresetPerProduct","initialDiscountPerProduct","initPlansData","biggestPaymenPlanWrapperViewHeight","setUserVisit","initCJData","pintrk","useLayoutEffect","getElementById","createElement","head","appendChild","innerHTML","viewToRender","onLoadedPlans","totalPrice","totalOriginalprice","onLoadPlansError","newCjData","sha256Email","emailHash","totalRegularPrice","CJ_PLANS_PREFIX","currentPrice","getPrice","itemId","unitPrice","getCurrencyForDiscount","Boolean","getCurrencyParams","_ref2$callback","getCurrencyTries","Storage","setItem","getCurrencyApiCall","getCurrency","newDiscount","clearsession","newCurrency","showorigprices","promotion_name","handleGetPlan","userPlan","isBusiness","business","isCrypto","cryptosubscription","cryptolifetime","hasExtendedHistory","efh","hasExtraTraffic","additionaltraffic","additionaltrafficlifetime","tabsCoppy","selectedTabIndex","disabledPlan","usepassmanagertrial","includes","PASS_PREMIUM_PLAN_ID","PASS_FAMILY_PLAN_ID","end","initialDiscountStart","timeNow","Date","getTime","newtimerExp","newPassedHours","timeBetween","ceil","abs","tabInfo","tabType","tabsSettingCoppy","_tabsSettingCoppy","ViewWrapper","ErrorMessageWrapper","ErrorIconWrapper","ErrorIcon","ErrorMessage","PAYMENT_DISRUPTION_COUNTRIES","PlanViewBox","PaymentDisruptionViewBox","SuccessViewBox","usedDiscountCode","purchasedProduct","errorIconColor","_move","PaymentPlanWrapper","componentMount","Array","isArray","clsx","module","exports","addClass","contains","baseVal","hasClass","setAttribute","replaceClassName","origClass","classToRemove","RegExp","removeClass","die","isDraft","DRAFT_STATE","isDraftable","proto","getPrototypeOf","Ctor","Function","objectCtorString","DRAFTABLE","_value$constructor","isMap","isSet","each","iter","enumerableOnly","getArchtype","entry","thing","type_","has","prop","get","set","propOrOldValue","is","x","hasMap","Map","hasSet","Set","latest","copy_","base_","shallowCopy","base","descriptors","getOwnPropertyDescriptors","desc","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","baseDraft","isReplaced","useProxies_","willFinalizeES5_","modified_","finalize","maybeFreeze","generateReplacementPatches_","NOTHING","rootScope","path","childValue","finalizeProperty","scope_","finalized_","draft_","resultEach","generatePatches_","parentState","targetObject","rootPath","targetIsSet","assigned_","autoFreeze_","peek","getDescriptorFromProto","getOwnPropertyDescriptor","markChanged","prepareCopy","createProxy","parent","proxyMap_","proxySet_","isManual_","traps","objectTraps","arrayTraps","Proxy","revocable","revoke","proxy","createES5Proxy_","currentImpl","copy","archType","hasChanges_","copyHelper","enableES5","proxyProperty","markChangesSweep","drafts","hasArrayChanges","hasObjectChanges","baseValue","baseIsDraft","descriptor","defineProperty","markChangesRecursively","object","min","enablePatches","deepClonePatchValue","cloned","immerable","clonePatchValueIfNeeded","ADD","applyPatches_","patches","patch","op","parentType","basePath","inversePatches","assignedValue","origValue","unshift","replacement","enableMapSet","__extends","b","extendStatics","prepareMapCopy","prepareSetCopy","assertUnrevoked","JSON","stringify","setPrototypeOf","DraftMap","cb","thisArg","_value","iteratorSymbol","_this2","_this3","DraftSet","hasSymbol","Symbol","hasProxies","Reflect","for","getOwnPropertySymbols","getOwnPropertyNames","_desc$get","currentState","deleteProperty","owner","Immer","config","recipe","defaultBase","produce","hasError","Promise","ip","produceWithPatches","nextState","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","applyPatchesImpl","array","iteratee","offset","arrayPush","isFlattenable","baseFlatten","depth","predicate","isStrict","getRawTag","objectToString","symToStringTag","baseGetTag","isObjectLike","arrayMap","isSymbol","symbolProto","symbolToString","baseToString","freeGlobal","objectProto","nativeObjectToString","isOwn","tag","unmasked","isArguments","spreadableSymbol","isConcatSpreadable","freeExports","nodeType","freeModule","freeProcess","process","nodeUtil","types","binding","freeSelf","reRegExpChar","reHasRegExpChar","string","test","baseIsArguments","propertyIsEnumerable","baseIsRegExp","baseUnary","nodeIsRegExp","isRegExp","ttl","timeMap","obliviousSet","olderThen","removeTooOldValues","m","__esModule","valueOf","kt","utc","_pf","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","_isValid","_d","invalidWeekday","_strict","bigHour","_","NaN","momentProperties","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","isValid","updateOffset","w","S","M","isFinite","Y","suppressDeprecationWarnings","warn","D","deprecationHandler","stack","O","T","P","W","C","E","H","N","R","U","F","pow","max","L","j","G","V","I","localeData","ordinal","A","z","invalidDate","longDateFormat","lastIndex","Z","q","J","B","Q","X","K","ee","te","ne","se","ie","re","ae","oe","ue","le","de","he","ce","fe","me","_w","_e","_a","ye","pe","year","parseTwoDigitYear","parseInt","ge","ve","we","Me","Se","month","date","ke","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","Ye","De","Oe","be","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","Te","xe","Pe","We","Ce","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","Ee","getFullYear","setFullYear","He","UTC","getUTCFullYear","setUTCFullYear","Ne","getUTCDay","Re","dayOfYear","Ue","Fe","week","Le","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","je","Ge","Ve","Ie","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","Ae","ze","Ze","$e","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","qe","hours","Je","minutes","Be","_meridiemParse","_isPm","isPM","_meridiem","Qe","Xe","Ke","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","MM","yy","dow","doy","meridiemParse","et","tt","nt","st","_abbr","it","at","rt","abbr","_config","parentLocale","ot","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","ut","lt","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","GG","Yt","_week","gg","_dayOfYear","_nextDay","getDay","setUTCMinutes","getUTCMinutes","dt","ht","ct","ft","mt","yt","exec","St","pt","gt","vt","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","wt","ISO_8601","RFC_2822","meridiemHour","Mt","preparse","score","createFromInputFallback","hour","minute","second","millisecond","Dt","Ot","bt","Tt","xt","quarter","isoWeek","parseFloat","_milliseconds","_days","_months","_data","_bubble","Pt","Wt","Ct","utcOffset","Ht","Et","Nt","clone","setTime","local","Rt","getTimezoneOffset","Ut","Ft","Lt","jt","ms","milliseconds","Gt","to","isBefore","Vt","isAfter","It","At","invalid","zt","Zt","$t","qt","defaultFormat","defaultFormatUtc","Jt","locale","Bt","Qt","Xt","Kt","en","tn","nn","weekYear","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","sn","rn","an","un","ln","dn","hn","startOf","calendarFormat","format","diff","endOf","weekday","isoWeekday","isUtc","postformat","humanize","fromNow","toNow","invalidAt","isBetween","isSame","isSameOrAfter","isSameOrBefore","lang","parsingFlags","unit","priority","subtract","toArray","toObject","years","toDate","toISOString","inspect","isLocal","toJSON","unix","creationData","isUTC","strict","isLeapYear","quarters","daysInMonth","weeks","isoWeeks","weeksInYear","isoWeeksInYear","days","_changeInProgress","parseZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","zone","isDSTShifted","_isDSTShifted","cn","mn","_n","_calendar","_longDateFormat","_invalidDate","_ordinal","_relativeTime","pastFuture","isFormat","standalone","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","langData","yn","pn","gn","vn","wn","Sn","as","Mn","kn","Yn","Dn","On","bn","Tn","xn","Pn","Wn","Cn","En","Hn","Nn","Rn","Un","Fn","Ln","jn","Gn","Vn","In","An","asSeconds","zn","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","toIsoString","isDate","duration","isMoment","isDuration","defineLocale","updateLocale","locales","normalizeUnits","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","webpackPolyfill","deprecate","paths","translateY","transform","transitionDuration","querySelector","append","day1TranslateY","day2TranslateY","day3TranslateY","hour1TranslateY","hour2TranslateY","minute1TranslateY","minute2TranslateY","second1TranslateY","second2TranslateY","Fragment","KEY_PREFIX","FLUSH","REHYDRATE","PAUSE","PERSIST","PURGE","REGISTER","DEFAULT_VERSION","symbols","sym","autoMergeLevel1","inboundState","originalState","reducedState","debug","newState","defineProperties","createPersistoid","serialize","blacklist","whitelist","transforms","throttle","storageKey","keyPrefix","defaultSerialize","writeFailHandler","lastState","stagedState","keysToProcess","timeIterator","writePromise","processNextKey","shift","endState","subState","transformer","catch","onWriteFail","passWhitelistBlacklist","update","flush","deserialize","defaultDeserialize","getItem","serialized","rawState","reduceRight","out","serial","parse","purgeStoredState","warnIfRemoveError","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","DEFAULT_TIMEOUT","persistReducer","baseReducer","stateReconciler","getStoredState","_persistoid","_purge","_paused","conditionalUpdate","_persist","rehydrated","restState","_sealed","_rehydrate","rehydrate","register","restoredState","migrate","migratedState","migrateErr","_newState","autoMergeLevel2","persistCombineReducers","reducers","combineReducers","arr","arr2","_arrayWithoutHoles","_iterableToArray","_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","versionKey","createTransform","inbound","outbound","whitelistBlacklistCheck","fullState","_getStorage","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","broadcastChannelOption","prepareState","receiveState","prevState","sendIniteState","receiveIniteState","s4","substring","guid","stampedAction","$uuid","$wuid","allowed","isSynced","handleOnMessage","messageChannel","onmessage","BroadcastChannel","messageListener","postMessage","appReducer","initState","createThunkMiddleware","extraArgument","thunk","withExtraArgument","NOT_FOUND","defaultEqualityCheck","defaultMemoize","equalityCheckOrOptions","equals","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","maxSize","resultEqualityCheck","comparator","createCacheKeyComparator","cache","put","getEntries","cacheIndex","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","USE_METHOD","LISTENERS","startedListening","runAll","promises","run","removeAll","getSize","hasOwn","classes","appendClass","parseValue","newClass","computeCoordsFromPlacement","placement","rtl","reference","floating","sideAxis","alignmentAxis","alignLength","side","isVertical","commonX","commonY","commonAlign","coords","computePosition","strategy","middleware","platform","validMiddleware","isRTL","rects","getElementRects","statefulPlacement","middlewareData","resetCount","nextX","nextY","initialPlacement","elements","detectOverflow","_await$platform$isEle","boundary","rootBoundary","elementContext","altBoundary","padding","paddingObject","clippingClientRect","getClippingRect","isElement","contextElement","getDocumentElement","rect","offsetParent","getOffsetParent","offsetScale","getScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","bottom","left","right","arrow","axis","arrowDimensions","getDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","shouldAddOffset","alignmentOffset","centerOffset","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","crossAxis","alignment","allowedPlacements","autoAlignment","detectOverflowOptions","placements$1","getPlacementList","currentIndex","currentPlacement","alignmentSides","currentOverflows","allOverflows","overflows","nextPlacement","placementsSortedByMostSpace","acc","resetPlacement","flip","_middlewareData$arrow","_middlewareData$flip","mainAxis","checkMainAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","initialSideAxis","isBasePlacement","hasFallbackAxisSideDirection","placements","overflowsData","sides","_middlewareData$flip2","_overflowsData$filter","nextIndex","_overflowsData$filter2","currentSideAxis","getSideOffsets","isAnySideFullyClipped","hide","referenceHiddenOffsets","referenceHidden","escapedOffsets","escaped","getBoundingRect","minX","minY","inline","nativeClientRects","getClientRects","clientRects","sortedRects","groups","prevRect","getRectsByLine","fallback","resetRects","getBoundingClientRect","firstRect","lastRect","isTop","isLeftSide","maxRight","minLeft","measureRects","_middlewareData$offse","diffCoords","mainAxisMulti","crossAxisMulti","rawValue","convertValueToCoords","limiter","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","enabled","limitShift","rawOffset","computedOffset","len","limitMin","limitMax","_middlewareData$offse2","isOriginSide","_state$middlewareData","_state$middlewareData2","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","getCssDimensions","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","domElement","noOffsets","getVisualOffsets","win","visualViewport","offsetLeft","offsetTop","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","isFixed","floatingOffsetParent","shouldAddVisualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","paddingTop","getWindowScrollBarX","leftScroll","scrollLeft","getHTMLOffset","documentElement","scroll","ignoreScrollbarX","htmlRect","scrollTop","getClientRectFromClippingAncestor","clippingAncestor","html","clientWidth","clientHeight","visualViewportBased","getViewportRect","body","ownerDocument","scrollWidth","scrollHeight","direction","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","parentNode","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsetRect","htmlOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","svgOffsetParent","topLayer","clippingAncestors","cachedResult","el","currentContainingBlockComputedStyle","elementIsFixed","currentNode","computedStyle","currentNodeIsContaining","ancestor","getClippingElementAncestors","_c","firstClippingAncestor","clippingRect","accRect","getOffsetParentFn","getDimensionsFn","floatingDimensions","rectsAreEqual","autoUpdate","ancestorScroll","ancestorResize","elementResize","ResizeObserver","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","passive","cleanupIo","onMove","timeoutId","io","cleanup","_io","disconnect","skip","threshold","elementRectForRootMargin","rootMargin","isFirstUpdate","handleObserve","ratio","intersectionRatio","observe","observeMove","frameId","reobserveFrame","resizeObserver","firstEntry","unobserve","cancelAnimationFrame","requestAnimationFrame","_resizeObserver","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","mergedOptions","platformWithCache","hasWindow","getNodeName","isNode","nodeName","getWindow","_node$ownerDocument","defaultView","Node","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","isOverflowElement","overflowX","overflowY","display","getComputedStyle","isTableElement","isTopLayer","matches","isContainingBlock","elementOrCss","webkit","isWebKit","containerType","backdropFilter","willChange","contain","getContainingBlock","getParentNode","isLastTraversableNode","CSS","supports","getNodeScroll","scrollX","scrollY","assignedSlot","host","getNearestOverflowAncestor","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","frameElement","getFrameElement","alignments","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","evaluate","param","getSide","getAlignment","getOppositeAxis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","getOppositeAxisPlacements","isStart","lr","rl","tb","getSideList","getPaddingObject","expandPaddingObject","rectToClientRect","__assign","__spreadArray","pack","ar","SuppressedError","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdO","chunkIds","notFulfilled","Infinity","fulfilled","getter","definition","globalThis","nmd","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","nc","__webpack_exports__"],"sourceRoot":""}