{"version":3,"file":"js/featuresdisplay.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/components/FeaturesDisplay/FeaturesDisplay.js","webpack://pcloud-site/./src/exports/featuresdisplay.js","webpack://pcloud-site/./node_modules/clsx/dist/clsx.m.js","webpack://pcloud-site/./node_modules/shallowequal/index.js","webpack://pcloud-site/external window \"jQuery\"","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/assign.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/define-property.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/object/keys.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/parse-float.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/parse-int.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/symbol.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js","webpack://pcloud-site/./node_modules/@babel/runtime-corejs2/core-js/symbol/to-primitive.js","webpack://pcloud-site/./node_modules/tslib/tslib.es6.mjs","webpack://pcloud-site/webpack/bootstrap","webpack://pcloud-site/webpack/runtime/amd options","webpack://pcloud-site/webpack/runtime/compat get default export","webpack://pcloud-site/webpack/runtime/define property getters","webpack://pcloud-site/webpack/runtime/global","webpack://pcloud-site/webpack/runtime/hasOwnProperty shorthand","webpack://pcloud-site/webpack/runtime/make namespace object","webpack://pcloud-site/webpack/runtime/jsonp chunk loading","webpack://pcloud-site/webpack/runtime/nonce","webpack://pcloud-site/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","const _move = (obj, _attachList) => {\n for (var n in obj) {\n if (obj.hasOwnProperty(n)) {\n for (var k = 0; k < _attachList.length; ++k) {\n if (_attachList[k].list.indexOf(n) != -1) {\n _attachList[k].attach[n] = obj[n];\n }\n }\n }\n }\n}\n\nexport default _move;","// @flow\n\nimport * 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};","import React from \"react\";\nimport styled from \"styled-components\";\nimport { __ } from \"../../lib/utils\";\n\nconst FeaturesDisplay = (\n { gridTemplate = {\n cols: \"1fr 1fr 1fr 1fr 1fr 1fr\",\n rows: \"1fr 1fr 1fr\",\n gap: 20,\n },\n featuresData,\n featuresPadding = \"35px 30px\",\n contentPosition = \"flex-start\",\n }\n) => {\n const isRetina = window.devicePixelRatio > 1;\n\n return (\n \n {featuresData.map(f => {\n let imageClassName = f.desktop ? \"desktop \" : \"\";\n imageClassName += f.iconPosition;\n return (\n \n \n
\n \n {f.icon ?\n f.iconPosition === \"top-left\" ? : null\n : null}\n \n {__(f.title)}\n \n \n {f.descriptionType ?\n \n {f.description.map(x => {\n return - {x}
\n }\n )}\n
\n :\n __(f.description)\n }\n \n {f.icon ?\n f.iconPosition === \"bot-left\" ? : null\n :\n null\n }\n \n {f.images ?\n \n : null\n }\n \n )\n })}\n \n )\n\n\n}\n\nexport default FeaturesDisplay;\n\nconst Image = styled.img`\n max-width: 100%;\n`;\n\nconst Container = styled.div`\n display: -ms-grid;\n display: grid;\n -ms-grid-columns: ${props => props.gridTemplateCols};\n grid-template-columns: ${props => props.gridTemplateCols};\n grid-auto-columns: auto;\n -ms-grid-rows: ${props => props.gridTemplateRows};\n grid-template-rows: ${props => props.gridTemplateRows};\n padding-bottom: 50px;\n margin: 10px auto;\n \n @supports (grid-gap: ${props => props.gridGap + \"px\"} ) {\n grid-gap: ${props => props.gridGap + \"px\"};\n padding-bottom: 0px;\n }\n\n @media (max-width: 768px) {\n display: flex;\n flex-direction: column;\n max-width: 100%;\n margin: 0 auto;\n padding-bottom: 0px;\n -ms-grid-columns: 1fr;\n grid-template-columns: 1fr;\n -ms-grid-rows: auto auto auto auto auto auto;\n grid-template-rows: auto auto auto auto auto auto;\n align-items: center;\n }\n`;\n\nconst FeatureWrapper = styled.div`\n display: flex;\n background-color: ${props => props.background};\n flex-direction: column;\n justify-content: flex-start;\n align-items: start;\n box-sizing: border-box;\n padding: ${props => props.padding};\n border-radius: 25px; \n box-shadow: 0px 0px 15px 0px rgba(0,0,0,0.05);\n margin: 10px;\n min-width:250px;\n -ms-grid-column: ${props => props.gridCol};\n -ms-grid-column-span: ${props => props.gridColSpan};\n -ms-grid-row: ${props => props.gridRow};\n grid-column: ${props => props.gridCol} / span ${props => props.gridColSpan};\n grid-row: ${props => props.gridRow};\n\n @supports (grid-gap: 20px) {\n margin: 0px;\n }\n\n @media (max-width: 768px) {\n width:100%;\n max-width: 600px;\n padding-bottom: 50px;\n }\n`;\n\nconst TitleContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: end;\n width: 100%;\n word-break: break-word;\n -ms-word-break: break-all;\n\n @media (max-width: 768px) {\n display:block;\n text-align:center;\n }\n`;\n\nconst Title = styled.div`\n font-size: 22px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n text-align: left;\n margin: 20px 0;\n color: #000;\n\n @media (max-width: 768px) {\n text-align:center;\n }\n`;\n\nconst ContentContainer = styled.div`\n display:flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n height: 100%;\n\n ${(props) => {\n if (props.imagePosition ===\"top-left\") {\n return `\n flex-direction: column;\n align-items: flex-start;\n `\n } else if (props.imagePosition === \"top-center\") {\n return `\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n `\n } else if (props.imagePosition === \"top-right\") {\n return `\n flex-direction: column;\n align-items: flex-end;\n `\n } else if (props.imagePosition === \"middle-left\") {\n return `\n flex-direction: row;\n justify-content: center;\n align-items: center;\n `\n } else if (props.imagePosition === \"middle-right\") {\n return `\n flex-direction: row;\n justify-content: center;\n align-items: center;\n `\n } else if (props.imagePosition === \"bottom-left\") {\n return `\n flex-direction: column;\n align-items: flex-start;\n `\n } else if (props.imagePosition === \"bottom-center\") {\n return `\n flex-direction: column;\n `\n } else if (props.imagePosition === \"bottom-right\") {\n return `\n flex-direction: column;\n align-items: flex-end;\n `\n }\n }};\n\n img {\n flex-shrink: 0;\n ${(props) => {\n if (props.imagePosition ===\"top-left\") {\n return `\n `\n } else if (props.imagePosition ===\"top-center\") {\n return `\n `\n } else if (props.imagePosition ===\"top-right\") {\n return `\n `\n } else if (props.imagePosition ===\"middle-left\") {\n return `\n `\n } else if (props.imagePosition ===\"middle-right\") {\n return `\n order: 1;\n `\n } else if (props.imagePosition ===\"bottom-left\") {\n return `\n order: 1;\n `\n } else if (props.imagePosition ===\"bottom-center\") {\n return `\n order: 1;\n `\n } else if (props.imagePosition ===\"bottom-right\") {\n return `\n order: 1;\n `\n }\n }\n }};\n\n @media (max-width: 900px) {\n flex-direction: column;\n }\n \n @media (max-width: 768px) {\n display: block;\n }\n`;\n\nconst DescriptionContainer = styled.div`\n color: #000;\n display:flex;\n flex-direction:column;\n text-align:left;\n /* height: 100%; */\n width: 100%;\n padding: 0px 0px 10px 0px;\n justify-content: ${props => props.contentPosition};\n flex-shrink: 1;\n box-sizing: border-box;\n \n @media (max-width: 768px) {\n display: block;\n text-align:center;\n }\n & svg{\n &.bot-left{\n margin-top: auto;\n\n @media (max-width: 900px) {\n margin-top: 10px;\n }\n }\n\n &.desktop{\n @media (max-width: 768px) {\n display: none;\n }\n }\n }\n`;\n\nconst Description = styled.div`\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.44;\n letter-spacing: normal;\n text-align: left;\n color: #000;\n\n ul { \n li {\n list-style: disc;\n margin-left: 16px;\n\n .info_ico {\n margin-left: 10px;\n }\n }\n\n @media (max-width: 768px) {\n display: inline-block;\n }\n }\n\n @media (max-width: 768px) {\n display:block;\n text-align:center;\n }\n`;\n\nconst Check = styled.span`\n display: inline-block;\n min-height: 5px;\n min-width: 9px;\n border-bottom: 2px solid #ff9100;\n border-left: 2px solid #ff9100;\n transform: rotate(-45deg);\n margin-right: 14px;\n margin-bottom: 4px;\n`;\n\nconst FeatureImage = styled.img`\n margin: 20px;\n flex-shrink: 1;\n max-width: 250px;\n max-height: 250px;\n\n @media (max-width: 768px) {\n margin:0;\n }\n`","import React from \"react\";\n\nimport _move from \"../lib/move\";\nimport componentMount from \"../lib/componentMount\"\nimport FeaturesDisplay from \"../components/FeaturesDisplay\";\n\nconst _attachList = [\n {\n attach: self,\n list: [\n //components\n \"FeaturesDisplay\"\n ]\n }\n]\n\nconst prepComponents = {\n FeaturesDisplay: 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= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t40: 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__(60743)))\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","_defineProperty","_countriesInEuropeLis","_ref","_ref$gridTemplate","gridTemplate","cols","rows","gap","featuresData","_ref$featuresPadding","featuresPadding","_ref$contentPosition","contentPosition","isRetina","window","devicePixelRatio","React","Container","className","gridTemplateCols","gridTemplateRows","gridGap","map","f","imageClassName","desktop","iconPosition","FeatureWrapper","background","color","gridRow","grid","row","gridCol","col","gridColSpan","colSpan","padding","ContentContainer","imagePosition","Image","src","image","width","imageWidth","DescriptionContainer","icon","TitleContainer","Title","__","title","Description","descriptionType","description","x","images","FeatureImage","retina","style","flexGrow","marginTop","styled","img","withConfig","displayName","componentId","div","span","self","_move","FeaturesDisplay","componentMount","r","e","t","Array","isArray","clsx","arguments","module","exports","objA","objB","compare","compareContext","ret","call","keysA","Object","keys","keysB","bHasOwnProperty","prototype","bind","idx","key","valueA","valueB","__assign","assign","s","i","p","apply","this","create","__spreadArray","to","from","pack","ar","l","concat","SuppressedError","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","m","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","splice","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","prop","Symbol","toStringTag","value","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal","forEach","push","nc","__webpack_exports__"],"sourceRoot":""}