{"version":3,"file":"pricing-renewals.min.js","sources":["../../../../src/js/modules/pricing-renewals.js"],"sourcesContent":["class PricingRenewals {\n constructor(settings) {\n this.settings = {\n selectorSelectMenu: '#js-product-selector-wrapper',\n selectorTable: '#js-product-table-wrapper',\n selectorSubscriptionToggler: '#js-subscription-toggler-wrapper',\n selectedProduct: ['Bundles', 'DevCraft'],\n ...settings\n };\n\n this.settings.productSettings = {\n supportPlan: {\n name: 'Support Plan',\n type: 'support-plan',\n packages: {\n 'Lite Support': ['72h response time', '10 support incidents'],\n 'Priority Support': ['24h response time', 'Unlimited number of support incidents'],\n 'Ultimate Support': ['24h response time', 'Unlimited number of support incidents', 'Phone support', 'Remote web assistance', 'Ticket pre-screening', 'Issue escalation']\n }\n },\n earlyRenewal: {\n name: 'Early Renewal',\n type: 'renewal',\n content: 'Before your Maintenance & Support subscription plan has expired.',\n highlighted: false\n },\n lateRenewal: null,\n welcomeBackRenewal: {\n name: 'Welcome Back Renewal',\n type: 'renewal',\n content: 'When your Maintenance & Support subscription plan has expired.',\n highlighted: true\n },\n subscription_Renewal: {\n name: 'Renewal',\n type: 'renewal',\n content: 'Per developer, per year',\n highlighted: true,\n subscription: true\n }\n };\n\n this.settings.productGroups = {\n Bundles: [\n {\n name: 'DevCraft',\n productRows: [\n {\n name: 'DevCraft UI',\n editions: [\n {\n supportPlanVal: 'Lite',\n earlyRenewalVal: 749,\n welcomeBackRenewalVal: 1499,\n subscription_RenewalVal: 1149\n }\n ]\n },\n {\n name: 'DevCraft Complete',\n editions: [\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 849,\n welcomeBackRenewalVal: 1699,\n subscription_RenewalVal: 1299\n }\n ]\n },\n {\n name: 'DevCraft Ultimate',\n editions: [\n {\n supportPlanVal: 'Ultimate',\n earlyRenewalVal: 1099,\n welcomeBackRenewalVal: 2199,\n subscription_RenewalVal: 1649\n }\n ]\n }\n ],\n ...this.settings.productSettings\n },\n {\n name: 'Kendo UI',\n productRows: [\n {\n name: 'Kendo UI',\n editions: [\n {\n supportPlanVal: 'Lite',\n earlyRenewalVal: 525,\n welcomeBackRenewalVal: 1049,\n subscription_RenewalVal: 799\n },\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 575,\n welcomeBackRenewalVal: 1149,\n subscription_RenewalVal: 899\n },\n {\n supportPlanVal: 'Ultimate',\n earlyRenewalVal: 775,\n welcomeBackRenewalVal: 1549,\n subscription_RenewalVal: 1299\n }\n ]\n }\n ],\n ...this.settings.productSettings\n }\n ],\n\n Web: [\n {\n name: 'KendoReact',\n productRows: [\n {\n name: 'KendoReact',\n editions: [\n {\n supportPlanVal: 'Lite',\n earlyRenewalVal: 449,\n welcomeBackRenewalVal: 899,\n subscription_RenewalVal: 649\n },\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 499,\n welcomeBackRenewalVal: 999,\n subscription_RenewalVal: 749\n },\n {\n supportPlanVal: 'Ultimate',\n earlyRenewalVal: 699,\n welcomeBackRenewalVal: 1399,\n subscription_RenewalVal: 1199\n }\n ]\n }\n ],\n ...this.settings.productSettings\n },\n {\n name: 'UI for Blazor',\n productRows: [\n {\n name: 'UI for Blazor',\n editions: [\n {\n supportPlanVal: 'Lite',\n earlyRenewalVal: 499,\n welcomeBackRenewalVal: 999,\n subscription_RenewalVal: 749\n },\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 549,\n welcomeBackRenewalVal: 1099,\n subscription_RenewalVal: 849\n },\n {\n supportPlanVal: 'Ultimate',\n earlyRenewalVal: 749,\n welcomeBackRenewalVal: 1499,\n subscription_RenewalVal: 1249\n }\n ]\n }\n ],\n ...this.settings.productSettings\n },\n {\n name: 'UI for ASP.NET Core',\n productRows: [\n {\n name: 'UI for ASP.NET Core',\n editions: [\n {\n supportPlanVal: 'Lite',\n earlyRenewalVal: 499,\n welcomeBackRenewalVal: 999,\n subscription_RenewalVal: 749\n },\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 549,\n welcomeBackRenewalVal: 1099,\n subscription_RenewalVal: 849\n },\n {\n supportPlanVal: 'Ultimate',\n earlyRenewalVal: 749,\n welcomeBackRenewalVal: 1499,\n subscription_RenewalVal: 1249\n }\n ]\n }\n ],\n ...this.settings.productSettings\n },\n {\n name: 'UI for ASP.NET MVC',\n productRows: [\n {\n name: 'UI for ASP.NET MVC',\n editions: [\n {\n supportPlanVal: 'Lite',\n earlyRenewalVal: 499,\n welcomeBackRenewalVal: 999,\n subscription_RenewalVal: 749\n },\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 549,\n welcomeBackRenewalVal: 1099,\n subscription_RenewalVal: 849\n },\n {\n supportPlanVal: 'Ultimate',\n earlyRenewalVal: 749,\n welcomeBackRenewalVal: 1499,\n subscription_RenewalVal: 1249\n }\n ]\n }\n ],\n ...this.settings.productSettings\n },\n {\n name: 'UI for ASP.NET AJAX',\n productRows: [\n {\n name: 'UI for ASP.NET AJAX',\n editions: [\n {\n supportPlanVal: 'Lite',\n earlyRenewalVal: 499,\n welcomeBackRenewalVal: 999,\n subscription_RenewalVal: 749\n },\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 549,\n welcomeBackRenewalVal: 1099,\n subscription_RenewalVal: 849\n },\n {\n supportPlanVal: 'Ultimate',\n earlyRenewalVal: 749,\n welcomeBackRenewalVal: 1499,\n subscription_RenewalVal: 1249\n }\n ]\n }\n ],\n ...this.settings.productSettings\n }\n ],\n\n Mobile: [\n {\n name: 'UI for .NET MAUI',\n productRows: [\n {\n name: 'UI for .NET MAUI',\n editions: [\n {\n supportPlanVal: 'Lite',\n earlyRenewalVal: 499,\n welcomeBackRenewalVal: 999,\n subscription_RenewalVal: 749\n },\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 549,\n welcomeBackRenewalVal: 1099,\n subscription_RenewalVal: 849\n },\n {\n supportPlanVal: 'Ultimate',\n earlyRenewalVal: 749,\n welcomeBackRenewalVal: 1499,\n subscription_RenewalVal: 1249\n }\n ]\n }\n ],\n ...this.settings.productSettings\n }\n ],\n\n Desktop: [\n {\n name: 'UI for .NET MAUI',\n productRows: [\n {\n name: 'UI for .NET MAUI',\n editions: [\n {\n supportPlanVal: 'Lite',\n earlyRenewalVal: 499,\n welcomeBackRenewalVal: 999,\n subscription_RenewalVal: 749\n },\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 549,\n welcomeBackRenewalVal: 1099,\n subscription_RenewalVal: 849\n },\n {\n supportPlanVal: 'Ultimate',\n earlyRenewalVal: 749,\n welcomeBackRenewalVal: 1499,\n subscription_RenewalVal: 1249\n }\n ]\n }\n ],\n ...this.settings.productSettings\n },\n {\n name: 'UI for WinForms',\n productRows: [\n {\n name: 'UI for WinForms',\n editions: [\n {\n supportPlanVal: 'Lite',\n earlyRenewalVal: 499,\n welcomeBackRenewalVal: 999,\n subscription_RenewalVal: 749\n },\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 549,\n welcomeBackRenewalVal: 1099,\n subscription_RenewalVal: 849\n },\n {\n supportPlanVal: 'Ultimate',\n earlyRenewalVal: 749,\n welcomeBackRenewalVal: 1499,\n subscription_RenewalVal: 1249\n }\n ]\n }\n ],\n ...this.settings.productSettings\n },\n {\n name: 'UI for WPF',\n productRows: [\n {\n name: 'UI for WPF',\n editions: [\n {\n supportPlanVal: 'Lite',\n earlyRenewalVal: 499,\n welcomeBackRenewalVal: 999,\n subscription_RenewalVal: 749\n },\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 549,\n welcomeBackRenewalVal: 1099,\n subscription_RenewalVal: 849\n },\n {\n supportPlanVal: 'Ultimate',\n earlyRenewalVal: 749,\n welcomeBackRenewalVal: 1499,\n subscription_RenewalVal: 1249\n }\n ]\n }\n ],\n ...this.settings.productSettings\n }\n ],\n\n 'Reporting and Mocking': [\n {\n name: 'Telerik Reporting',\n productRows: [\n {\n name: 'Telerik Reporting',\n editions: [\n {\n supportPlanVal: 'Lite',\n earlyRenewalVal: 349,\n welcomeBackRenewalVal: 699,\n subscription_RenewalVal: 499\n },\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 399,\n welcomeBackRenewalVal: 799,\n subscription_RenewalVal: 599\n },\n {\n supportPlanVal: 'Ultimate',\n earlyRenewalVal: 599,\n welcomeBackRenewalVal: 1199,\n subscription_RenewalVal: 999\n }\n ]\n }\n ],\n ...this.settings.productSettings\n },\n {\n name: 'Telerik Report Server',\n productRows: [\n {\n name: 'Telerik Report Server',\n editions: [\n {\n supportPlanVal: 'Lite',\n earlyRenewalVal: 749,\n welcomeBackRenewalVal: 1499,\n subscription_RenewalVal: 1099\n },\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 799,\n welcomeBackRenewalVal: 1599,\n subscription_RenewalVal: 1199\n },\n {\n supportPlanVal: 'Ultimate',\n earlyRenewalVal: 999,\n welcomeBackRenewalVal: 1999,\n subscription_RenewalVal: 1599\n }\n ]\n }\n ],\n ...this.settings.productSettings\n },\n {\n name: 'Telerik JustMock',\n productRows: [\n {\n name: 'Telerik JustMock',\n editions: [\n {\n supportPlanVal: 'Lite',\n earlyRenewalVal: 249,\n welcomeBackRenewalVal: 499,\n subscription_RenewalVal: 349\n },\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 299,\n welcomeBackRenewalVal: 599,\n subscription_RenewalVal: 449\n },\n {\n supportPlanVal: 'Ultimate',\n earlyRenewalVal: 499,\n welcomeBackRenewalVal: 999,\n subscription_RenewalVal: 849\n }\n ]\n }\n ],\n ...this.settings.productSettings\n }\n ],\n\n 'Automated Testing': [\n {\n name: 'Test Studio',\n hideSubscription: true,\n productRows: [\n {\n name: 'Test Studio Web & Desktop',\n editions: [\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 1249,\n lateRenewalVal: 1629,\n welcomeBackRenewalVal: 2249\n }\n ]\n },\n {\n name: 'Test Studio Load',\n editions: [\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 499,\n lateRenewalVal: 649,\n welcomeBackRenewalVal: 899\n }\n ]\n },\n {\n name: 'Test Studio Ultimate',\n editions: [\n {\n supportPlanVal: 'Priority',\n earlyRenewalVal: 1749,\n lateRenewalVal: 2269,\n welcomeBackRenewalVal: 2699\n }\n ]\n },\n {\n name: 'Test Studio Runtime',\n editions: [\n {\n supportPlanVal: 'N/A',\n earlyRenewalVal: 179,\n lateRenewalVal: 229,\n welcomeBackRenewalVal: 319\n }\n ]\n },\n {\n name: 'Test Studio Runtime Unlimited',\n editions: [\n {\n supportPlanVal: 'N/A',\n earlyRenewalVal: 3249,\n lateRenewalVal: 4219,\n welcomeBackRenewalVal: 5199\n }\n ]\n },\n {\n name: 'Test Studio Virtual Users - 100',\n editions: [\n {\n supportPlanVal: 'N/A',\n earlyRenewalVal: 449,\n lateRenewalVal: 589,\n welcomeBackRenewalVal: 809\n }\n ]\n },\n {\n name: 'Test Studio Virtual Users - 1,000',\n editions: [\n {\n supportPlanVal: 'N/A',\n earlyRenewalVal: 1499,\n lateRenewalVal: 1949,\n welcomeBackRenewalVal: 2699\n }\n ]\n },\n {\n name: 'Test Studio Virtual Users - 10,000',\n editions: [\n {\n supportPlanVal: 'N/A',\n earlyRenewalVal: 2499,\n lateRenewalVal: 3249,\n welcomeBackRenewalVal: 4499\n }\n ]\n }\n ],\n ...this.settings.productSettings,\n lateRenewal: {\n name: 'Late Renewal',\n type: 'renewal',\n content: 'Up to 60 days after your maintenance & support subscription plan has expired.',\n highlighted: false,\n specificFor: 'Test Studio'\n },\n welcomeBackRenewal: {\n name: 'Welcome Back Renewal',\n type: 'renewal',\n content: 'When your maintenance & support subscription plan has been expired for more than 60 days.',\n highlighted: true,\n specificFor: 'Test Studio'\n }\n }\n ]\n };\n\n this.renewalPlans = [];\n this.displaySubscriptionPrices = false;\n [this.settings.preselectedGroup, this.settings.preselectedProduct] = this.settings.selectedProduct;\n\n this.init();\n }\n\n init() {\n if (!document.querySelector(this.settings.selectorSelectMenu) || !document.querySelector(this.settings.selectorTable)) {\n throw new Error('PricingRenewals Plugin >>> missing DOM elements for select menu or table wrapper');\n }\n this.createProductSelector();\n this.createSubscriptionSelector();\n PricingRenewals.changeSelectedProduct(\n this.settings.preselectedGroup,\n this.settings.preselectedProduct,\n this.settings.selectorSelectMenu\n );\n }\n\n static createTooltip(packages) {\n let tooltipHTML = '';\n Object.entries(packages).forEach(([supportType, supportFeatures]) => {\n tooltipHTML += `
${supportType}
`;\n supportFeatures.forEach(feature => {\n tooltipHTML += `
${feature}
`;\n });\n });\n return tooltipHTML;\n }\n\n static formatPrice(price, after = '', ifEmpty = '') {\n return price ? `$${price.toLocaleString()}${after}` : ifEmpty;\n }\n\n static changeSelectedProduct(group, product, selectWrap) {\n const selector = document.querySelector(`${selectWrap} select`);\n let newSelectedIndex;\n if (!product || !group) {\n newSelectedIndex = 0;\n }\n else {\n selector.querySelectorAll(`option[data-group=\"${group}\"]`).forEach(option => {\n newSelectedIndex = option.innerText === product ? option.index : newSelectedIndex;\n });\n }\n selector.selectedIndex = newSelectedIndex;\n selector.dispatchEvent(new Event('change'));\n }\n\n createTable(data) {\n const subscription = this.displaySubscriptionPrices;\n const tableWrap = document.createElement('div');\n tableWrap.classList.add('TableWrap');\n const table = document.createElement('table');\n table.classList.add('Table', 'Table--pricelist');\n if (data.lateRenewal) table.classList.add('Table--pricelistFull');\n\n const thead = document.createElement('thead');\n\n // THEAD CONTENT\n const th1 = `${data.name} Editions`;\n const th2 = `\n \n
\n ${data.supportPlan.name}\n
?\n
\n ${PricingRenewals.createTooltip(data.supportPlan.packages)}\n
\n
\n
\n \n `;\n let th_ = '';\n Object.values(data).filter(renewal => renewal && renewal.type === 'renewal').forEach(renewal => {\n if ((subscription && renewal.subscription) || (!subscription && !renewal.subscription)) {\n th_ += `\n \n ${renewal.name}\n
\n ${renewal.content}\n
\n \n `;\n if (this.renewalPlans.indexOf(renewal) < 0) this.renewalPlans.push(renewal);\n }\n });\n\n thead.innerHTML = `${th1}${th2}${th_}`;\n table.append(thead);\n\n // TBODY CONTENT\n let rowContent = '';\n data.productRows.forEach(productRow => {\n const editionsCount = productRow.editions.length;\n const tbody = document.createElement('tbody');\n productRow.editions.forEach((edition, i) => {\n rowContent += `\n ${productRow.name}` : 'class=\"is-row-spanned\" >'}\n ${edition.supportPlanVal}`;\n Object.keys(edition).forEach(renewalPlan => {\n if (renewalPlan === 'supportPlanVal') return;\n if (subscription && renewalPlan.indexOf('subscription_') < 0) return;\n if (!subscription && renewalPlan.indexOf('subscription_') === 0) return;\n rowContent += `${PricingRenewals.formatPrice(edition[renewalPlan])}`;\n });\n rowContent += '';\n });\n tbody.innerHTML = rowContent;\n rowContent = '';\n table.append(tbody);\n });\n\n // LITE TABLE (Generating alternative responsive table for mobile)\n const liteTable = document.createElement('table');\n liteTable.classList.add('Table', 'Table--pricelist', 'LiteTable');\n\n let editionRows = `${data.name} Editions`;\n\n data.productRows.forEach(productRow => {\n productRow.editions.forEach(edition => {\n editionRows += `\n \n \n
${productRow.name}
\n
\n
\n with ${edition.supportPlanVal} ${data.supportPlan.name}\n
?\n
\n ${PricingRenewals.createTooltip(data.supportPlan.packages)}\n
\n
\n
\n
\n \n \n `;\n let availableRenewals = -1;\n Object.keys(edition).forEach(renewalPlan => {\n if (renewalPlan === 'supportPlanVal') return;\n if (subscription && renewalPlan.indexOf('subscription_') < 0) return;\n if (!subscription && renewalPlan.indexOf('subscription_') === 0) return;\n availableRenewals++;\n editionRows += `\n \n \n
\n ${this.renewalPlans[availableRenewals].name}\n ${this.displaySubscriptionPrices ? this.renewalPlans[availableRenewals].content.toLowerCase() : '*'}\n
\n \n ${PricingRenewals.formatPrice(edition[renewalPlan])}\n \n `;\n });\n });\n });\n\n editionRows += '';\n liteTable.innerHTML = editionRows;\n\n // CONSTRUCT THE TABLES\n tableWrap.append(table, liteTable);\n return tableWrap;\n }\n\n changeLicenseType(licenseType = null) {\n // this method changes the selected license type without dispatching a change event on the product selector\n // useful when selected product has `hideSubscription == true` and we need to hide the subscription switcher\n // and enforce the only available `perpetual` license type /example product: Test Studio/\n const switchBtn = document.querySelector(`${this.settings.selectorSubscriptionToggler} .Switch--toggleMode`);\n const currentLicenseType = this.displaySubscriptionPrices ? 'subscription' : 'perpetual';\n\n let desiredLicenseType = licenseType;\n if (!desiredLicenseType) desiredLicenseType = currentLicenseType === 'subscription' ? 'perpetual' : 'subscription';\n if (desiredLicenseType === currentLicenseType) return;\n\n this.displaySubscriptionPrices = desiredLicenseType === 'subscription';\n desiredLicenseType === 'perpetual' ? switchBtn.classList.add('is-active') : switchBtn.classList.remove('is-active');\n\n Array.from(switchBtn.children).filter(el => el.dataset.type).forEach(btn => {\n btn.dataset.type === desiredLicenseType ? btn.classList.add('is-active') : btn.classList.remove('is-active');\n });\n }\n\n selectProductHandler(e) {\n this.renewalPlans = [];\n const product = e.target.value;\n const { dataset: { group } } = e.target.options[e.target.selectedIndex];\n const tableWrapper = document.querySelector(this.settings.selectorTable);\n const subscriptionSwitcher = document.querySelector(this.settings.selectorSubscriptionToggler).parentElement;\n\n tableWrapper.innerHTML = '';\n\n if (product === 'View All') {\n Object.values(this.settings.productGroups).forEach(bundle => {\n bundle.forEach(productData => {\n if (this.displaySubscriptionPrices && productData.hideSubscription) return;\n tableWrapper.append(this.createTable(productData));\n });\n });\n subscriptionSwitcher.hidden = false;\n }\n else {\n const productData = this.settings.productGroups[group].find(prod => prod.name === product);\n if (productData.hideSubscription) {\n subscriptionSwitcher.hidden = true;\n if (this.displaySubscriptionPrices) this.changeLicenseType('perpetual');\n }\n else {\n subscriptionSwitcher.hidden = false;\n }\n tableWrapper.append(this.createTable(productData));\n }\n\n // Add asterisk hints at the bottom for the lite version\n if (!this.displaySubscriptionPrices) {\n const hintsTable = document.createElement('table');\n hintsTable.classList.add('Table', 'Table--pricelist', 'LiteTable', 'LiteTable--hints');\n let renewalPlansHints = '';\n this.renewalPlans.forEach(renewalPlan => {\n renewalPlansHints += `\n
${renewalPlan.name} ${product === 'View All' && renewalPlan.specificFor ? `(${renewalPlan.specificFor})` : ''}
\n
${renewalPlan.content}
\n `;\n });\n hintsTable.innerHTML = `\n \n \n
* Renewals:
\n
\n
\n ${renewalPlansHints}\n
\n
\n \n \n `;\n tableWrapper.append(hintsTable);\n }\n }\n\n createProductSelector() {\n if (!this.settings.productGroups) {\n throw new Error('PricingRenewals plugin >>> missing productGroups object containing product information');\n }\n\n const selector = document.createElement('select');\n const optionAll = document.createElement('option');\n optionAll.innerText = 'View All';\n selector.append(optionAll);\n\n Object.entries(this.settings.productGroups).forEach(([group, products]) => {\n const optgroup = document.createElement('optgroup');\n optgroup.setAttribute('label', group);\n\n products.forEach(product => {\n const option = document.createElement('option');\n option.innerText = product.name;\n option.dataset.group = group;\n optgroup.append(option);\n });\n\n selector.append(optgroup);\n });\n document.querySelector(this.settings.selectorSelectMenu).append(selector);\n selector.setAttribute('aria-label', 'select product');\n selector.addEventListener('change', this.selectProductHandler.bind(this));\n return true;\n }\n\n createSubscriptionSelector() {\n const toggler = document.createElement('button');\n toggler.classList.add('Switch', 'Switch--toggleMode');\n toggler.dataset.tlrkPlugin = 'toggle';\n toggler.dataset.toggle = '.js-renewalToggler, .Switch--toggleMode';\n toggler.dataset.toggleClassName = 'is-active';\n toggler.innerHTML = `\n Subscription\n \n Perpetual\n `;\n document.querySelector(this.settings.selectorSubscriptionToggler).append(toggler);\n toggler.addEventListener('change', e => {\n const activeToggler = e.toggleTargets.find(el => el.dataset.type && el.classList.contains('is-active'));\n this.displaySubscriptionPrices = activeToggler.dataset.type === 'subscription';\n document.querySelector(`${this.settings.selectorSelectMenu} select`).dispatchEvent(new Event('change'));\n });\n this.displaySubscriptionPrices = toggler.querySelector('.js-renewalToggler.is-active').dataset.type === 'subscription';\n }\n}\n\nwindow.PricingRenewals = PricingRenewals;\n"],"names":["PricingRenewals","constructor","settings","this","selectorSelectMenu","selectorTable","selectorSubscriptionToggler","selectedProduct","productSettings","supportPlan","name","type","packages","earlyRenewal","content","highlighted","lateRenewal","welcomeBackRenewal","subscription_Renewal","subscription","productGroups","Bundles","productRows","editions","supportPlanVal","earlyRenewalVal","welcomeBackRenewalVal","subscription_RenewalVal","Web","Mobile","Desktop","hideSubscription","lateRenewalVal","specificFor","renewalPlans","displaySubscriptionPrices","preselectedGroup","preselectedProduct","init","document","querySelector","Error","createProductSelector","createSubscriptionSelector","changeSelectedProduct","createTooltip","tooltipHTML","Object","entries","forEach","supportType","supportFeatures","feature","formatPrice","price","after","ifEmpty","toLocaleString","group","product","selectWrap","selector","newSelectedIndex","querySelectorAll","option","innerText","index","selectedIndex","dispatchEvent","Event","createTable","data","tableWrap","createElement","classList","add","table","thead","th1","th2","th_","values","filter","renewal","indexOf","push","innerHTML","append","rowContent","productRow","editionsCount","length","tbody","edition","i","keys","renewalPlan","liteTable","editionRows","availableRenewals","toLowerCase","changeLicenseType","licenseType","switchBtn","currentLicenseType","desiredLicenseType","remove","Array","from","children","el","dataset","btn","selectProductHandler","e","target","value","options","tableWrapper","subscriptionSwitcher","parentElement","bundle","productData","hidden","find","prod","hintsTable","renewalPlansHints","optionAll","products","optgroup","setAttribute","addEventListener","bind","toggler","tlrkPlugin","toggle","toggleClassName","activeToggler","toggleTargets","contains","window"],"mappings":"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"}