diff --git a/libs/blocks/merch/merch.js b/libs/blocks/merch/merch.js index 6fb4b58ea7..48f1932038 100644 --- a/libs/blocks/merch/merch.js +++ b/libs/blocks/merch/merch.js @@ -44,6 +44,104 @@ export const CC_SINGLE_APPS = [ ['XD'], ]; +const GeoMap = { + ar: 'AR_es', + be_en: 'BE_en', + be_fr: 'BE_fr', + be_nl: 'BE_nl', + br: 'BR_pt', + ca: 'CA_en', + ch_de: 'CH_de', + ch_fr: 'CH_fr', + ch_it: 'CH_it', + cl: 'CL_es', + co: 'CO_es', + la: 'DO_es', + mx: 'MX_es', + pe: 'PE_es', + africa: 'MU_en', + dk: 'DK_da', + de: 'DE_de', + ee: 'EE_et', + eg_ar: 'EG_ar', + eg_en: 'EG_en', + es: 'ES_es', + fr: 'FR_fr', + gr_el: 'GR_el', + gr_en: 'GR_en', + ie: 'IE_en', + il_he: 'IL_iw', + it: 'IT_it', + lv: 'LV_lv', + lt: 'LT_lt', + lu_de: 'LU_de', + lu_en: 'LU_en', + lu_fr: 'LU_fr', + my_en: 'MY_en', + my_ms: 'MY_ms', + hu: 'HU_hu', + mt: 'MT_en', + mena_en: 'DZ_en', + mena_ar: 'DZ_ar', + nl: 'NL_nl', + no: 'NO_nb', + pl: 'PL_pl', + pt: 'PT_pt', + ro: 'RO_ro', + si: 'SI_sl', + sk: 'SK_sk', + fi: 'FI_fi', + se: 'SE_sv', + tr: 'TR_tr', + uk: 'GB_en', + at: 'AT_de', + cz: 'CZ_cs', + bg: 'BG_bg', + ru: 'RU_ru', + ua: 'UA_uk', + au: 'AU_en', + in_en: 'IN_en', + in_hi: 'IN_hi', + id_en: 'ID_en', + id_id: 'ID_in', + nz: 'NZ_en', + sa_ar: 'SA_ar', + sa_en: 'SA_en', + sg: 'SG_en', + cn: 'CN_zh-Hans', + tw: 'TW_zh-Hant', + hk_zh: 'HK_zh-hant', + jp: 'JP_ja', + kr: 'KR_ko', + za: 'ZA_en', + ng: 'NG_en', + cr: 'CR_es', + ec: 'EC_es', + pr: 'US_es', // not a typo, should be US + gt: 'GT_es', + cis_en: 'AZ_en', + cis_ru: 'AZ_ru', + sea: 'SG_en', + th_en: 'TH_en', + th_th: 'TH_th', +}; + +export function getMiloLocaleSettings(locale) { + const localePrefix = locale?.prefix || 'US_en'; + const geo = localePrefix.replace('/', '') ?? ''; + let [country = 'US', language = 'en'] = ( + GeoMap[geo] ?? geo + ).split('_', 2); + + country = country.toUpperCase(); + language = language.toLowerCase(); + + return { + language, + locale: `${language}_${country}`, + }; +} + /* Optional checkout link params that are appended to checkout urls as is */ export const CHECKOUT_ALLOWED_KEYS = [ 'af', @@ -420,7 +518,7 @@ export async function initService(force = false) { fetchEntitlements.promise = undefined; fetchCheckoutLinkConfigs.promise = undefined; } - const { env, commerce = {}, locale } = getConfig(); + const { env, locale: miloLocale } = getConfig(); initService.promise = initService.promise ?? polyfills().then(async () => { const { hostname, searchParams } = new URL(window.location.href); let commerceLibPath = '../../deps/mas/commerce.js'; @@ -430,17 +528,22 @@ export async function initService(force = false) { commerceLibPath = `${getMasBase(hostname, maslibs)}/libs/commerce.js`; } } - const commerceLib = await import(commerceLibPath); - const service = await commerceLib.init(() => ({ - env, - commerce, - locale, - }), () => ({ getCheckoutAction, force })); - service.imsSignedInPromise.then((isSignedIn) => { - if (isSignedIn) { - fetchEntitlements(); - } - }); + await import(commerceLibPath); + const { language, locale } = getMiloLocaleSettings(miloLocale); + let service = document.querySelector('mas-commerce-service'); + if (service && force) { + service.remove(); + } + if (!service) { + service = createTag('mas-commerce-service', { env: env?.name, locale, language }); + document.head.append(service); + await service.promise; + service.imsSignedInPromise?.then((isSignedIn) => { + if (isSignedIn) { + fetchEntitlements(); + } + }); + } return service; }); return initService.promise; diff --git a/libs/blocks/ost/ost.js b/libs/blocks/ost/ost.js index 14232a9606..ed97c34f7e 100644 --- a/libs/blocks/ost/ost.js +++ b/libs/blocks/ost/ost.js @@ -98,7 +98,8 @@ export const createLinkMarkup = ( export async function loadOstEnv() { /* c8 ignore next */ - const { Log, Defaults, getLocaleSettings } = await import('../../deps/mas/commerce.js'); + const { Log, Defaults } = await import('../../deps/mas/commerce.js'); + const { getLocaleSettings } = await import('../merch/merch.js'); const searchParameters = new URLSearchParams(window.location.search); const ostSearchParameters = new URLSearchParams(); diff --git a/libs/deps/mas/commerce.js b/libs/deps/mas/commerce.js index e1afe935b7..e5ec334410 100644 --- a/libs/deps/mas/commerce.js +++ b/libs/deps/mas/commerce.js @@ -1,3 +1,4778 @@ -var Jn=Object.create;var Xe=Object.defineProperty;var Qn=Object.getOwnPropertyDescriptor;var ei=Object.getOwnPropertyNames;var ti=Object.getPrototypeOf,ri=Object.prototype.hasOwnProperty;var ni=(e,t,n)=>t in e?Xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ii=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ai=(e,t)=>{for(var n in t)Xe(e,n,{get:t[n],enumerable:!0})},oi=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ei(t))!ri.call(e,i)&&i!==n&&Xe(e,i,{get:()=>t[i],enumerable:!(r=Qn(t,i))||r.enumerable});return e};var si=(e,t,n)=>(n=e!=null?Jn(ti(e)):{},oi(t||!e||!e.__esModule?Xe(n,"default",{value:e,enumerable:!0}):n,e));var Q=(e,t,n)=>(ni(e,typeof t!="symbol"?t+"":t,n),n),wr=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)};var _t=(e,t,n)=>(wr(e,t,"read from private field"),n?n.call(e):t.get(e)),kr=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},It=(e,t,n,r)=>(wr(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);var zn=ii((Il,ro)=>{ro.exports={total:38,offset:0,limit:38,data:[{lang:"ar",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u0627\u0644\u0634\u0647\u0631} YEAR {/\u0627\u0644\u0639\u0627\u0645} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u0643\u0644 \u0634\u0647\u0631} YEAR {\u0643\u0644 \u0639\u0627\u0645} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u0644\u0643\u0644 \u062A\u0631\u062E\u064A\u0635} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u0644\u0643\u0644 \u062A\u0631\u062E\u064A\u0635} other {}}",freeLabel:"\u0645\u062C\u0627\u0646\u064B\u0627",freeAriaLabel:"\u0645\u062C\u0627\u0646\u064B\u0627",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"\u0623\u0648 \u0628\u062F\u0644\u0627\u064B \u0645\u0646 \u0630\u0644\u0643 \u0628\u0642\u064A\u0645\u0629 {alternativePrice}",strikethroughAriaLabel:"\u0628\u0634\u0643\u0644 \u0645\u0646\u062A\u0638\u0645 \u0628\u0642\u064A\u0645\u0629 {strikethroughPrice}"},{lang:"bg",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u043C\u0435\u0441.} YEAR {/\u0433\u043E\u0434.} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u043D\u0430 \u043C\u0435\u0441\u0435\u0446} YEAR {\u043D\u0430 \u0433\u043E\u0434\u0438\u043D\u0430} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u043D\u0430 \u043B\u0438\u0446\u0435\u043D\u0437} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u043D\u0430 \u043B\u0438\u0446\u0435\u043D\u0437} other {}}",freeLabel:"\u0411\u0435\u0437\u043F\u043B\u0430\u0442\u043D\u043E",freeAriaLabel:"\u0411\u0435\u0437\u043F\u043B\u0430\u0442\u043D\u043E",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"\u0410\u043B\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u043E \u043D\u0430 {alternativePrice}",strikethroughAriaLabel:"\u0420\u0435\u0434\u043E\u0432\u043D\u043E \u043D\u0430 {strikethroughPrice}"},{lang:"cs",recurrenceLabel:"{recurrenceTerm, select, MONTH {/m\u011Bs\xEDc} YEAR {/rok} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {za m\u011Bs\xEDc} YEAR {za rok} other {}}",perUnitLabel:"{perUnit, select, LICENSE {za licenci} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {za licenci} other {}}",freeLabel:"Zdarma",freeAriaLabel:"Zdarma",taxExclusiveLabel:"{taxTerm, select, GST {bez dan\u011B ze zbo\u017E\xED a slu\u017Eeb} VAT {bez DPH} TAX {bez dan\u011B} IVA {bez IVA} SST {bez SST} KDV {bez KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {v\u010Detn\u011B dan\u011B ze zbo\u017E\xED a slu\u017Eeb} VAT {v\u010Detn\u011B DPH} TAX {v\u010Detn\u011B dan\u011B} IVA {v\u010Detn\u011B IVA} SST {v\u010Detn\u011B SST} KDV {v\u010Detn\u011B KDV} other {}}",alternativePriceAriaLabel:"P\u0159\xEDpadn\u011B za {alternativePrice}",strikethroughAriaLabel:"Pravideln\u011B za {strikethroughPrice}"},{lang:"da",recurrenceLabel:"{recurrenceTerm, select, MONTH {/md} YEAR {/\xE5r} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {pr. m\xE5ned} YEAR {pr. \xE5r} other {}}",perUnitLabel:"{perUnit, select, LICENSE {pr. licens} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {pr. licens} other {}}",freeLabel:"Gratis",freeAriaLabel:"Gratis",taxExclusiveLabel:"{taxTerm, select, GST {ekskl. GST} VAT {ekskl. moms} TAX {ekskl. skat} IVA {ekskl. IVA} SST {ekskl. SST} KDV {ekskl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {inkl. GST} VAT {inkl. moms} TAX {inkl. skat} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}",alternativePriceAriaLabel:"Alternativt til {alternativePrice}",strikethroughAriaLabel:"Normalpris {strikethroughPrice}"},{lang:"de",recurrenceLabel:"{recurrenceTerm, select, MONTH {/Monat} YEAR {/Jahr} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {pro Monat} YEAR {pro Jahr} other {}}",perUnitLabel:"{perUnit, select, LICENSE {pro Lizenz} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {pro Lizenz} other {}}",freeLabel:"Kostenlos",freeAriaLabel:"Kostenlos",taxExclusiveLabel:"{taxTerm, select, GST {zzgl. GST} VAT {zzgl. MwSt.} TAX {zzgl. Steuern} IVA {zzgl. IVA} SST {zzgl. SST} KDV {zzgl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {inkl. GST} VAT {inkl. MwSt.} TAX {inkl. Steuern} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}",alternativePriceAriaLabel:"Alternativ: {alternativePrice}",strikethroughAriaLabel:"Regul\xE4r: {strikethroughPrice}"},{lang:"en",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mo} YEAR {/yr} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per month} YEAR {per year} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per license} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per license} other {}}",freeLabel:"Free",freeAriaLabel:"Free",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Alternatively at {alternativePrice}",strikethroughAriaLabel:"Regularly at {strikethroughPrice}"},{lang:"et",recurrenceLabel:"{recurrenceTerm, select, MONTH {kuus} YEAR {aastas} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {kuus} YEAR {aastas} other {}}",perUnitLabel:"{perUnit, select, LICENSE {litsentsi kohta} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {litsentsi kohta} other {}}",freeLabel:"Tasuta",freeAriaLabel:"Tasuta",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Teise v\xF5imalusena hinnaga {alternativePrice}",strikethroughAriaLabel:"Tavahind {strikethroughPrice}"},{lang:"fi",recurrenceLabel:"{recurrenceTerm, select, MONTH {/kk} YEAR {/v} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {kuukausittain} YEAR {vuosittain} other {}}",perUnitLabel:"{perUnit, select, LICENSE {k\xE4ytt\xF6oikeutta kohti} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {k\xE4ytt\xF6oikeutta kohti} other {}}",freeLabel:"Maksuton",freeAriaLabel:"Maksuton",taxExclusiveLabel:"{taxTerm, select, GST {ilman GST:t\xE4} VAT {ilman ALV:t\xE4} TAX {ilman veroja} IVA {ilman IVA:ta} SST {ilman SST:t\xE4} KDV {ilman KDV:t\xE4} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {sis. GST:n} VAT {sis. ALV:n} TAX {sis. verot} IVA {sis. IVA:n} SST {sis. SST:n} KDV {sis. KDV:n} other {}}",alternativePriceAriaLabel:"Vaihtoehtoisesti hintaan {alternativePrice}",strikethroughAriaLabel:"S\xE4\xE4nn\xF6llisesti hintaan {strikethroughPrice}"},{lang:"fr",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mois} YEAR {/an} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {par mois} YEAR {par an} other {}}",perUnitLabel:"{perUnit, select, LICENSE {par licence} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {par licence} other {}}",freeLabel:"Gratuit",freeAriaLabel:"Gratuit",taxExclusiveLabel:"{taxTerm, select, GST {hors TPS} VAT {hors TVA} TAX {hors taxes} IVA {hors IVA} SST {hors SST} KDV {hors KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {TPS comprise} VAT {TVA comprise} TAX {taxes comprises} IVA {IVA comprise} SST {SST comprise} KDV {KDV comprise} other {}}",alternativePriceAriaLabel:"Autre prix {alternativePrice}",strikethroughAriaLabel:"Prix habituel {strikethroughPrice}"},{lang:"he",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u05D7\u05D5\u05D3\u05E9} YEAR {/\u05E9\u05E0\u05D4} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u05DC\u05D7\u05D5\u05D3\u05E9} YEAR {\u05DC\u05E9\u05E0\u05D4} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}",freeLabel:"\u05D7\u05D9\u05E0\u05DD",freeAriaLabel:"\u05D7\u05D9\u05E0\u05DD",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"\u05DC\u05D7\u05DC\u05D5\u05E4\u05D9\u05DF \u05D1-{alternativePrice}",strikethroughAriaLabel:"\u05D1\u05D0\u05D5\u05E4\u05DF \u05E7\u05D1\u05D5\u05E2 \u05D1-{strikethroughPrice}"},{lang:"hu",recurrenceLabel:"{recurrenceTerm, select, MONTH {/h\xF3} YEAR {/\xE9v} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {havonta} YEAR {\xE9vente} other {}}",perUnitLabel:"{perUnit, select, LICENSE {licencenk\xE9nt} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {licencenk\xE9nt} other {}}",freeLabel:"Ingyenes",freeAriaLabel:"Ingyenes",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"M\xE1sik lehet\u0151s\xE9g: {alternativePrice}",strikethroughAriaLabel:"\xC1ltal\xE1ban {strikethroughPrice} \xE1ron"},{lang:"it",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mese} YEAR {/anno} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {al mese} YEAR {all'anno} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per licenza} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per licenza} other {}}",freeLabel:"Gratuito",freeAriaLabel:"Gratuito",taxExclusiveLabel:"{taxTerm, select, GST {escl. GST} VAT {escl. IVA.} TAX {escl. imposte} IVA {escl. IVA} SST {escl. SST} KDV {escl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. IVA} TAX {incl. imposte} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"In alternativa a {alternativePrice}",strikethroughAriaLabel:"Regolarmente a {strikethroughPrice}"},{lang:"ja",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u6708} YEAR {/\u5E74} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u6BCE\u6708} YEAR {\u6BCE\u5E74} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u30E9\u30A4\u30BB\u30F3\u30B9\u3054\u3068} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u30E9\u30A4\u30BB\u30F3\u30B9\u3054\u3068} other {}}",freeLabel:"\u7121\u6599",freeAriaLabel:"\u7121\u6599",taxExclusiveLabel:"{taxTerm, select, GST {GST \u5225} VAT {VAT \u5225} TAX {\u7A0E\u5225} IVA {IVA \u5225} SST {SST \u5225} KDV {KDV \u5225} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {GST \u8FBC} VAT {VAT \u8FBC} TAX {\u7A0E\u8FBC} IVA {IVA \u8FBC} SST {SST \u8FBC} KDV {KDV \u8FBC} other {}}",alternativePriceAriaLabel:"\u7279\u5225\u4FA1\u683C : {alternativePrice}",strikethroughAriaLabel:"\u901A\u5E38\u4FA1\u683C : {strikethroughPrice}"},{lang:"ko",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\uC6D4} YEAR {/\uB144} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\uC6D4\uAC04} YEAR {\uC5F0\uAC04} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\uB77C\uC774\uC120\uC2A4\uB2F9} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\uB77C\uC774\uC120\uC2A4\uB2F9} other {}}",freeLabel:"\uBB34\uB8CC",freeAriaLabel:"\uBB34\uB8CC",taxExclusiveLabel:"{taxTerm, select, GST {GST \uC81C\uC678} VAT {VAT \uC81C\uC678} TAX {\uC138\uAE08 \uC81C\uC678} IVA {IVA \uC81C\uC678} SST {SST \uC81C\uC678} KDV {KDV \uC81C\uC678} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {GST \uD3EC\uD568} VAT {VAT \uD3EC\uD568} TAX {\uC138\uAE08 \uD3EC\uD568} IVA {IVA \uD3EC\uD568} SST {SST \uD3EC\uD568} KDV {KDV \uD3EC\uD568} other {}}",alternativePriceAriaLabel:"\uB610\uB294 {alternativePrice}\uC5D0",strikethroughAriaLabel:"\uB610\uB294 {alternativePrice}\uC5D0"},{lang:"lt",recurrenceLabel:"{recurrenceTerm, select, MONTH { per m\u0117n.} YEAR { per metus} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per m\u0117n.} YEAR {per metus} other {}}",perUnitLabel:"{perUnit, select, LICENSE {u\u017E licencij\u0105} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {u\u017E licencij\u0105} other {}}",freeLabel:"Nemokamai",freeAriaLabel:"Nemokamai",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Arba u\u017E {alternativePrice}",strikethroughAriaLabel:"Normaliai u\u017E {strikethroughPrice}"},{lang:"lv",recurrenceLabel:"{recurrenceTerm, select, MONTH {m\u0113nes\u012B} YEAR {gad\u0101} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {m\u0113nes\u012B} YEAR {gad\u0101} other {}}",perUnitLabel:"{perUnit, select, LICENSE {vienai licencei} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {vienai licencei} other {}}",freeLabel:"Bezmaksas",freeAriaLabel:"Bezmaksas",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Alternat\u012Bvi par {alternativePrice}",strikethroughAriaLabel:"Regul\u0101ri par {strikethroughPrice}"},{lang:"nb",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mnd.} YEAR {/\xE5r} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per m\xE5ned} YEAR {per \xE5r} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per lisens} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per lisens} other {}}",freeLabel:"Fri",freeAriaLabel:"Fri",taxExclusiveLabel:"{taxTerm, select, GST {ekskl. GST} VAT {ekskl. moms} TAX {ekskl. avgift} IVA {ekskl. IVA} SST {ekskl. SST} KDV {ekskl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {inkl. GST} VAT {inkl. moms} TAX {inkl. avgift} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}",alternativePriceAriaLabel:"Alternativt til {alternativePrice}",strikethroughAriaLabel:"Regelmessig til {strikethroughPrice}"},{lang:"nl",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mnd} YEAR {/jr} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per maand} YEAR {per jaar} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per licentie} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per licentie} other {}}",freeLabel:"Gratis",freeAriaLabel:"Gratis",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. btw} TAX {excl. belasting} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. btw} TAX {incl. belasting} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Nu {alternativePrice}",strikethroughAriaLabel:"Normaal {strikethroughPrice}"},{lang:"pl",recurrenceLabel:"{recurrenceTerm, select, MONTH { / mies.} YEAR { / rok} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH { / miesi\u0105c} YEAR { / rok} other {}}",perUnitLabel:"{perUnit, select, LICENSE {za licencj\u0119} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {za licencj\u0119} other {}}",freeLabel:"Bezp\u0142atne",freeAriaLabel:"Bezp\u0142atne",taxExclusiveLabel:"{taxTerm, select, GST {bez GST} VAT {bez VAT} TAX {netto} IVA {bez IVA} SST {bez SST} KDV {bez KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {z GST} VAT {z VAT} TAX {brutto} IVA {z IVA} SST {z SST} KDV {z KDV} other {}}",alternativePriceAriaLabel:"Lub za {alternativePrice}",strikethroughAriaLabel:"Cena zwyk\u0142a: {strikethroughPrice}"},{lang:"pt",recurrenceLabel:"{recurrenceTerm, select, MONTH {/m\xEAs} YEAR {/ano} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {por m\xEAs} YEAR {por ano} other {}}",perUnitLabel:"{perUnit, select, LICENSE {por licen\xE7a} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {por licen\xE7a} other {}}",freeLabel:"Gratuito",freeAriaLabel:"Gratuito",taxExclusiveLabel:"{taxTerm, select, GST {ICMS n\xE3o incluso} VAT {IVA n\xE3o incluso} TAX {impostos n\xE3o inclusos} IVA {IVA n\xE3o incluso} SST { SST n\xE3o incluso} KDV {KDV n\xE3o incluso} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {ICMS incluso} VAT {IVA incluso} TAX {impostos inclusos} IVA {IVA incluso} SST {SST incluso} KDV {KDV incluso} other {}}",alternativePriceAriaLabel:"Ou a {alternativePrice}",strikethroughAriaLabel:"Pre\xE7o normal: {strikethroughPrice}"},{lang:"ro",recurrenceLabel:"{recurrenceTerm, select, MONTH {/lun\u0103} YEAR {/an} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {pe lun\u0103} YEAR {pe an} other {}}",perUnitLabel:"{perUnit, select, LICENSE {pe licen\u021B\u0103} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {pe licen\u021B\u0103} other {}}",freeLabel:"Gratuit",freeAriaLabel:"Gratuit",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Alternativ, la {alternativePrice}",strikethroughAriaLabel:"\xCEn mod normal, la {strikethroughPrice}"},{lang:"ru",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u043C\u0435\u0441.} YEAR {/\u0433.} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u0432 \u043C\u0435\u0441\u044F\u0446} YEAR {\u0432 \u0433\u043E\u0434} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u044E} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u044E} other {}}",freeLabel:"\u0411\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E",freeAriaLabel:"\u0411\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E",taxExclusiveLabel:"{taxTerm, select, GST {\u0438\u0441\u043A\u043B. \u043D\u0430\u043B\u043E\u0433 \u043D\u0430 \u0442\u043E\u0432\u0430\u0440\u044B \u0438 \u0443\u0441\u043B\u0443\u0433\u0438} VAT {\u0438\u0441\u043A\u043B. \u041D\u0414\u0421} TAX {\u0438\u0441\u043A\u043B. \u043D\u0430\u043B\u043E\u0433} IVA {\u0438\u0441\u043A\u043B. \u0418\u0412\u0410} SST {\u0438\u0441\u043A\u043B. SST} KDV {\u0438\u0441\u043A\u043B. \u041A\u0414\u0412} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {\u0432\u043A\u043B. \u043D\u0430\u043B\u043E\u0433 \u043D\u0430 \u0442\u043E\u0432\u0430\u0440\u044B \u0438 \u0443\u0441\u043B\u0443\u0433\u0438} VAT {\u0432\u043A\u043B. \u041D\u0414\u0421} TAX {\u0432\u043A\u043B. \u043D\u0430\u043B\u043E\u0433} IVA {\u0432\u043A\u043B. \u0418\u0412\u0410} SST {\u0432\u043A\u043B. SST} KDV {\u0432\u043A\u043B. \u041A\u0414\u0412} other {}}",alternativePriceAriaLabel:"\u0410\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0437\u0430 {alternativePrice}",strikethroughAriaLabel:"\u0420\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u043E \u043F\u043E \u0446\u0435\u043D\u0435 {strikethroughPrice}"},{lang:"sk",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mesiac} YEAR {/rok} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {za mesiac} YEAR {za rok} other {}}",perUnitLabel:"{perUnit, select, LICENSE {za licenciu} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {za licenciu} other {}}",freeLabel:"Zadarmo",freeAriaLabel:"Zadarmo",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Pr\xEDpadne za {alternativePrice}",strikethroughAriaLabel:"Pravidelne za {strikethroughPrice}"},{lang:"sl",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mesec} YEAR {/leto} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {na mesec} YEAR {na leto} other {}}",perUnitLabel:"{perUnit, select, LICENSE {na licenco} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {na licenco} other {}}",freeLabel:"Brezpla\u010Dno",freeAriaLabel:"Brezpla\u010Dno",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Druga mo\u017Enost je: {alternativePrice}",strikethroughAriaLabel:"Redno po {strikethroughPrice}"},{lang:"sv",recurrenceLabel:"{recurrenceTerm, select, MONTH {/m\xE5n} YEAR {/\xE5r} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per m\xE5nad} YEAR {per \xE5r} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per licens} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per licens} other {}}",freeLabel:"Kostnadsfritt",freeAriaLabel:"Kostnadsfritt",taxExclusiveLabel:"{taxTerm, select, GST {exkl. GST} VAT {exkl. moms} TAX {exkl. skatt} IVA {exkl. IVA} SST {exkl. SST} KDV {exkl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {inkl. GST} VAT {inkl. moms} TAX {inkl. skatt} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}",alternativePriceAriaLabel:"Alternativt f\xF6r {alternativePrice}",strikethroughAriaLabel:"Normalpris {strikethroughPrice}"},{lang:"tr",recurrenceLabel:"{recurrenceTerm, select, MONTH {/ay} YEAR {/y\u0131l} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {(ayl\u0131k)} YEAR {(y\u0131ll\u0131k)} other {}}",perUnitLabel:"{perUnit, select, LICENSE {(lisans ba\u015F\u0131na)} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {(lisans ba\u015F\u0131na)} other {}}",freeLabel:"\xDCcretsiz",freeAriaLabel:"\xDCcretsiz",taxExclusiveLabel:"{taxTerm, select, GST {GST hari\xE7} VAT {KDV hari\xE7} TAX {vergi hari\xE7} IVA {IVA hari\xE7} SST {SST hari\xE7} KDV {KDV hari\xE7} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {GST dahil} VAT {KDV dahil} TAX {vergi dahil} IVA {IVA dahil} SST {SST dahil} KDV {KDV dahil} other {}}",alternativePriceAriaLabel:"Ya da {alternativePrice}",strikethroughAriaLabel:"Standart fiyat: {strikethroughPrice}"},{lang:"uk",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u043C\u0456\u0441.} YEAR {/\u0440\u0456\u043A} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u043D\u0430 \u043C\u0456\u0441\u044F\u0446\u044C} YEAR {\u043D\u0430 \u0440\u0456\u043A} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0456\u0446\u0435\u043D\u0437\u0456\u044E} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0456\u0446\u0435\u043D\u0437\u0456\u044E} other {}}",freeLabel:"\u0411\u0435\u0437\u043A\u043E\u0448\u0442\u043E\u0432\u043D\u043E",freeAriaLabel:"\u0411\u0435\u0437\u043A\u043E\u0448\u0442\u043E\u0432\u043D\u043E",taxExclusiveLabel:"{taxTerm, select, GST {\u0431\u0435\u0437 GST} VAT {\u0431\u0435\u0437 \u041F\u0414\u0412} TAX {\u0431\u0435\u0437 \u043F\u043E\u0434\u0430\u0442\u043A\u0443} IVA {\u0431\u0435\u0437 IVA} SST {\u0431\u0435\u0437 SST} KDV {\u0431\u0435\u0437 KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 GST} VAT {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 \u041F\u0414\u0412} TAX {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 \u043F\u043E\u0434\u0430\u0442\u043A\u043E\u043C} IVA {\u0440\u0430\u0437\u043E\u043C \u0437 IVA} SST {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 SST} KDV {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 KDV} other {}}",alternativePriceAriaLabel:"\u0410\u0431\u043E \u0437\u0430 {alternativePrice}",strikethroughAriaLabel:"\u0417\u0432\u0438\u0447\u0430\u0439\u043D\u0430 \u0446\u0456\u043D\u0430 {strikethroughPrice}"},{lang:"zh-hans",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u6708} YEAR {/\u5E74} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u6BCF\u6708} YEAR {\u6BCF\u5E74} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u6BCF\u4E2A\u8BB8\u53EF\u8BC1} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u6BCF\u4E2A\u8BB8\u53EF\u8BC1} other {}}",freeLabel:"\u514D\u8D39",freeAriaLabel:"\u514D\u8D39",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"\u6216\u5B9A\u4EF7 {alternativePrice}",strikethroughAriaLabel:"\u6B63\u5E38\u4EF7 {strikethroughPrice}"},{lang:"zh-hant",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u6708} YEAR {/\u5E74} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u6BCF\u6708} YEAR {\u6BCF\u5E74} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u6BCF\u500B\u6388\u6B0A} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u6BCF\u500B\u6388\u6B0A} other {}}",freeLabel:"\u514D\u8CBB",freeAriaLabel:"\u514D\u8CBB",taxExclusiveLabel:"{taxTerm, select, GST {\u4E0D\u542B GST} VAT {\u4E0D\u542B VAT} TAX {\u4E0D\u542B\u7A05} IVA {\u4E0D\u542B IVA} SST {\u4E0D\u542B SST} KDV {\u4E0D\u542B KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {\u542B GST} VAT {\u542B VAT} TAX {\u542B\u7A05} IVA {\u542B IVA} SST {\u542B SST} KDV {\u542B KDV} other {}}",alternativePriceAriaLabel:"\u6216\u8005\u5728 {alternativePrice}",strikethroughAriaLabel:"\u6A19\u6E96\u50F9\u683C\u70BA {strikethroughPrice}"},{lang:"es",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mes} YEAR {/a\xF1o} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {al mes} YEAR {al a\xF1o} other {}}",perUnitLabel:"{perUnit, select, LICENSE {por licencia} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {por licencia} other {}}",freeLabel:"Gratuito",freeAriaLabel:"Gratuito",taxExclusiveLabel:"{taxTerm, select, GST {GST no incluido} VAT {IVA no incluido} TAX {Impuestos no incluidos} IVA {IVA no incluido} SST {SST no incluido} KDV {KDV no incluido} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {GST incluido} VAT {IVA incluido} TAX {Impuestos incluidos} IVA {IVA incluido} SST {SST incluido} KDV {KDV incluido} other {}}",alternativePriceAriaLabel:"Alternativamente por {alternativePrice}",strikethroughAriaLabel:"Normalmente a {strikethroughPrice}"},{lang:"in",recurrenceLabel:"{recurrenceTerm, select, MONTH {/bulan} YEAR {/tahun} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per bulan} YEAR {per tahun} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per lisensi} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per lisensi} other {}}",freeLabel:"Gratis",freeAriaLabel:"Gratis",taxExclusiveLabel:"{taxTerm, select, GST {tidak termasuk PBJ} VAT {tidak termasuk PPN} TAX {tidak termasuk pajak} IVA {tidak termasuk IVA} SST {tidak termasuk SST} KDV {tidak termasuk KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {termasuk PBJ} VAT {termasuk PPN} TAX {termasuk pajak} IVA {termasuk IVA} SST {termasuk SST} KDV {termasuk KDV} other {}}",alternativePriceAriaLabel:"Atau seharga {alternativePrice}",strikethroughAriaLabel:"Normalnya seharga {strikethroughPrice}"},{lang:"vi",recurrenceLabel:"{recurrenceTerm, select, MONTH {/th\xE1ng} YEAR {/n\u0103m} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {m\u1ED7i th\xE1ng} YEAR {m\u1ED7i n\u0103m} other {}}",perUnitLabel:"{perUnit, select, LICENSE {m\u1ED7i gi\u1EA5y ph\xE9p} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {m\u1ED7i gi\u1EA5y ph\xE9p} other {}}",freeLabel:"Mi\u1EC5n ph\xED",freeAriaLabel:"Mi\u1EC5n ph\xED",taxExclusiveLabel:"{taxTerm, select, GST {ch\u01B0a bao g\u1ED3m thu\u1EBF h\xE0ng h\xF3a v\xE0 d\u1ECBch v\u1EE5} VAT {ch\u01B0a bao g\u1ED3m thu\u1EBF GTGT} TAX {ch\u01B0a bao g\u1ED3m thu\u1EBF} IVA {ch\u01B0a bao g\u1ED3m IVA} SST {ch\u01B0a bao g\u1ED3m SST} KDV {ch\u01B0a bao g\u1ED3m KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {(\u0111\xE3 bao g\u1ED3m thu\u1EBF h\xE0ng h\xF3a v\xE0 d\u1ECBch v\u1EE5)} VAT {(\u0111\xE3 bao g\u1ED3m thu\u1EBF GTGT)} TAX {(\u0111\xE3 bao g\u1ED3m thu\u1EBF)} IVA {(\u0111\xE3 bao g\u1ED3m IVA)} SST {(\u0111\xE3 bao g\u1ED3m SST)} KDV {(\u0111\xE3 bao g\u1ED3m KDV)} other {}}",alternativePriceAriaLabel:"Gi\xE1 \u01B0u \u0111\xE3i {alternativePrice}",strikethroughAriaLabel:"Gi\xE1 th\xF4ng th\u01B0\u1EDDng {strikethroughPrice}"},{lang:"th",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u0E40\u0E14\u0E37\u0E2D\u0E19} YEAR {/\u0E1B\u0E35} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u0E15\u0E48\u0E2D\u0E40\u0E14\u0E37\u0E2D\u0E19} YEAR {\u0E15\u0E48\u0E2D\u0E1B\u0E35} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u0E15\u0E48\u0E2D\u0E2A\u0E34\u0E17\u0E18\u0E34\u0E4C\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u0E15\u0E48\u0E2D\u0E2A\u0E34\u0E17\u0E18\u0E34\u0E4C\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19} other {}}",freeLabel:"\u0E1F\u0E23\u0E35",freeAriaLabel:"\u0E1F\u0E23\u0E35",taxExclusiveLabel:"{taxTerm, select, GST {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35 GST} VAT {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 VAT} TAX {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35} IVA {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 IVA} SST {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 SST} KDV {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35 GST} VAT {\u0E23\u0E27\u0E21 VAT} TAX {\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35} IVA {\u0E23\u0E27\u0E21 IVA} SST {\u0E23\u0E27\u0E21 SST} KDV {\u0E23\u0E27\u0E21 KDV} other {}}",alternativePriceAriaLabel:"\u0E23\u0E32\u0E04\u0E32\u0E1E\u0E34\u0E40\u0E28\u0E29 {alternativePrice}",strikethroughAriaLabel:"\u0E23\u0E32\u0E04\u0E32\u0E1B\u0E01\u0E15\u0E34 {strikethroughPrice}"},{lang:"el",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u03BC\u03AE\u03BD\u03B1} YEAR {/\u03AD\u03C4\u03BF\u03C2} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u03BA\u03AC\u03B8\u03B5 \u03BC\u03AE\u03BD\u03B1} YEAR {\u03B1\u03BD\u03AC \u03AD\u03C4\u03BF\u03C2} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u03B1\u03BD\u03AC \u03AC\u03B4\u03B5\u03B9\u03B1 \u03C7\u03C1\u03AE\u03C3\u03B7\u03C2} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u03B1\u03BD\u03AC \u03AC\u03B4\u03B5\u03B9\u03B1 \u03C7\u03C1\u03AE\u03C3\u03B7\u03C2} other {}}",freeLabel:"\u0394\u03C9\u03C1\u03B5\u03AC\u03BD",freeAriaLabel:"\u0394\u03C9\u03C1\u03B5\u03AC\u03BD",taxExclusiveLabel:"{taxTerm, select, GST {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 GST)} VAT {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03A6\u03A0\u0391)} TAX {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C6\u03CC\u03C1\u03BF)} IVA {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 IVA)} SST {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 SST)} KDV {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 KDV)} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 GST)} VAT {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03A6\u03A0\u0391)} TAX {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 \u03C6\u03CC\u03C1\u03BF\u03C5)} IVA {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 IVA)} SST {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 SST)} KDV {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 KDV)} other {}}",alternativePriceAriaLabel:"\u0394\u03B9\u03B1\u03C6\u03BF\u03C1\u03B5\u03C4\u03B9\u03BA\u03AC, {alternativePrice}",strikethroughAriaLabel:"\u039A\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03AE \u03C4\u03B9\u03BC\u03AE {strikethroughPrice}"},{lang:"fil",recurrenceLabel:"{recurrenceTerm, select, MONTH {/buwan} YEAR {/taon} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per buwan} YEAR {per taon} other {}}",perUnitLabel:"{perUnit, select, LICENSE {kada lisensya} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {kada lisensya} other {}}",freeLabel:"Libre",freeAriaLabel:"Libre",taxExclusiveLabel:"{taxTerm, select, GST {hindi kasama ang GST} VAT {hindi kasama ang VAT} TAX {hindi kasama ang Buwis} IVA {hindi kasama ang IVA} SST {hindi kasama ang SST} KDV {hindi kasama ang KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {kasama ang GST} VAT {kasama ang VAT} TAX {kasama ang Buwis} IVA {kasama ang IVA} SST {kasama ang SST} KDV {kasama ang KDV} other {}}",alternativePriceAriaLabel:"Alternatibong nasa halagang {alternativePrice}",strikethroughAriaLabel:"Regular na nasa halagang {strikethroughPrice}"},{lang:"ms",recurrenceLabel:"{recurrenceTerm, select, MONTH {/bulan} YEAR {/tahun} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per bulan} YEAR {per tahun} other {}}",perUnitLabel:"{perUnit, select, LICENSE {setiap lesen} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {setiap lesen} other {}}",freeLabel:"Percuma",freeAriaLabel:"Percuma",taxExclusiveLabel:"{taxTerm, select, GST {kecuali GST} VAT {kecuali VAT} TAX {kecuali Cukai} IVA {kecuali IVA} SST {kecuali SST} KDV {kecuali KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {termasuk GST} VAT {termasuk VAT} TAX {termasuk Cukai} IVA {termasuk IVA} SST {termasuk SST} KDV {termasuk KDV} other {}}",alternativePriceAriaLabel:"Secara alternatif pada {alternativePrice}",strikethroughAriaLabel:"Biasanya pada {strikethroughPrice}"},{lang:"hi",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u092E\u093E\u0939} YEAR {/\u0935\u0930\u094D\u0937} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per \u092E\u093E\u0939} YEAR {per \u0935\u0930\u094D\u0937} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u092A\u094D\u0930\u0924\u093F \u0932\u093E\u0907\u0938\u0947\u0902\u0938} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u092A\u094D\u0930\u0924\u093F \u0932\u093E\u0907\u0938\u0947\u0902\u0938} other {}}",freeLabel:"\u092B\u093C\u094D\u0930\u0940",freeAriaLabel:"\u092B\u093C\u094D\u0930\u0940",taxExclusiveLabel:"{taxTerm, select, GST {GST \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} VAT {VAT \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} TAX {\u0915\u0930 \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} IVA {IVA \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} SST {SST \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} KDV {KDV \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {GST \u0938\u0939\u093F\u0924} VAT {VAT \u0938\u0939\u093F\u0924} TAX {\u0915\u0930 \u0938\u0939\u093F\u0924} IVA {IVA \u0938\u0939\u093F\u0924} SST {SST \u0938\u0939\u093F\u0924} KDV {KDV \u0938\u0939\u093F\u0924} other {}}",alternativePriceAriaLabel:"\u0935\u0948\u0915\u0932\u094D\u092A\u093F\u0915 \u0930\u0942\u092A \u0938\u0947 \u0907\u0938 \u092A\u0930 {alternativePrice}",strikethroughAriaLabel:"\u0928\u093F\u092F\u092E\u093F\u0924 \u0930\u0942\u092A \u0938\u0947 \u0907\u0938 \u092A\u0930 {strikethroughPrice}"},{lang:"iw",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u05D7\u05D5\u05D3\u05E9} YEAR {/\u05E9\u05E0\u05D4} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u05DC\u05D7\u05D5\u05D3\u05E9} YEAR {\u05DC\u05E9\u05E0\u05D4} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}",freeLabel:"\u05D7\u05D9\u05E0\u05DD",freeAriaLabel:"\u05D7\u05D9\u05E0\u05DD",taxExclusiveLabel:'{taxTerm, select, GST {\u05DC\u05DC\u05D0 GST} VAT {\u05DC\u05DC\u05D0 \u05DE\u05E2"\u05DE} TAX {\u05DC\u05DC\u05D0 \u05DE\u05E1} IVA {\u05DC\u05DC\u05D0 IVA} SST {\u05DC\u05DC\u05D0 SST} KDV {\u05DC\u05DC\u05D0 KDV} other {}}',taxInclusiveLabel:'{taxTerm, select, GST {\u05DB\u05D5\u05DC\u05DC GST} VAT {\u05DB\u05D5\u05DC\u05DC \u05DE\u05E2"\u05DE} TAX {\u05DB\u05D5\u05DC\u05DC \u05DE\u05E1} IVA {\u05DB\u05D5\u05DC\u05DC IVA} SST {\u05DB\u05D5\u05DC\u05DC SST} KDV {\u05DB\u05D5\u05DC\u05DC KDV} other {}}',alternativePriceAriaLabel:"\u05DC\u05D7\u05DC\u05D5\u05E4\u05D9\u05DF \u05D1-{alternativePrice}",strikethroughAriaLabel:"\u05D1\u05D0\u05D5\u05E4\u05DF \u05E7\u05D1\u05D5\u05E2 \u05D1-{strikethroughPrice}"}],":type":"sheet"}});var Ie;(function(e){e.STAGE="STAGE",e.PRODUCTION="PRODUCTION",e.LOCAL="LOCAL"})(Ie||(Ie={}));var Nt;(function(e){e.STAGE="STAGE",e.PRODUCTION="PROD",e.LOCAL="LOCAL"})(Nt||(Nt={}));var Ne;(function(e){e.DRAFT="DRAFT",e.PUBLISHED="PUBLISHED"})(Ne||(Ne={}));var se;(function(e){e.V2="UCv2",e.V3="UCv3"})(se||(se={}));var H;(function(e){e.CHECKOUT="checkout",e.CHECKOUT_EMAIL="checkout/email",e.SEGMENTATION="segmentation",e.BUNDLE="bundle",e.COMMITMENT="commitment",e.RECOMMENDATION="recommendation",e.EMAIL="email",e.PAYMENT="payment",e.CHANGE_PLAN_TEAM_PLANS="change-plan/team-upgrade/plans",e.CHANGE_PLAN_TEAM_PAYMENT="change-plan/team-upgrade/payment"})(H||(H={}));var Vt=function(e){var t;return(t=li.get(e))!==null&&t!==void 0?t:e},li=new Map([["countrySpecific","cs"],["quantity","q"],["authCode","code"],["checkoutPromoCode","apc"],["rurl","rUrl"],["curl","cUrl"],["ctxrturl","ctxRtUrl"],["country","co"],["language","lang"],["clientId","cli"],["context","ctx"],["productArrangementCode","pa"],["offerType","ot"],["marketSegment","ms"]]);var Rr=function(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},Dr=function(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(s){o={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a};function de(e,t,n){var r,i;try{for(var a=Rr(Object.entries(e)),o=a.next();!o.done;o=a.next()){var s=Dr(o.value,2),c=s[0],u=s[1],l=Vt(c);u!=null&&n.has(l)&&t.set(l,u)}}catch(p){r={error:p}}finally{try{o&&!o.done&&(i=a.return)&&i.call(a)}finally{if(r)throw r.error}}}function Ye(e){switch(e){case Ie.PRODUCTION:return"https://commerce.adobe.com";default:return"https://commerce-stg.adobe.com"}}function Ke(e,t){var n,r;for(var i in e){var a=e[i];try{for(var o=(n=void 0,Rr(Object.entries(a))),s=o.next();!s.done;s=o.next()){var c=Dr(s.value,2),u=c[0],l=c[1];if(l!=null){var p=Vt(u);t.set("items["+i+"]["+p+"]",l)}}}catch(f){n={error:f}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}}}var ci=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(e);i=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};function Ur(e){hi(e);var t=e.env,n=e.items,r=e.workflowStep,i=ci(e,["env","items","workflowStep"]),a=new URL(Ye(t));return a.pathname=r+"/",Ke(n,a.searchParams),de(i,a.searchParams,fi),a.toString()}var fi=new Set(["cli","co","lang","ctx","cUrl","mv","nglwfdata","otac","promoid","rUrl","sdid","spint","trackingid","code","campaignid","appctxid"]),pi=["env","workflowStep","clientId","country","items"];function hi(e){var t,n;try{for(var r=ui(pi),i=r.next();!i.done;i=r.next()){var a=i.value;if(!e[a])throw new Error('Argument "checkoutData" is not valid, missing: '+a)}}catch(o){t={error:o}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}return!0}var mi=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(e);i=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},Ai="p_draft_landscape",di="/store/";function Ct(e){Ei(e);var t=e.env,n=e.items,r=e.workflowStep,i=e.ms,a=e.marketSegment,o=e.ot,s=e.offerType,c=e.pa,u=e.productArrangementCode,l=e.landscape,p=mi(e,["env","items","workflowStep","ms","marketSegment","ot","offerType","pa","productArrangementCode","landscape"]),f={marketSegment:a??i,offerType:s??o,productArrangementCode:u??c},m=new URL(Ye(t));return m.pathname=""+di+r,r!==H.SEGMENTATION&&r!==H.CHANGE_PLAN_TEAM_PLANS&&Ke(n,m.searchParams),r===H.SEGMENTATION&&de(f,m.searchParams,Ot),de(p,m.searchParams,Ot),l===Ne.DRAFT&&de({af:Ai},m.searchParams,Ot),m.toString()}var Ot=new Set(["af","ai","apc","appctxid","cli","co","csm","ctx","ctxRtUrl","DCWATC","dp","fr","gsp","ijt","lang","lo","mal","ms","mv","mv2","nglwfdata","ot","otac","pa","pcid","promoid","q","rf","sc","scl","sdid","sid","spint","svar","th","thm","trackingid","usid","workflowid","context.guid","so.ca","so.su","so.tr","so.va"]),Si=["env","workflowStep","clientId","country"];function Ei(e){var t,n;try{for(var r=Ti(Si),i=r.next();!i.done;i=r.next()){var a=i.value;if(!e[a])throw new Error('Argument "checkoutData" is not valid, missing: '+a)}}catch(o){t={error:o}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}if(e.workflowStep!==H.SEGMENTATION&&e.workflowStep!==H.CHANGE_PLAN_TEAM_PLANS&&!e.items)throw new Error('Argument "checkoutData" is not valid, missing: items');return!0}function wt(e,t){switch(e){case se.V2:return Ur(t);case se.V3:return Ct(t);default:return console.warn("Unsupported CheckoutType, will use UCv3 as default. Given type: "+e),Ct(t)}}var kt;(function(e){e.BASE="BASE",e.TRIAL="TRIAL",e.PROMOTION="PROMOTION"})(kt||(kt={}));var C;(function(e){e.MONTH="MONTH",e.YEAR="YEAR",e.TWO_YEARS="TWO_YEARS",e.THREE_YEARS="THREE_YEARS",e.PERPETUAL="PERPETUAL",e.TERM_LICENSE="TERM_LICENSE",e.ACCESS_PASS="ACCESS_PASS",e.THREE_MONTHS="THREE_MONTHS",e.SIX_MONTHS="SIX_MONTHS"})(C||(C={}));var N;(function(e){e.ANNUAL="ANNUAL",e.MONTHLY="MONTHLY",e.TWO_YEARS="TWO_YEARS",e.THREE_YEARS="THREE_YEARS",e.P1D="P1D",e.P1Y="P1Y",e.P3Y="P3Y",e.P10Y="P10Y",e.P15Y="P15Y",e.P3D="P3D",e.P7D="P7D",e.P30D="P30D",e.HALF_YEARLY="HALF_YEARLY",e.QUARTERLY="QUARTERLY"})(N||(N={}));var Rt;(function(e){e.INDIVIDUAL="INDIVIDUAL",e.TEAM="TEAM",e.ENTERPRISE="ENTERPRISE"})(Rt||(Rt={}));var Dt;(function(e){e.COM="COM",e.EDU="EDU",e.GOV="GOV"})(Dt||(Dt={}));var Ut;(function(e){e.DIRECT="DIRECT",e.INDIRECT="INDIRECT"})(Ut||(Ut={}));var Mt;(function(e){e.ENTERPRISE_PRODUCT="ENTERPRISE_PRODUCT",e.ETLA="ETLA",e.RETAIL="RETAIL",e.VIP="VIP",e.VIPMP="VIPMP",e.FREE="FREE"})(Mt||(Mt={}));var Mr="tacocat.js";var ze=(e,t)=>String(e??"").toLowerCase()==String(t??"").toLowerCase(),Gr=e=>`${e??""}`.replace(/[&<>'"]/g,t=>({"&":"&","<":"<",">":">","'":"'",'"':"""})[t]??t)??"";function V(e,t={},{metadata:n=!0,search:r=!0,storage:i=!0}={}){let a;if(r&&a==null){let o=new URLSearchParams(window.location.search),s=Se(r)?r:e;a=o.get(s)}if(i&&a==null){let o=Se(i)?i:e;a=window.sessionStorage.getItem(o)??window.localStorage.getItem(o)}if(n&&a==null){let o=xi(Se(n)?n:e);a=document.documentElement.querySelector(`meta[name="${o}"]`)?.content}return a??t[e]}var Ee=()=>{};var Hr=e=>typeof e=="boolean",re=e=>typeof e=="function",je=e=>typeof e=="number",Fr=e=>e!=null&&typeof e=="object";var Se=e=>typeof e=="string",Gt=e=>Se(e)&&e,xe=e=>je(e)&&Number.isFinite(e)&&e>0;function be(e,t=n=>n==null||n===""){return e!=null&&Object.entries(e).forEach(([n,r])=>{t(r)&&delete e[n]}),e}function g(e,t){if(Hr(e))return e;let n=String(e);return n==="1"||n==="true"?!0:n==="0"||n==="false"?!1:t}function ne(e,t,n){let r=Object.values(t);return r.find(i=>ze(i,e))??n??r[0]}function xi(e=""){return String(e).replace(/(\p{Lowercase_Letter})(\p{Uppercase_Letter})/gu,(t,n,r)=>`${n}-${r}`).replace(/\W+/gu,"-").toLowerCase()}function ge(e,t=1){return je(e)||(e=Number.parseInt(e,10)),!Number.isNaN(e)&&e>0&&Number.isFinite(e)?e:t}var bi=Date.now(),Ht=()=>`(+${Date.now()-bi}ms)`,We=new Set,gi=g(V("tacocat.debug",{},{metadata:!1}),typeof process<"u"&&process.env?.DEBUG);function Xr(e){let t=`[${Mr}/${e}]`,n=(o,s,...c)=>o?!0:(i(s,...c),!1),r=gi?(o,...s)=>{console.debug(`${t} ${o}`,...s,Ht())}:()=>{},i=(o,...s)=>{let c=`${t} ${o}`;We.forEach(([u])=>u(c,...s))};return{assert:n,debug:r,error:i,warn:(o,...s)=>{let c=`${t} ${o}`;We.forEach(([,u])=>u(c,...s))}}}function Li(e,t){let n=[e,t];return We.add(n),()=>{We.delete(n)}}Li((e,...t)=>{console.error(e,...t,Ht())},(e,...t)=>{console.warn(e,...t,Ht())});var vi="no promo",Yr="promo-tag",yi="yellow",Pi="neutral",_i=(e,t,n)=>{let r=a=>a||vi,i=n?` (was "${r(t)}")`:"";return`${r(e)}${i}`},Ii="cancel-context",Ve=(e,t)=>{let n=e===Ii,r=!n&&e?.length>0,i=(r||n)&&(t&&t!=e||!t&&!n),a=i&&r||!i&&!!t,o=a?e||t:void 0;return{effectivePromoCode:o,overridenPromoCode:e,className:a?Yr:`${Yr} no-promo`,text:_i(o,t,i),variant:a?yi:Pi,isOverriden:i}};var Ft="ABM",Xt="PUF",Yt="M2M",Kt="PERPETUAL",zt="P3Y",Ni="TAX_INCLUSIVE_DETAILS",Vi="TAX_EXCLUSIVE",Kr={ABM:Ft,PUF:Xt,M2M:Yt,PERPETUAL:Kt,P3Y:zt},ko={[Ft]:{commitment:C.YEAR,term:N.MONTHLY},[Xt]:{commitment:C.YEAR,term:N.ANNUAL},[Yt]:{commitment:C.MONTH,term:N.MONTHLY},[Kt]:{commitment:C.PERPETUAL,term:void 0},[zt]:{commitment:C.THREE_MONTHS,term:N.P3Y}},zr="Value is not an offer",Be=e=>{if(typeof e!="object")return zr;let{commitment:t,term:n}=e,r=Oi(t,n);return{...e,planType:r}};var Oi=(e,t)=>{switch(e){case void 0:return zr;case"":return"";case C.YEAR:return t===N.MONTHLY?Ft:t===N.ANNUAL?Xt:"";case C.MONTH:return t===N.MONTHLY?Yt:"";case C.PERPETUAL:return Kt;case C.TERM_LICENSE:return t===N.P3Y?zt:"";default:return""}};function jt(e){let{priceDetails:t}=e,{price:n,priceWithoutDiscount:r,priceWithoutTax:i,priceWithoutDiscountAndTax:a,taxDisplay:o}=t;if(o!==Ni)return e;let s={...e,priceDetails:{...t,price:i??n,priceWithoutDiscount:a??r,taxDisplay:Vi}};return s.offerType==="TRIAL"&&s.priceDetails.price===0&&(s.priceDetails.price=s.priceDetails.priceWithoutDiscount),s}var Wt=function(e,t){return Wt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},Wt(e,t)};function Oe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Wt(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var E=function(){return E=Object.assign||function(t){for(var n,r=1,i=arguments.length;r0}),n=[],r=0,i=t;r1)throw new RangeError("integer-width stems only accept a single optional option");i.options[0].replace(ki,function(s,c,u,l,p,f){if(c)t.minimumIntegerDigits=u.length;else{if(l&&p)throw new Error("We currently do not support maximum integer digits");if(f)throw new Error("We currently do not support exact integer digits")}return""});continue}if(tn.test(i.stem)){t.minimumIntegerDigits=i.stem.length;continue}if(qr.test(i.stem)){if(i.options.length>1)throw new RangeError("Fraction-precision stems only accept a single optional option");i.stem.replace(qr,function(s,c,u,l,p,f){return u==="*"?t.minimumFractionDigits=c.length:l&&l[0]==="#"?t.maximumFractionDigits=l.length:p&&f?(t.minimumFractionDigits=p.length,t.maximumFractionDigits=p.length+f.length):(t.minimumFractionDigits=c.length,t.maximumFractionDigits=c.length),""}),i.options.length&&(t=E(E({},t),Zr(i.options[0])));continue}if(en.test(i.stem)){t=E(E({},t),Zr(i.stem));continue}var a=rn(i.stem);a&&(t=E(E({},t),a));var o=Ri(i.stem);o&&(t=E(E({},t),o))}return t}var qt,Di=new RegExp("^"+$t.source+"*"),Ui=new RegExp($t.source+"*$");function d(e,t){return{start:e,end:t}}var Mi=!!String.prototype.startsWith,Gi=!!String.fromCodePoint,Hi=!!Object.fromEntries,Fi=!!String.prototype.codePointAt,Xi=!!String.prototype.trimStart,Yi=!!String.prototype.trimEnd,Ki=!!Number.isSafeInteger,zi=Ki?Number.isSafeInteger:function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e&&Math.abs(e)<=9007199254740991},Jt=!0;try{an=cn("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu"),Jt=((qt=an.exec("a"))===null||qt===void 0?void 0:qt[0])==="a"}catch{Jt=!1}var an,on=Mi?function(t,n,r){return t.startsWith(n,r)}:function(t,n,r){return t.slice(r,r+n.length)===n},Qt=Gi?String.fromCodePoint:function(){for(var t=[],n=0;na;){if(o=t[a++],o>1114111)throw RangeError(o+" is not a valid code point");r+=o<65536?String.fromCharCode(o):String.fromCharCode(((o-=65536)>>10)+55296,o%1024+56320)}return r},sn=Hi?Object.fromEntries:function(t){for(var n={},r=0,i=t;r=r)){var i=t.charCodeAt(n),a;return i<55296||i>56319||n+1===r||(a=t.charCodeAt(n+1))<56320||a>57343?i:(i-55296<<10)+(a-56320)+65536}},ji=Xi?function(t){return t.trimStart()}:function(t){return t.replace(Di,"")},Wi=Yi?function(t){return t.trimEnd()}:function(t){return t.replace(Ui,"")};function cn(e,t){return new RegExp(e,t)}var er;Jt?(Zt=cn("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu"),er=function(t,n){var r;Zt.lastIndex=n;var i=Zt.exec(t);return(r=i[1])!==null&&r!==void 0?r:""}):er=function(t,n){for(var r=[];;){var i=ln(t,n);if(i===void 0||fn(i)||qi(i))break;r.push(i),n+=i>=65536?2:1}return Qt.apply(void 0,r)};var Zt,un=function(){function e(t,n){n===void 0&&(n={}),this.message=t,this.position={offset:0,line:1,column:1},this.ignoreTag=!!n.ignoreTag,this.requiresOtherClause=!!n.requiresOtherClause,this.shouldParseSkeletons=!!n.shouldParseSkeletons}return e.prototype.parse=function(){if(this.offset()!==0)throw Error("parser can only be used once");return this.parseMessage(0,"",!1)},e.prototype.parseMessage=function(t,n,r){for(var i=[];!this.isEOF();){var a=this.char();if(a===123){var o=this.parseArgument(t,r);if(o.err)return o;i.push(o.val)}else{if(a===125&&t>0)break;if(a===35&&(n==="plural"||n==="selectordinal")){var s=this.clonePosition();this.bump(),i.push({type:y.pound,location:d(s,this.clonePosition())})}else if(a===60&&!this.ignoreTag&&this.peek()===47){if(r)break;return this.error(A.UNMATCHED_CLOSING_TAG,d(this.clonePosition(),this.clonePosition()))}else if(a===60&&!this.ignoreTag&&tr(this.peek()||0)){var o=this.parseTag(t,n);if(o.err)return o;i.push(o.val)}else{var o=this.parseLiteral(t,n);if(o.err)return o;i.push(o.val)}}}return{val:i,err:null}},e.prototype.parseTag=function(t,n){var r=this.clonePosition();this.bump();var i=this.parseTagName();if(this.bumpSpace(),this.bumpIf("/>"))return{val:{type:y.literal,value:"<"+i+"/>",location:d(r,this.clonePosition())},err:null};if(this.bumpIf(">")){var a=this.parseMessage(t+1,n,!0);if(a.err)return a;var o=a.val,s=this.clonePosition();if(this.bumpIf("")?{val:{type:y.tag,value:i,children:o,location:d(r,this.clonePosition())},err:null}:this.error(A.INVALID_TAG,d(s,this.clonePosition())))}else return this.error(A.UNCLOSED_TAG,d(r,this.clonePosition()))}else return this.error(A.INVALID_TAG,d(r,this.clonePosition()))},e.prototype.parseTagName=function(){var t=this.offset();for(this.bump();!this.isEOF()&&$i(this.char());)this.bump();return this.message.slice(t,this.offset())},e.prototype.parseLiteral=function(t,n){for(var r=this.clonePosition(),i="";;){var a=this.tryParseQuote(n);if(a){i+=a;continue}var o=this.tryParseUnquoted(t,n);if(o){i+=o;continue}var s=this.tryParseLeftAngleBracket();if(s){i+=s;continue}break}var c=d(r,this.clonePosition());return{val:{type:y.literal,value:i,location:c},err:null}},e.prototype.tryParseLeftAngleBracket=function(){return!this.isEOF()&&this.char()===60&&(this.ignoreTag||!Bi(this.peek()||0))?(this.bump(),"<"):null},e.prototype.tryParseQuote=function(t){if(this.isEOF()||this.char()!==39)return null;switch(this.peek()){case 39:return this.bump(),this.bump(),"'";case 123:case 60:case 62:case 125:break;case 35:if(t==="plural"||t==="selectordinal")break;return null;default:return null}this.bump();var n=[this.char()];for(this.bump();!this.isEOF();){var r=this.char();if(r===39)if(this.peek()===39)n.push(39),this.bump();else{this.bump();break}else n.push(r);this.bump()}return Qt.apply(void 0,n)},e.prototype.tryParseUnquoted=function(t,n){if(this.isEOF())return null;var r=this.char();return r===60||r===123||r===35&&(n==="plural"||n==="selectordinal")||r===125&&t>0?null:(this.bump(),Qt(r))},e.prototype.parseArgument=function(t,n){var r=this.clonePosition();if(this.bump(),this.bumpSpace(),this.isEOF())return this.error(A.EXPECT_ARGUMENT_CLOSING_BRACE,d(r,this.clonePosition()));if(this.char()===125)return this.bump(),this.error(A.EMPTY_ARGUMENT,d(r,this.clonePosition()));var i=this.parseIdentifierIfPossible().value;if(!i)return this.error(A.MALFORMED_ARGUMENT,d(r,this.clonePosition()));if(this.bumpSpace(),this.isEOF())return this.error(A.EXPECT_ARGUMENT_CLOSING_BRACE,d(r,this.clonePosition()));switch(this.char()){case 125:return this.bump(),{val:{type:y.argument,value:i,location:d(r,this.clonePosition())},err:null};case 44:return this.bump(),this.bumpSpace(),this.isEOF()?this.error(A.EXPECT_ARGUMENT_CLOSING_BRACE,d(r,this.clonePosition())):this.parseArgumentOptions(t,n,i,r);default:return this.error(A.MALFORMED_ARGUMENT,d(r,this.clonePosition()))}},e.prototype.parseIdentifierIfPossible=function(){var t=this.clonePosition(),n=this.offset(),r=er(this.message,n),i=n+r.length;this.bumpTo(i);var a=this.clonePosition(),o=d(t,a);return{value:r,location:o}},e.prototype.parseArgumentOptions=function(t,n,r,i){var a,o=this.clonePosition(),s=this.parseIdentifierIfPossible().value,c=this.clonePosition();switch(s){case"":return this.error(A.EXPECT_ARGUMENT_TYPE,d(o,c));case"number":case"date":case"time":{this.bumpSpace();var u=null;if(this.bumpIf(",")){this.bumpSpace();var l=this.clonePosition(),p=this.parseSimpleArgStyleIfPossible();if(p.err)return p;var f=Wi(p.val);if(f.length===0)return this.error(A.EXPECT_ARGUMENT_STYLE,d(this.clonePosition(),this.clonePosition()));var m=d(l,this.clonePosition());u={style:f,styleLocation:m}}var T=this.tryParseArgumentClose(i);if(T.err)return T;var x=d(i,this.clonePosition());if(u&&on(u?.style,"::",0)){var b=ji(u.style.slice(2));if(s==="number"){var p=this.parseNumberSkeletonFromString(b,u.styleLocation);return p.err?p:{val:{type:y.number,value:r,location:x,style:p.val},err:null}}else{if(b.length===0)return this.error(A.EXPECT_DATE_TIME_SKELETON,x);var f={type:le.dateTime,pattern:b,location:u.styleLocation,parsedOptions:this.shouldParseSkeletons?Br(b):{}},P=s==="date"?y.date:y.time;return{val:{type:P,value:r,location:x,style:f},err:null}}}return{val:{type:s==="number"?y.number:s==="date"?y.date:y.time,value:r,location:x,style:(a=u?.style)!==null&&a!==void 0?a:null},err:null}}case"plural":case"selectordinal":case"select":{var _=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(","))return this.error(A.EXPECT_SELECT_ARGUMENT_OPTIONS,d(_,E({},_)));this.bumpSpace();var L=this.parseIdentifierIfPossible(),O=0;if(s!=="select"&&L.value==="offset"){if(!this.bumpIf(":"))return this.error(A.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,d(this.clonePosition(),this.clonePosition()));this.bumpSpace();var p=this.tryParseDecimalInteger(A.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,A.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);if(p.err)return p;this.bumpSpace(),L=this.parseIdentifierIfPossible(),O=p.val}var v=this.tryParsePluralOrSelectOptions(t,s,n,L);if(v.err)return v;var T=this.tryParseArgumentClose(i);if(T.err)return T;var I=d(i,this.clonePosition());return s==="select"?{val:{type:y.select,value:r,options:sn(v.val),location:I},err:null}:{val:{type:y.plural,value:r,options:sn(v.val),offset:O,pluralType:s==="plural"?"cardinal":"ordinal",location:I},err:null}}default:return this.error(A.INVALID_ARGUMENT_TYPE,d(o,c))}},e.prototype.tryParseArgumentClose=function(t){return this.isEOF()||this.char()!==125?this.error(A.EXPECT_ARGUMENT_CLOSING_BRACE,d(t,this.clonePosition())):(this.bump(),{val:!0,err:null})},e.prototype.parseSimpleArgStyleIfPossible=function(){for(var t=0,n=this.clonePosition();!this.isEOF();){var r=this.char();switch(r){case 39:{this.bump();var i=this.clonePosition();if(!this.bumpUntil("'"))return this.error(A.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE,d(i,this.clonePosition()));this.bump();break}case 123:{t+=1,this.bump();break}case 125:{if(t>0)t-=1;else return{val:this.message.slice(n.offset,this.offset()),err:null};break}default:this.bump();break}}return{val:this.message.slice(n.offset,this.offset()),err:null}},e.prototype.parseNumberSkeletonFromString=function(t,n){var r=[];try{r=Qr(t)}catch{return this.error(A.INVALID_NUMBER_SKELETON,n)}return{val:{type:le.number,tokens:r,location:n,parsedOptions:this.shouldParseSkeletons?nn(r):{}},err:null}},e.prototype.tryParsePluralOrSelectOptions=function(t,n,r,i){for(var a,o=!1,s=[],c=new Set,u=i.value,l=i.location;;){if(u.length===0){var p=this.clonePosition();if(n!=="select"&&this.bumpIf("=")){var f=this.tryParseDecimalInteger(A.EXPECT_PLURAL_ARGUMENT_SELECTOR,A.INVALID_PLURAL_ARGUMENT_SELECTOR);if(f.err)return f;l=d(p,this.clonePosition()),u=this.message.slice(p.offset,this.offset())}else break}if(c.has(u))return this.error(n==="select"?A.DUPLICATE_SELECT_ARGUMENT_SELECTOR:A.DUPLICATE_PLURAL_ARGUMENT_SELECTOR,l);u==="other"&&(o=!0),this.bumpSpace();var m=this.clonePosition();if(!this.bumpIf("{"))return this.error(n==="select"?A.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT:A.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT,d(this.clonePosition(),this.clonePosition()));var T=this.parseMessage(t+1,n,r);if(T.err)return T;var x=this.tryParseArgumentClose(m);if(x.err)return x;s.push([u,{value:T.val,location:d(m,this.clonePosition())}]),c.add(u),this.bumpSpace(),a=this.parseIdentifierIfPossible(),u=a.value,l=a.location}return s.length===0?this.error(n==="select"?A.EXPECT_SELECT_ARGUMENT_SELECTOR:A.EXPECT_PLURAL_ARGUMENT_SELECTOR,d(this.clonePosition(),this.clonePosition())):this.requiresOtherClause&&!o?this.error(A.MISSING_OTHER_CLAUSE,d(this.clonePosition(),this.clonePosition())):{val:s,err:null}},e.prototype.tryParseDecimalInteger=function(t,n){var r=1,i=this.clonePosition();this.bumpIf("+")||this.bumpIf("-")&&(r=-1);for(var a=!1,o=0;!this.isEOF();){var s=this.char();if(s>=48&&s<=57)a=!0,o=o*10+(s-48),this.bump();else break}var c=d(i,this.clonePosition());return a?(o*=r,zi(o)?{val:o,err:null}:this.error(n,c)):this.error(t,c)},e.prototype.offset=function(){return this.position.offset},e.prototype.isEOF=function(){return this.offset()===this.message.length},e.prototype.clonePosition=function(){return{offset:this.position.offset,line:this.position.line,column:this.position.column}},e.prototype.char=function(){var t=this.position.offset;if(t>=this.message.length)throw Error("out of bound");var n=ln(this.message,t);if(n===void 0)throw Error("Offset "+t+" is at invalid UTF-16 code unit boundary");return n},e.prototype.error=function(t,n){return{val:null,err:{kind:t,message:this.message,location:n}}},e.prototype.bump=function(){if(!this.isEOF()){var t=this.char();t===10?(this.position.line+=1,this.position.column=1,this.position.offset+=1):(this.position.column+=1,this.position.offset+=t<65536?1:2)}},e.prototype.bumpIf=function(t){if(on(this.message,t,this.offset())){for(var n=0;n=0?(this.bumpTo(r),!0):(this.bumpTo(this.message.length),!1)},e.prototype.bumpTo=function(t){if(this.offset()>t)throw Error("targetOffset "+t+" must be greater than or equal to the current offset "+this.offset());for(t=Math.min(t,this.message.length);;){var n=this.offset();if(n===t)break;if(n>t)throw Error("targetOffset "+t+" is at invalid UTF-16 code unit boundary");if(this.bump(),this.isEOF())break}},e.prototype.bumpSpace=function(){for(;!this.isEOF()&&fn(this.char());)this.bump()},e.prototype.peek=function(){if(this.isEOF())return null;var t=this.char(),n=this.offset(),r=this.message.charCodeAt(n+(t>=65536?2:1));return r??null},e}();function tr(e){return e>=97&&e<=122||e>=65&&e<=90}function Bi(e){return tr(e)||e===47}function $i(e){return e===45||e===46||e>=48&&e<=57||e===95||e>=97&&e<=122||e>=65&&e<=90||e==183||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8255&&e<=8256||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}function fn(e){return e>=9&&e<=13||e===32||e===133||e>=8206&&e<=8207||e===8232||e===8233}function qi(e){return e>=33&&e<=35||e===36||e>=37&&e<=39||e===40||e===41||e===42||e===43||e===44||e===45||e>=46&&e<=47||e>=58&&e<=59||e>=60&&e<=62||e>=63&&e<=64||e===91||e===92||e===93||e===94||e===96||e===123||e===124||e===125||e===126||e===161||e>=162&&e<=165||e===166||e===167||e===169||e===171||e===172||e===174||e===176||e===177||e===182||e===187||e===191||e===215||e===247||e>=8208&&e<=8213||e>=8214&&e<=8215||e===8216||e===8217||e===8218||e>=8219&&e<=8220||e===8221||e===8222||e===8223||e>=8224&&e<=8231||e>=8240&&e<=8248||e===8249||e===8250||e>=8251&&e<=8254||e>=8257&&e<=8259||e===8260||e===8261||e===8262||e>=8263&&e<=8273||e===8274||e===8275||e>=8277&&e<=8286||e>=8592&&e<=8596||e>=8597&&e<=8601||e>=8602&&e<=8603||e>=8604&&e<=8607||e===8608||e>=8609&&e<=8610||e===8611||e>=8612&&e<=8613||e===8614||e>=8615&&e<=8621||e===8622||e>=8623&&e<=8653||e>=8654&&e<=8655||e>=8656&&e<=8657||e===8658||e===8659||e===8660||e>=8661&&e<=8691||e>=8692&&e<=8959||e>=8960&&e<=8967||e===8968||e===8969||e===8970||e===8971||e>=8972&&e<=8991||e>=8992&&e<=8993||e>=8994&&e<=9e3||e===9001||e===9002||e>=9003&&e<=9083||e===9084||e>=9085&&e<=9114||e>=9115&&e<=9139||e>=9140&&e<=9179||e>=9180&&e<=9185||e>=9186&&e<=9254||e>=9255&&e<=9279||e>=9280&&e<=9290||e>=9291&&e<=9311||e>=9472&&e<=9654||e===9655||e>=9656&&e<=9664||e===9665||e>=9666&&e<=9719||e>=9720&&e<=9727||e>=9728&&e<=9838||e===9839||e>=9840&&e<=10087||e===10088||e===10089||e===10090||e===10091||e===10092||e===10093||e===10094||e===10095||e===10096||e===10097||e===10098||e===10099||e===10100||e===10101||e>=10132&&e<=10175||e>=10176&&e<=10180||e===10181||e===10182||e>=10183&&e<=10213||e===10214||e===10215||e===10216||e===10217||e===10218||e===10219||e===10220||e===10221||e===10222||e===10223||e>=10224&&e<=10239||e>=10240&&e<=10495||e>=10496&&e<=10626||e===10627||e===10628||e===10629||e===10630||e===10631||e===10632||e===10633||e===10634||e===10635||e===10636||e===10637||e===10638||e===10639||e===10640||e===10641||e===10642||e===10643||e===10644||e===10645||e===10646||e===10647||e===10648||e>=10649&&e<=10711||e===10712||e===10713||e===10714||e===10715||e>=10716&&e<=10747||e===10748||e===10749||e>=10750&&e<=11007||e>=11008&&e<=11055||e>=11056&&e<=11076||e>=11077&&e<=11078||e>=11079&&e<=11084||e>=11085&&e<=11123||e>=11124&&e<=11125||e>=11126&&e<=11157||e===11158||e>=11159&&e<=11263||e>=11776&&e<=11777||e===11778||e===11779||e===11780||e===11781||e>=11782&&e<=11784||e===11785||e===11786||e===11787||e===11788||e===11789||e>=11790&&e<=11798||e===11799||e>=11800&&e<=11801||e===11802||e===11803||e===11804||e===11805||e>=11806&&e<=11807||e===11808||e===11809||e===11810||e===11811||e===11812||e===11813||e===11814||e===11815||e===11816||e===11817||e>=11818&&e<=11822||e===11823||e>=11824&&e<=11833||e>=11834&&e<=11835||e>=11836&&e<=11839||e===11840||e===11841||e===11842||e>=11843&&e<=11855||e>=11856&&e<=11857||e===11858||e>=11859&&e<=11903||e>=12289&&e<=12291||e===12296||e===12297||e===12298||e===12299||e===12300||e===12301||e===12302||e===12303||e===12304||e===12305||e>=12306&&e<=12307||e===12308||e===12309||e===12310||e===12311||e===12312||e===12313||e===12314||e===12315||e===12316||e===12317||e>=12318&&e<=12319||e===12320||e===12336||e===64830||e===64831||e>=65093&&e<=65094}function rr(e){e.forEach(function(t){if(delete t.location,Qe(t)||et(t))for(var n in t.options)delete t.options[n].location,rr(t.options[n].value);else qe(t)&&rt(t.style)||(Ze(t)||Je(t))&&Ce(t.style)?delete t.style.location:tt(t)&&rr(t.children)})}function pn(e,t){t===void 0&&(t={}),t=E({shouldParseSkeletons:!0,requiresOtherClause:!0},t);var n=new un(e,t).parse();if(n.err){var r=SyntaxError(A[n.err.kind]);throw r.location=n.err.location,r.originalMessage=n.err.message,r}return t?.captureLocation||rr(n.val),n.val}function we(e,t){var n=t&&t.cache?t.cache:ra,r=t&&t.serializer?t.serializer:ta,i=t&&t.strategy?t.strategy:Ji;return i(e,{cache:n,serializer:r})}function Zi(e){return e==null||typeof e=="number"||typeof e=="boolean"}function hn(e,t,n,r){var i=Zi(r)?r:n(r),a=t.get(i);return typeof a>"u"&&(a=e.call(this,r),t.set(i,a)),a}function mn(e,t,n){var r=Array.prototype.slice.call(arguments,3),i=n(r),a=t.get(i);return typeof a>"u"&&(a=e.apply(this,r),t.set(i,a)),a}function nr(e,t,n,r,i){return n.bind(t,e,r,i)}function Ji(e,t){var n=e.length===1?hn:mn;return nr(e,this,n,t.cache.create(),t.serializer)}function Qi(e,t){return nr(e,this,mn,t.cache.create(),t.serializer)}function ea(e,t){return nr(e,this,hn,t.cache.create(),t.serializer)}var ta=function(){return JSON.stringify(arguments)};function ir(){this.cache=Object.create(null)}ir.prototype.get=function(e){return this.cache[e]};ir.prototype.set=function(e,t){this.cache[e]=t};var ra={create:function(){return new ir}},nt={variadic:Qi,monadic:ea};var ce;(function(e){e.MISSING_VALUE="MISSING_VALUE",e.INVALID_VALUE="INVALID_VALUE",e.MISSING_INTL_API="MISSING_INTL_API"})(ce||(ce={}));var ke=function(e){Oe(t,e);function t(n,r,i){var a=e.call(this,n)||this;return a.code=r,a.originalMessage=i,a}return t.prototype.toString=function(){return"[formatjs Error: "+this.code+"] "+this.message},t}(Error);var ar=function(e){Oe(t,e);function t(n,r,i,a){return e.call(this,'Invalid values for "'+n+'": "'+r+'". Options are "'+Object.keys(i).join('", "')+'"',ce.INVALID_VALUE,a)||this}return t}(ke);var Tn=function(e){Oe(t,e);function t(n,r,i){return e.call(this,'Value for "'+n+'" must be of type '+r,ce.INVALID_VALUE,i)||this}return t}(ke);var An=function(e){Oe(t,e);function t(n,r){return e.call(this,'The intl string context variable "'+n+'" was not provided to the string "'+r+'"',ce.MISSING_VALUE,r)||this}return t}(ke);var w;(function(e){e[e.literal=0]="literal",e[e.object=1]="object"})(w||(w={}));function na(e){return e.length<2?e:e.reduce(function(t,n){var r=t[t.length-1];return!r||r.type!==w.literal||n.type!==w.literal?t.push(n):r.value+=n.value,t},[])}function ia(e){return typeof e=="function"}function Re(e,t,n,r,i,a,o){if(e.length===1&&Bt(e[0]))return[{type:w.literal,value:e[0].value}];for(var s=[],c=0,u=e;c0?e.substring(0,r):"";let i=En(e.split("").reverse().join("")),a=n-i,o=e.substring(a,a+1),s=a+(o==="."||o===","?1:0);t.suffix=i>0?e.substring(s,n):"",t.mask=e.substring(r,s),t.maskHasNegativeSign=t.mask.charAt(0)==="-",t.maskHasPositiveSign=t.mask.charAt(0)==="+";let c=t.mask.match(ca);return t.decimal=c&&c[c.length-1]||".",t.separator=c&&c[1]&&c[0]||",",c=t.mask.split(t.decimal),t.integer=c[0],t.fraction=c[1],t}function fa(e,t,n){let r=!1,i={value:e};e<0&&(r=!0,i.value=-i.value),i.sign=r?"-":"",i.value=Number(i.value).toFixed(t.fraction&&t.fraction.length),i.value=Number(i.value).toString();let a=t.fraction&&t.fraction.lastIndexOf("0"),[o="0",s=""]=i.value.split(".");return(!s||s&&s.length<=a)&&(s=a<0?"":(+("0."+s)).toFixed(a+1).replace("0.","")),i.integer=o,i.fraction=s,pa(i,t),(i.result==="0"||i.result==="")&&(r=!1,i.sign=""),!r&&t.maskHasPositiveSign?i.sign="+":r&&t.maskHasPositiveSign?i.sign="-":r&&(i.sign=n&&n.enforceMaskSign&&!t.maskHasNegativeSign?"":"-"),i}function pa(e,t){e.result="";let n=t.integer.split(t.separator),r=n.join(""),i=r&&r.indexOf("0");if(i>-1)for(;e.integer.lengthMath.round(e*20)/20},sr=(e,t)=>({accept:e,round:t}),da=[sr(({divisor:e,price:t})=>t%e==0,({divisor:e,price:t})=>t/e),sr(({usePrecision:e})=>e,({divisor:e,price:t})=>Math.ceil(Math.floor(t*1e4/e)/100)/100),sr(()=>!0,({divisor:e,price:t})=>Math.ceil(Math.floor(t*100/e)/100))],lr={[C.YEAR]:{[N.MONTHLY]:De.MONTH,[N.ANNUAL]:De.YEAR},[C.MONTH]:{[N.MONTHLY]:De.MONTH}},Sa=(e,t)=>e.indexOf(`'${t}'`)===0,Ea=(e,t=!0)=>{let n=e.replace(/'.*?'/,"").trim(),r=Pn(n);return!!r?t||(n=n.replace(/[,\.]0+/,r)):n=n.replace(/\s?(#.*0)(?!\s)?/,"$&"+ba(e)),n},xa=e=>{let t=ga(e),n=Sa(e,t),r=e.replace(/'.*?'/,""),i=Ln.test(r)||vn.test(r);return{currencySymbol:t,isCurrencyFirst:n,hasCurrencySpace:i}},yn=e=>e.replace(Ln,gn).replace(vn,gn),ba=e=>e.match(/#(.?)#/)?.[1]===bn?ma:bn,ga=e=>e.match(/'(.*?)'/)?.[1]??"",Pn=e=>e.match(/0(.?)0/)?.[1]??"";function it({formatString:e,price:t,usePrecision:n,isIndianPrice:r=!1},i,a=o=>o){let{currencySymbol:o,isCurrencyFirst:s,hasCurrencySpace:c}=xa(e),u=n?Pn(e):"",l=Ea(e,n),p=n?2:0,f=a(t,{currencySymbol:o}),m=r?f.toLocaleString("hi-IN",{minimumFractionDigits:p,maximumFractionDigits:p}):xn(l,f),T=n?m.lastIndexOf(u):m.length,x=m.substring(0,T),b=m.substring(T+1);return{accessiblePrice:e.replace(/'.*?'/,"SYMBOL").replace(/#.*0/,m).replace(/SYMBOL/,o),currencySymbol:o,decimals:b,decimalsDelimiter:u,hasCurrencySpace:c,integer:x,isCurrencyFirst:s,recurrenceTerm:i}}var _n=e=>{let{commitment:t,term:n,usePrecision:r}=e,i=Ta[n]??1;return it(e,i>1?De.MONTH:lr[t]?.[n],(a,{currencySymbol:o})=>{let s={divisor:i,price:a,usePrecision:r},{round:c}=da.find(({accept:l})=>l(s));if(!c)throw new Error(`Missing rounding rule for: ${JSON.stringify(s)}`);return(Aa[o]??(l=>l))(c(s))})},In=({commitment:e,term:t,...n})=>it(n,lr[e]?.[t]),Nn=e=>{let{commitment:t,term:n}=e;return t===C.YEAR&&n===N.MONTHLY?it(e,De.YEAR,r=>r*12):it(e,lr[t]?.[n])};var La={recurrenceLabel:"{recurrenceTerm, select, MONTH {/mo} YEAR {/yr} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per month} YEAR {per year} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per license} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per license} other {}}",freeLabel:"Free",freeAriaLabel:"Free",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Alternatively at {alternativePrice}",strikethroughAriaLabel:"Regularly at {strikethroughPrice}"},va=Xr("ConsonantTemplates/price"),ya=/<.+?>/g,G={container:"price",containerOptical:"price-optical",containerStrikethrough:"price-strikethrough",containerAnnual:"price-annual",disabled:"disabled",currencySpace:"price-currency-space",currencySymbol:"price-currency-symbol",decimals:"price-decimals",decimalsDelimiter:"price-decimals-delimiter",integer:"price-integer",recurrence:"price-recurrence",taxInclusivity:"price-tax-inclusivity",unitType:"price-unit-type"},ue={perUnitLabel:"perUnitLabel",perUnitAriaLabel:"perUnitAriaLabel",recurrenceLabel:"recurrenceLabel",recurrenceAriaLabel:"recurrenceAriaLabel",taxExclusiveLabel:"taxExclusiveLabel",taxInclusiveLabel:"taxInclusiveLabel",strikethroughAriaLabel:"strikethroughAriaLabel"},Pa="TAX_EXCLUSIVE",_a=e=>Fr(e)?Object.entries(e).filter(([,t])=>Se(t)||je(t)||t===!0).reduce((t,[n,r])=>t+` ${n}${r===!0?"":'="'+Gr(r)+'"'}`,""):"",K=(e,t,n,r=!1)=>`${r?yn(t):t??""}`;function Ia(e,{accessibleLabel:t,currencySymbol:n,decimals:r,decimalsDelimiter:i,hasCurrencySpace:a,integer:o,isCurrencyFirst:s,recurrenceLabel:c,perUnitLabel:u,taxInclusivityLabel:l},p={}){let f=K(G.currencySymbol,n),m=K(G.currencySpace,a?" ":""),T="";return s&&(T+=f+m),T+=K(G.integer,o),T+=K(G.decimalsDelimiter,i),T+=K(G.decimals,r),s||(T+=m+f),T+=K(G.recurrence,c,null,!0),T+=K(G.unitType,u,null,!0),T+=K(G.taxInclusivity,l,!0),K(e,T,{...p,"aria-label":t})}var fe=({displayOptical:e=!1,displayStrikethrough:t=!1,displayAnnual:n=!1}={})=>({country:r,displayFormatted:i=!0,displayRecurrence:a=!0,displayPerUnit:o=!1,displayTax:s=!1,language:c,literals:u={}}={},{commitment:l,formatString:p,price:f,priceWithoutDiscount:m,taxDisplay:T,taxTerm:x,term:b,usePrecision:P}={},_={})=>{Object.entries({country:r,formatString:p,language:c,price:f}).forEach(([J,yt])=>{if(yt==null)throw new Error(`Argument "${J}" is missing`)});let L={...La,...u},O=`${c.toLowerCase()}-${r.toUpperCase()}`;function v(J,yt){let Pt=L[J];if(Pt==null)return"";try{return new Sn(Pt.replace(ya,""),O).format(yt)}catch{return va.error("Failed to format literal:",Pt),""}}let I=t&&m?m:f,R=e?_n:In;n&&(R=Nn);let{accessiblePrice:F,recurrenceTerm:q,...te}=R({commitment:l,formatString:p,term:b,price:e?f:I,usePrecision:P,isIndianPrice:r==="IN"}),X=F,ae="";if(g(a)&&q){let J=v(ue.recurrenceAriaLabel,{recurrenceTerm:q});J&&(X+=" "+J),ae=v(ue.recurrenceLabel,{recurrenceTerm:q})}let oe="";if(g(o)){oe=v(ue.perUnitLabel,{perUnit:"LICENSE"});let J=v(ue.perUnitAriaLabel,{perUnit:"LICENSE"});J&&(X+=" "+J)}let Z="";g(s)&&x&&(Z=v(T===Pa?ue.taxExclusiveLabel:ue.taxInclusiveLabel,{taxTerm:x}),Z&&(X+=" "+Z)),t&&(X=v(ue.strikethroughAriaLabel,{strikethroughPrice:X}));let Y=G.container;if(e&&(Y+=" "+G.containerOptical),t&&(Y+=" "+G.containerStrikethrough),n&&(Y+=" "+G.containerAnnual),g(i))return Ia(Y,{...te,accessibleLabel:X,recurrenceLabel:ae,perUnitLabel:oe,taxInclusivityLabel:Z},_);let{currencySymbol:Te,decimals:He,decimalsDelimiter:Fe,hasCurrencySpace:_e,integer:vt,isCurrencyFirst:qn}=te,Ae=[vt,Fe,He];qn?(Ae.unshift(_e?"\xA0":""),Ae.unshift(Te)):(Ae.push(_e?"\xA0":""),Ae.push(Te)),Ae.push(ae,oe,Z);let Zn=Ae.join("");return K(Y,Zn,_)},Vn=()=>(e,t,n)=>{let i=(e.displayOldPrice===void 0||g(e.displayOldPrice))&&t.priceWithoutDiscount&&t.priceWithoutDiscount!=t.price;return`${fe()(e,t,n)}${i?" "+fe({displayStrikethrough:!0})(e,t,n):""}`};var cr=fe(),ur=Vn(),fr=fe({displayOptical:!0}),pr=fe({displayStrikethrough:!0}),hr=fe({displayAnnual:!0});var Na=(e,t)=>{if(!(!xe(e)||!xe(t)))return Math.floor((t-e)/t*100)},On=()=>(e,t,n)=>{let{price:r,priceWithoutDiscount:i}=t,a=Na(r,i);return a===void 0?'':`${a}%`};var mr=On();var{freeze:Ue}=Object,z=Ue({...se}),j=Ue({...H}),pe={STAGE:"STAGE",PRODUCTION:"PRODUCTION",LOCAL:"LOCAL"},Tr=Ue({...C}),Ar=Ue({...Kr}),dr=Ue({...N});var vr={};ai(vr,{CLASS_NAME_FAILED:()=>at,CLASS_NAME_PENDING:()=>ot,CLASS_NAME_RESOLVED:()=>st,ERROR_MESSAGE_BAD_REQUEST:()=>lt,ERROR_MESSAGE_MISSING_LITERALS_URL:()=>Va,ERROR_MESSAGE_OFFER_NOT_FOUND:()=>Sr,EVENT_TYPE_ERROR:()=>Oa,EVENT_TYPE_FAILED:()=>ct,EVENT_TYPE_PENDING:()=>ut,EVENT_TYPE_READY:()=>Le,EVENT_TYPE_RESOLVED:()=>ft,LOG_NAMESPACE:()=>Er,Landscape:()=>he,PARAM_AOS_API_KEY:()=>Ca,PARAM_ENV:()=>xr,PARAM_LANDSCAPE:()=>br,PARAM_WCS_API_KEY:()=>wa,STATE_FAILED:()=>W,STATE_PENDING:()=>B,STATE_RESOLVED:()=>$,TAG_NAME_SERVICE:()=>ee,WCS_PROD_URL:()=>gr,WCS_STAGE_URL:()=>Lr});var at="placeholder-failed",ot="placeholder-pending",st="placeholder-resolved",lt="Bad WCS request",Sr="Commerce offer not found",Va="Literals URL not provided",Oa="wcms:commerce:error",ct="wcms:placeholder:failed",ut="wcms:placeholder:pending",Le="wcms:commerce:ready",ft="wcms:placeholder:resolved",Er="wcms/commerce",xr="commerce.env",br="commerce.landscape",Ca="commerce.aosKey",wa="commerce.wcsKey",gr="https://www.adobe.com/web_commerce_artifact",Lr="https://www.stage.adobe.com/web_commerce_artifact_stage",W="failed",B="pending",$="resolved",ee="wcms-commerce",he={DRAFT:"DRAFT",PUBLISHED:"PUBLISHED"};var yr={clientId:"merch-at-scale",delimiter:"\xB6",ignoredProperties:["analytics","literals"],serializableTypes:["Array","Object"],sampleRate:30,tags:"consumer=milo/commerce"},Cn=new Set,ka=e=>e instanceof Error||typeof e.originatingRequest=="string";function wn(e){if(e==null)return;let t=typeof e;if(t==="function"){let{name:n}=e;return n?`${t} ${n}`:t}if(t==="object"){if(e instanceof Error)return e.message;if(typeof e.originatingRequest=="string"){let{message:r,originatingRequest:i,status:a}=e;return[r,a,i].filter(o=>o).join(" ")}let n=e[Symbol.toStringTag]??Object.getPrototypeOf(e).constructor.name;if(!yr.serializableTypes.includes(n))return n}return e}function Ra(e,t){if(!yr.ignoredProperties.includes(e))return wn(t)}var Pr={append(e){let{delimiter:t,sampleRate:n,tags:r,clientId:i}=yr,{message:a,params:o}=e,s=[],c=a,u=[];o.forEach(f=>{f!=null&&(ka(f)?s:u).push(f)}),s.length&&(c+=" ",c+=s.map(wn).join(" "));let{pathname:l,search:p}=window.location;c+=`${t}page=`,c+=l+p,u.length&&(c+=`${t}facts=`,c+=JSON.stringify(u,Ra)),Cn.has(c)||(Cn.add(c),window.lana?.log(c,{sampleRate:n,tags:r,clientId:i}))}};var S=Object.freeze({checkoutClientId:"adobe_com",checkoutWorkflow:z.V3,checkoutWorkflowStep:j.EMAIL,country:"US",displayOldPrice:!0,displayPerUnit:!1,displayRecurrence:!0,displayTax:!1,env:pe.PRODUCTION,forceTaxExclusive:!1,language:"en",entitlement:!1,extraOptions:{},modal:!1,promotionCode:"",quantity:1,wcsApiKey:"wcms-commerce-ims-ro-user-milo",wcsBufferDelay:1,wcsURL:"https://www.adobe.com/web_commerce_artifact",landscape:he.PUBLISHED,wcsBufferLimit:1});function kn(e,{once:t=!1}={}){let n=null;function r(){let i=document.querySelector(ee);i!==n&&(n=i,i&&e(i))}return document.addEventListener(Le,r,{once:t}),ie(r),()=>document.removeEventListener(Le,r)}function Me(e,{country:t,forceTaxExclusive:n,perpetual:r}){let i;if(e.length<2)i=e;else{let a=t==="GB"||r?"EN":"MULT",[o,s]=e;i=[o.language===a?o:s]}return n&&(i=i.map(jt)),i}var ie=e=>window.setTimeout(e);function ve(e,t=1){if(e==null)return[t];let n=(Array.isArray(e)?e:String(e).split(",")).map(ge).filter(xe);return n.length||(n=[t]),n}function pt(e){return e==null?[]:(Array.isArray(e)?e:String(e).split(",")).filter(Gt)}function D(){return window.customElements.get(ee)?.instance}var Da="en_US",h={ar:"AR_es",be_en:"BE_en",be_fr:"BE_fr",be_nl:"BE_nl",br:"BR_pt",ca:"CA_en",ch_de:"CH_de",ch_fr:"CH_fr",ch_it:"CH_it",cl:"CL_es",co:"CO_es",la:"DO_es",mx:"MX_es",pe:"PE_es",africa:"MU_en",dk:"DK_da",de:"DE_de",ee:"EE_et",eg_ar:"EG_ar",eg_en:"EG_en",es:"ES_es",fr:"FR_fr",gr_el:"GR_el",gr_en:"GR_en",ie:"IE_en",il_he:"IL_iw",it:"IT_it",lv:"LV_lv",lt:"LT_lt",lu_de:"LU_de",lu_en:"LU_en",lu_fr:"LU_fr",my_en:"MY_en",my_ms:"MY_ms",hu:"HU_hu",mt:"MT_en",mena_en:"DZ_en",mena_ar:"DZ_ar",nl:"NL_nl",no:"NO_nb",pl:"PL_pl",pt:"PT_pt",ro:"RO_ro",si:"SI_sl",sk:"SK_sk",fi:"FI_fi",se:"SE_sv",tr:"TR_tr",uk:"GB_en",at:"AT_de",cz:"CZ_cs",bg:"BG_bg",ru:"RU_ru",ua:"UA_uk",au:"AU_en",in_en:"IN_en",in_hi:"IN_hi",id_en:"ID_en",id_id:"ID_in",nz:"NZ_en",sa_ar:"SA_ar",sa_en:"SA_en",sg:"SG_en",cn:"CN_zh-Hans",tw:"TW_zh-Hant",hk_zh:"HK_zh-hant",jp:"JP_ja",kr:"KR_ko",za:"ZA_en",ng:"NG_en",cr:"CR_es",ec:"EC_es",pr:"US_es",gt:"GT_es",cis_en:"AZ_en",cis_ru:"AZ_ru",sea:"SG_en",th_en:"TH_en",th_th:"TH_th"},ht=Object.freeze({LOCAL:"local",PROD:"prod",STAGE:"stage"});function Rn({locale:e={}}={}){if(!e.prefix)return{country:S.country,language:S.language,locale:Da};let t=e.prefix.replace("/","")??"",[n=S.country,r=S.language]=(h[t]??t).split("_",2);return n=n.toUpperCase(),r=r.toLowerCase(),{country:n,language:r,locale:`${r}_${n}`}}function _r(e={}){let{commerce:t={},locale:n=void 0}=e,r=pe.PRODUCTION,i=gr,a=["local","stage"].includes(e.env?.name),o=V(xr,t,{metadata:!1})?.toLowerCase()==="stage";a&&o&&(r=pe.STAGE,i=Lr);let s=V("checkoutClientId",t)??S.checkoutClientId,c=ne(V("checkoutWorkflow",t),z,S.checkoutWorkflow),u=j.CHECKOUT;c===z.V3&&(u=ne(V("checkoutWorkflowStep",t),j,S.checkoutWorkflowStep));let l=g(V("displayOldPrice",t),S.displayOldPrice),p=g(V("displayPerUnit",t),S.displayPerUnit),f=g(V("displayRecurrence",t),S.displayRecurrence),m=g(V("displayTax",t),S.displayTax),T=g(V("entitlement",t),S.entitlement),x=g(V("modal",t),S.modal),b=g(V("forceTaxExclusive",t),S.forceTaxExclusive),P=V("promotionCode",t)??S.promotionCode,_=ve(V("quantity",t)),L=V("wcsApiKey",t)??S.wcsApiKey,O=e.env?.name===ht.PROD?he.PUBLISHED:ne(V(br,t),he,S.landscape),v=ge(V("wcsBufferDelay",t),S.wcsBufferDelay),I=ge(V("wcsBufferLimit",t),S.wcsBufferLimit);return{...Rn({locale:n}),displayOldPrice:l,checkoutClientId:s,checkoutWorkflow:c,checkoutWorkflowStep:u,displayPerUnit:p,displayRecurrence:f,displayTax:m,entitlement:T,extraOptions:S.extraOptions,modal:x,env:r,forceTaxExclusive:b,promotionCode:P,quantity:_,wcsApiKey:L,wcsBufferDelay:v,wcsBufferLimit:I,wcsURL:i,landscape:O}}var Un="debug",Ua="error",Ma="info",Ga="warn",Ha=Date.now(),Ir=new Set,Nr=new Set,Dn=new Map,Ge=Object.freeze({DEBUG:Un,ERROR:Ua,INFO:Ma,WARN:Ga}),Mn={append({level:e,message:t,params:n,timestamp:r,source:i}){console[e](`${r}ms [${i}] %c${t}`,"font-weight: bold;",...n)}},Gn={filter:({level:e})=>e!==Un},Fa={filter:()=>!1};function Xa(e,t,n,r,i){return{level:e,message:t,namespace:n,get params(){if(r.length===1){let[a]=r;re(a)&&(r=a(),Array.isArray(r)||(r=[r]))}return r},source:i,timestamp:Date.now()-Ha}}function Ya(e){[...Nr].every(t=>t(e))&&Ir.forEach(t=>t(e))}function Hn(e){let t=(Dn.get(e)??0)+1;Dn.set(e,t);let n=`${e} #${t}`,r=a=>(o,...s)=>Ya(Xa(a,o,e,s,n)),i=Object.seal({id:n,namespace:e,module(a){return Hn(`${i.namespace}/${a}`)},debug:r(Ge.DEBUG),error:r(Ge.ERROR),info:r(Ge.INFO),warn:r(Ge.WARN)});return i}function mt(...e){e.forEach(t=>{let{append:n,filter:r}=t;re(r)?Nr.add(r):re(n)&&Ir.add(n)})}function Ka(e={}){let{name:t}=e,n=g(V("commerce.debug",{search:!0,storage:!0}),t===ht.LOCAL);return mt(n?Mn:Gn),t===ht.PROD&&mt(Pr),k}function za(){Ir.clear(),Nr.clear()}var k={...Hn(Er),Level:Ge,Plugins:{consoleAppender:Mn,debugFilter:Gn,quietFilter:Fa,lanaAppender:Pr},init:Ka,reset:za,use:mt};var ja={CLASS_NAME_FAILED:at,CLASS_NAME_PENDING:ot,CLASS_NAME_RESOLVED:st,EVENT_TYPE_FAILED:ct,EVENT_TYPE_PENDING:ut,EVENT_TYPE_RESOLVED:ft,STATE_FAILED:W,STATE_PENDING:B,STATE_RESOLVED:$},Wa={[W]:at,[B]:ot,[$]:st},Ba={[W]:ct,[B]:ut,[$]:ft},dt=new WeakMap;function U(e){if(!dt.has(e)){let t=k.module(e.constructor.is);dt.set(e,{changes:new Map,connected:!1,dispose:Ee,error:void 0,log:t,options:void 0,promises:[],state:B,timer:null,value:void 0,version:0})}return dt.get(e)}function Tt(e){let t=U(e),{error:n,promises:r,state:i}=t;(i===$||i===W)&&(t.promises=[],i===$?r.forEach(({resolve:a})=>a(e)):i===W&&r.forEach(({reject:a})=>a(n))),e.dispatchEvent(new CustomEvent(Ba[i],{bubbles:!0}))}function At(e){let t=dt.get(e);[W,B,$].forEach(n=>{e.classList.toggle(Wa[n],n===t.state)})}var $a={get error(){return U(this).error},get log(){return U(this).log},get options(){return U(this).options},get state(){return U(this).state},get value(){return U(this).value},attributeChangedCallback(e,t,n){U(this).changes.set(e,n),this.requestUpdate()},connectedCallback(){U(this).dispose=kn(()=>this.requestUpdate(!0))},disconnectedCallback(){let e=U(this);e.connected&&(e.connected=!1,e.log.debug("Disconnected:",{element:this})),e.dispose(),e.dispose=Ee},onceSettled(){let{error:e,promises:t,state:n}=U(this);return $===n?Promise.resolve(this):W===n?Promise.reject(e):new Promise((r,i)=>{t.push({resolve:r,reject:i})})},toggleResolved(e,t,n){let r=U(this);return e!==r.version?!1:(n!==void 0&&(r.options=n),r.state=$,r.value=t,At(this),this.log.debug("Resolved:",{element:this,value:t}),ie(()=>Tt(this)),!0)},toggleFailed(e,t,n){let r=U(this);return e!==r.version?!1:(n!==void 0&&(r.options=n),r.error=t,r.state=W,At(this),r.log.error("Failed:",{element:this,error:t}),ie(()=>Tt(this)),!0)},togglePending(e){let t=U(this);return t.version++,e&&(t.options=e),t.state=B,At(this),ie(()=>Tt(this)),t.version},requestUpdate(e=!1){if(!this.isConnected||!D())return;let t=U(this);if(t.timer)return;let{error:n,options:r,state:i,value:a,version:o}=t;t.state=B,t.timer=ie(async()=>{t.timer=null;let s=null;if(t.changes.size&&(s=Object.fromEntries(t.changes.entries()),t.changes.clear()),t.connected?t.log.debug("Updated:",{element:this,changes:s}):(t.connected=!0,t.log.debug("Connected:",{element:this,changes:s})),s||e)try{await this.render?.()===!1&&t.state===B&&t.version===o&&(t.state=i,t.error=n,t.value=a,At(this),Tt(this))}catch(c){this.toggleFailed(t.version,c,r)}})}};function Fn(e={}){return Object.entries(e).forEach(([t,n])=>{(n==null||n===""||n?.length===0)&&delete e[t]}),e}function St(e,t={}){let{tag:n,is:r}=e,i=document.createElement(n,{is:r});return i.setAttribute("is",r),Object.assign(i.dataset,Fn(t)),i}function Et(e){let{tag:t,is:n,prototype:r}=e,i=window.customElements.get(n);return i||(Object.defineProperties(r,Object.getOwnPropertyDescriptors($a)),i=Object.defineProperties(e,Object.getOwnPropertyDescriptors(ja)),window.customElements.define(n,i,{extends:t})),i}function xt(e,t=document.body){return Array.from(t?.querySelectorAll(`${e.tag}[is="${e.is}"]`)??[])}function bt(e,t={}){return e instanceof HTMLElement?(Object.assign(e.dataset,Fn(t)),e):null}var qa="download",Za="upgrade",me,ye=class ye extends HTMLAnchorElement{constructor(){super();kr(this,me,void 0);this.addEventListener("click",this.clickHandler)}static get observedAttributes(){return["data-checkout-workflow","data-checkout-workflow-step","data-extra-options","data-ims-country","data-perpetual","data-promotion-code","data-quantity","data-template","data-wcs-osi","data-entitlement","data-upgrade","data-modal"]}static createCheckoutLink(n={},r=""){let i=D();if(!i)return null;let{checkoutMarketSegment:a,checkoutWorkflow:o,checkoutWorkflowStep:s,entitlement:c,upgrade:u,modal:l,perpetual:p,promotionCode:f,quantity:m,wcsOsi:T,extraOptions:x}=i.collectCheckoutOptions(n),b=St(ye,{checkoutMarketSegment:a,checkoutWorkflow:o,checkoutWorkflowStep:s,entitlement:c,upgrade:u,modal:l,perpetual:p,promotionCode:f,quantity:m,wcsOsi:T,extraOptions:x});return r&&(b.innerHTML=`${r}`),b}static getCheckoutLinks(n){return xt(ye,n)}get isCheckoutLink(){return!0}get placeholder(){return this}clickHandler(n){var r;(r=_t(this,me))==null||r.call(this,n)}async render(n={}){if(!this.isConnected)return!1;let r=D();if(!r)return!1;this.dataset.imsCountry||r.imsCountryPromise.then(l=>{l&&(this.dataset.imsCountry=l)},Ee);let i=r.collectCheckoutOptions(n,this.placeholder);if(!i.wcsOsi.length)return!1;let a;try{a=JSON.parse(i.extraOptions??"{}")}catch(l){this.placeholder.log.error("cannot parse exta checkout options",l)}let o=this.placeholder.togglePending(i);this.href="";let s=r.resolveOfferSelectors(i),c=await Promise.all(s);c=c.map(l=>Me(l,i));let u=await r.buildCheckoutAction(c.flat(),{...a,...i});return this.renderOffers(c.flat(),i,{},u,o)}renderOffers(n,r,i={},a=void 0,o=void 0){if(!this.isConnected)return!1;let s=D();if(!s)return!1;if(r={...JSON.parse(this.placeholder.dataset.extraOptions??"null"),...r,...i},o??(o=this.placeholder.togglePending(r)),_t(this,me)&&It(this,me,void 0),a){this.classList.remove(qa,Za),this.placeholder.toggleResolved(o,n,r);let{url:u,text:l,className:p,handler:f}=a;return u&&(this.href=u),l&&(this.firstElementChild.innerHTML=l),p&&this.classList.add(...p.split(" ")),f&&(this.setAttribute("href","#"),It(this,me,f.bind(this))),!0}else if(n.length){if(this.placeholder.toggleResolved(o,n,r)){let u=s.buildCheckoutURL(n,r);return this.setAttribute("href",u),!0}}else{let u=new Error(`Not provided: ${r?.wcsOsi??"-"}`);if(this.placeholder.toggleFailed(o,u,r))return this.setAttribute("href","#"),!0}return!1}updateOptions(n={}){let r=D();if(!r)return!1;let{checkoutMarketSegment:i,checkoutWorkflow:a,checkoutWorkflowStep:o,entitlement:s,upgrade:c,modal:u,perpetual:l,promotionCode:p,quantity:f,wcsOsi:m}=r.collectCheckoutOptions(n);return bt(this,{checkoutMarketSegment:i,checkoutWorkflow:a,checkoutWorkflowStep:o,entitlement:s,upgrade:c,modal:u,perpetual:l,promotionCode:p,quantity:f,wcsOsi:m}),!0}};me=new WeakMap,Q(ye,"is","checkout-link"),Q(ye,"tag","a");var Vr=ye,gt=Et(Vr);var Xn=[h.uk,h.au,h.fr,h.at,h.be_en,h.be_fr,h.be_nl,h.bg,h.ch_de,h.ch_fr,h.ch_it,h.cz,h.de,h.dk,h.ee,h.eg_ar,h.eg_en,h.es,h.fi,h.fr,h.gr_el,h.gr_en,h.hu,h.ie,h.it,h.lu_de,h.lu_en,h.lu_fr,h.nl,h.no,h.pl,h.pt,h.ro,h.se,h.si,h.sk,h.tr,h.ua,h.id_en,h.id_id,h.in_en,h.in_hi,h.jp,h.my_en,h.my_ms,h.nz,h.th_en,h.th_th],Ja={INDIVIDUAL_COM:[h.za,h.lt,h.lv,h.ng,h.sa_ar,h.sa_en,h.za,h.sg,h.kr],TEAM_COM:[h.za,h.lt,h.lv,h.ng,h.za,h.co,h.kr],INDIVIDUAL_EDU:[h.lt,h.lv,h.sa_en,h.sea],TEAM_EDU:[h.sea,h.kr]},Pe=class Pe extends HTMLSpanElement{static get observedAttributes(){return["data-display-old-price","data-display-per-unit","data-display-recurrence","data-display-tax","data-perpetual","data-promotion-code","data-tax-exclusive","data-template","data-wcs-osi"]}static createInlinePrice(t){let n=D();if(!n)return null;let{displayOldPrice:r,displayPerUnit:i,displayRecurrence:a,displayTax:o,forceTaxExclusive:s,perpetual:c,promotionCode:u,quantity:l,template:p,wcsOsi:f}=n.collectPriceOptions(t);return St(Pe,{displayOldPrice:r,displayPerUnit:i,displayRecurrence:a,displayTax:o,forceTaxExclusive:s,perpetual:c,promotionCode:u,quantity:l,template:p,wcsOsi:f})}static getInlinePrices(t){return xt(Pe,t)}get isInlinePrice(){return!0}get placeholder(){return this}resolveDisplayTaxForGeoAndSegment(t,n,r,i){let a=`${t}_${n}`;if(Xn.includes(t)||Xn.includes(a))return!0;let o=Ja[`${r}_${i}`];return o?!!(o.includes(t)||o.includes(a)):!1}async resolveDisplayTax(t,n){let[r]=await t.resolveOfferSelectors(n),i=Me(await r,n);if(i?.length){let{country:a,language:o}=n,s=i[0],[c=""]=s.marketSegments;return this.resolveDisplayTaxForGeoAndSegment(a,o,s.customerSegment,c)}}async render(t={}){if(!this.isConnected)return!1;let n=D();if(!n)return!1;let r=n.collectPriceOptions(t,this.placeholder);if(!r.wcsOsi.length)return!1;let i=this.placeholder.togglePending(r);this.innerHTML="";let[a]=n.resolveOfferSelectors(r);return this.renderOffers(Me(await a,r),r,i)}renderOffers(t,n={},r=void 0){if(!this.isConnected)return;let i=D();if(!i)return!1;let a=i.collectPriceOptions({...this.dataset,...n});if(r??(r=this.placeholder.togglePending(a)),t.length){if(this.placeholder.toggleResolved(r,t,a))return this.innerHTML=i.buildPriceHTML(t,a),!0}else{let o=new Error(`Not provided: ${a?.wcsOsi??"-"}`);if(this.placeholder.toggleFailed(r,o,a))return this.innerHTML="",!0}return!1}updateOptions(t){let n=D();if(!n)return!1;let{displayOldPrice:r,displayPerUnit:i,displayRecurrence:a,displayTax:o,forceTaxExclusive:s,perpetual:c,promotionCode:u,quantity:l,template:p,wcsOsi:f}=n.collectPriceOptions(t);return bt(this,{displayOldPrice:r,displayPerUnit:i,displayRecurrence:a,displayTax:o,forceTaxExclusive:s,perpetual:c,promotionCode:u,quantity:l,template:p,wcsOsi:f}),!0}};Q(Pe,"is","inline-price"),Q(Pe,"tag","span");var Or=Pe,Lt=Et(Or);function Yn({providers:e,settings:t},n){let r=k.module("checkout");function i(u,l){let{checkoutClientId:p,checkoutWorkflow:f,checkoutWorkflowStep:m,country:T,language:x,promotionCode:b,quantity:P}=t,{checkoutMarketSegment:_,checkoutWorkflow:L=f,checkoutWorkflowStep:O=m,imsCountry:v,country:I=v??T,language:R=x,quantity:F=P,entitlement:q,upgrade:te,modal:X,perpetual:ae,promotionCode:oe=b,wcsOsi:Z,extraOptions:Y,...Te}=Object.assign({},l?.dataset??{},u??{}),He=ne(L,z,S.checkoutWorkflow),Fe=j.CHECKOUT;He===z.V3&&(Fe=ne(O,j,S.checkoutWorkflowStep));let _e=be({...Te,extraOptions:Y,checkoutClientId:p,checkoutMarketSegment:_,country:I,quantity:ve(F,S.quantity),checkoutWorkflow:He,checkoutWorkflowStep:Fe,language:R,entitlement:g(q),upgrade:g(te),modal:g(X),perpetual:g(ae),promotionCode:Ve(oe).effectivePromoCode,wcsOsi:pt(Z)});if(l)for(let vt of e.checkout)vt(l,_e);return _e}async function a(u,l){let p=D(),f=await n.getCheckoutAction?.(u,l,p.imsSignedInPromise);return f||null}function o(u,l){if(!Array.isArray(u)||!u.length||!l)return"";let{env:p,landscape:f}=t,{checkoutClientId:m,checkoutMarketSegment:T,checkoutWorkflow:x,checkoutWorkflowStep:b,country:P,promotionCode:_,quantity:L,...O}=i(l),v=window.frameElement?"if":"fp",I={checkoutPromoCode:_,clientId:m,context:v,country:P,env:p,items:[],marketSegment:T,workflowStep:b,landscape:f,...O};if(u.length===1){let[{offerId:R,offerType:F,productArrangementCode:q}]=u,{marketSegments:[te]}=u[0];Object.assign(I,{marketSegment:te,offerType:F,productArrangementCode:q}),I.items.push(L[0]===1?{id:R}:{id:R,quantity:L[0]})}else I.items.push(...u.map(({offerId:R},F)=>({id:R,quantity:L[F]??S.quantity})));return wt(x,I)}let{createCheckoutLink:s,getCheckoutLinks:c}=gt;return{CheckoutLink:gt,CheckoutWorkflow:z,CheckoutWorkflowStep:j,buildCheckoutAction:a,buildCheckoutURL:o,collectCheckoutOptions:i,createCheckoutLink:s,getCheckoutLinks:c}}function Qa({interval:e=200,maxAttempts:t=25}={}){let n=k.module("ims");return new Promise(r=>{n.debug("Waing for IMS to be ready");let i=0;function a(){window.adobeIMS?.initialized?r():++i>t?(n.debug("Timeout"),r()):setTimeout(a,e)}a()})}function eo(e){return e.then(()=>window.adobeIMS?.isSignedInUser()??!1)}function to(e){let t=k.module("ims");return e.then(n=>n?window.adobeIMS.getProfile().then(({countryCode:r})=>(t.debug("Got user country:",r),r),r=>{t.error("Unable to get user country:",r)}):null)}function Kn({}){let e=Qa(),t=eo(e),n=to(t);return{imsReadyPromise:e,imsSignedInPromise:t,imsCountryPromise:n}}async function jn(e,t){let{data:n}=t||await Promise.resolve().then(()=>si(zn(),1));if(Array.isArray(n)){let r=a=>n.find(o=>ze(o.lang,a)),i=r(e.language)??r(S.language);if(i)return Object.freeze(i)}return{}}function Wn({literals:e,providers:t,settings:n}){function r(s,c){let{country:u,displayOldPrice:l,displayPerUnit:p,displayRecurrence:f,displayTax:m,forceTaxExclusive:T,language:x,promotionCode:b,quantity:P}=n,{displayOldPrice:_=l,displayPerUnit:L=p,displayRecurrence:O=f,displayTax:v=m,forceTaxExclusive:I=T,country:R=u,language:F=x,perpetual:q,promotionCode:te=b,quantity:X=P,template:ae,wcsOsi:oe,...Z}=Object.assign({},c?.dataset??{},s??{}),Y=be({...Z,country:R,displayOldPrice:g(_),displayPerUnit:g(L),displayRecurrence:g(O),displayTax:g(v),forceTaxExclusive:g(I),language:F,perpetual:g(q),promotionCode:Ve(te).effectivePromoCode,quantity:ve(X,S.quantity),template:ae,wcsOsi:pt(oe)});if(c)for(let Te of t.price)Te(c,Y);return Y}function i(s,c){if(!Array.isArray(s)||!s.length||!c)return"";let{template:u}=c,l;switch(u){case"discount":l=mr;break;case"strikethrough":l=pr;break;case"optical":l=fr;break;case"annual":l=hr;break;default:l=c.promotionCode?ur:cr}let p=r(c);p.literals=Object.assign({},e.price,be(c.literals??{}));let[f]=s;return f={...f,...f.priceDetails},l(p,f)}let{createInlinePrice:a,getInlinePrices:o}=Lt;return{InlinePrice:Lt,buildPriceHTML:i,collectPriceOptions:r,createInlinePrice:a,getInlinePrices:o}}function Bn({settings:e}){let t=k.module("wcs"),{env:n,wcsApiKey:r}=e,i=new Map,a=new Map,o;async function s(l,p,f=!0){let m=Sr;t.debug("Fetching:",l);try{l.offerSelectorIds=l.offerSelectorIds.sort();let T=new URL(e.wcsURL);T.searchParams.set("offer_selector_ids",l.offerSelectorIds.join(",")),T.searchParams.set("country",l.country),T.searchParams.set("locale",l.locale),T.searchParams.set("landscape",n===pe.STAGE?"ALL":e.landscape),T.searchParams.set("api_key",r),l.language&&T.searchParams.set("language",l.language),l.promotionCode&&T.searchParams.set("promotion_code",l.promotionCode),l.currency&&T.searchParams.set("currency",l.currency);let x=await fetch(T.toString(),{credentials:"omit"});if(x.ok){let b=await x.json();t.debug("Fetched:",l,b);let P=b.resolvedOffers??[];P=P.map(Be),p.forEach(({resolve:_},L)=>{let O=P.filter(({offerSelectorIds:v})=>v.includes(L)).flat();O.length&&(p.delete(L),_(O))})}else x.status===404&&l.offerSelectorIds.length>1?(t.debug("Multi-osi 404, fallback to fetch-by-one strategy"),await Promise.allSettled(l.offerSelectorIds.map(b=>s({...l,offerSelectorIds:[b]},p,!1)))):(m=lt,t.error(m,l))}catch(T){m=lt,t.error(m,l,T)}f&&p.size&&(t.debug("Missing:",{offerSelectorIds:[...p.keys()]}),p.forEach(T=>{T.reject(new Error(m))}))}function c(){clearTimeout(o);let l=[...a.values()];a.clear(),l.forEach(({options:p,promises:f})=>s(p,f))}function u({country:l,language:p,perpetual:f=!1,promotionCode:m="",wcsOsi:T=[]}){let x=`${p}_${l}`;l!=="GB"&&(p=f?"EN":"MULT");let b=[l,p,m].filter(P=>P).join("-").toLowerCase();return T.map(P=>{let _=`${P}-${b}`;if(!i.has(_)){let L=new Promise((O,v)=>{let I=a.get(b);if(!I){let R={country:l,locale:x,offerSelectorIds:[]};l!=="GB"&&(R.language=p),I={options:R,promises:new Map},a.set(b,I)}m&&(I.options.promotionCode=m),I.options.offerSelectorIds.push(P),I.promises.set(P,{resolve:O,reject:v}),I.options.offerSelectorIds.length>=e.wcsBufferLimit?c():(t.debug("Queued:",I.options),o||(o=setTimeout(c,e.wcsBufferDelay)))});i.set(_,L)}return i.get(_)})}return{WcsCommitment:Tr,WcsPlanType:Ar,WcsTerm:dr,resolveOfferSelectors:u}}var M=class extends HTMLElement{get isWcmsCommerce(){return!0}};Q(M,"instance"),Q(M,"promise",null);window.customElements.define(ee,M);async function no(e,t){let n=k.init(e.env).module("service");n.debug("Activating:",e);let r={price:{}},i=Object.freeze(_r(e));try{r.price=await jn(i,e.commerce.priceLiterals)}catch(c){n.warn("Price literals were not fetched:",c)}let a={checkout:new Set,price:new Set},o=document.createElement(ee),s={literals:r,providers:a,settings:i};return M.instance=Object.defineProperties(o,Object.getOwnPropertyDescriptors({...Yn(s,t),...Kn(s),...Wn(s),...Bn(s),...vr,Log:k,get defaults(){return S},get literals(){return r},get log(){return k},get providers(){return{checkout(c){return a.checkout.add(c),()=>a.checkout.delete(c)},price(c){return a.price.add(c),()=>a.price.delete(c)}}},get settings(){return i}})),n.debug("Activated:",{literals:r,settings:i,element:o}),document.head.append(o),ie(()=>{let c=new CustomEvent(Le,{bubbles:!0,cancelable:!1,detail:M.instance});M.instance.dispatchEvent(c)}),M.instance}function $n(){document.head.querySelector(ee)?.remove(),M.promise=null,k.reset()}function Cr(e,t){let n=re(e)?e():null,r=re(t)?t():{};return n&&(r.force&&$n(),no(n,r).then(i=>{Cr.resolve(i)})),M.promise??(M.promise=new Promise(i=>{Cr.resolve=i})),M.promise}export{gt as CheckoutLink,z as CheckoutWorkflow,j as CheckoutWorkflowStep,S as Defaults,Lt as InlinePrice,he as Landscape,k as Log,ee as TAG_NAME_SERVICE,Tr as WcsCommitment,Ar as WcsPlanType,dr as WcsTerm,Be as applyPlanType,Rn as getLocaleSettings,_r as getSettings,Cr as init,$n as reset}; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var __accessCheck = (obj, member, msg) => { + if (!member.has(obj)) + throw TypeError("Cannot " + msg); +}; +var __privateGet = (obj, member, getter) => { + __accessCheck(obj, member, "read from private field"); + return getter ? getter.call(obj) : member.get(obj); +}; +var __privateAdd = (obj, member, value) => { + if (member.has(obj)) + throw TypeError("Cannot add the same private member more than once"); + member instanceof WeakSet ? member.add(obj) : member.set(obj, value); +}; +var __privateSet = (obj, member, value, setter) => { + __accessCheck(obj, member, "write to private field"); + setter ? setter.call(obj, value) : member.set(obj, value); + return value; +}; + +// price-literals.json +var require_price_literals = __commonJS({ + "price-literals.json"(exports, module) { + module.exports = { total: 38, offset: 0, limit: 38, data: [{ lang: "ar", recurrenceLabel: "{recurrenceTerm, select, MONTH {/\u0627\u0644\u0634\u0647\u0631} YEAR {/\u0627\u0644\u0639\u0627\u0645} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {\u0643\u0644 \u0634\u0647\u0631} YEAR {\u0643\u0644 \u0639\u0627\u0645} other {}}", perUnitLabel: "{perUnit, select, LICENSE {\u0644\u0643\u0644 \u062A\u0631\u062E\u064A\u0635} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {\u0644\u0643\u0644 \u062A\u0631\u062E\u064A\u0635} other {}}", freeLabel: "\u0645\u062C\u0627\u0646\u064B\u0627", freeAriaLabel: "\u0645\u062C\u0627\u0646\u064B\u0627", taxExclusiveLabel: "{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}", alternativePriceAriaLabel: "\u0623\u0648 \u0628\u062F\u0644\u0627\u064B \u0645\u0646 \u0630\u0644\u0643 \u0628\u0642\u064A\u0645\u0629 {alternativePrice}", strikethroughAriaLabel: "\u0628\u0634\u0643\u0644 \u0645\u0646\u062A\u0638\u0645 \u0628\u0642\u064A\u0645\u0629 {strikethroughPrice}" }, { lang: "bg", recurrenceLabel: "{recurrenceTerm, select, MONTH {/\u043C\u0435\u0441.} YEAR {/\u0433\u043E\u0434.} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {\u043D\u0430 \u043C\u0435\u0441\u0435\u0446} YEAR {\u043D\u0430 \u0433\u043E\u0434\u0438\u043D\u0430} other {}}", perUnitLabel: "{perUnit, select, LICENSE {\u043D\u0430 \u043B\u0438\u0446\u0435\u043D\u0437} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {\u043D\u0430 \u043B\u0438\u0446\u0435\u043D\u0437} other {}}", freeLabel: "\u0411\u0435\u0437\u043F\u043B\u0430\u0442\u043D\u043E", freeAriaLabel: "\u0411\u0435\u0437\u043F\u043B\u0430\u0442\u043D\u043E", taxExclusiveLabel: "{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}", taxInclusiveLabel: "{incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}", alternativePriceAriaLabel: "\u0410\u043B\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u043E \u043D\u0430 {alternativePrice}", strikethroughAriaLabel: "\u0420\u0435\u0434\u043E\u0432\u043D\u043E \u043D\u0430 {strikethroughPrice}" }, { lang: "cs", recurrenceLabel: "{recurrenceTerm, select, MONTH {/m\u011Bs\xEDc} YEAR {/rok} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {za m\u011Bs\xEDc} YEAR {za rok} other {}}", perUnitLabel: "{perUnit, select, LICENSE {za licenci} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {za licenci} other {}}", freeLabel: "Zdarma", freeAriaLabel: "Zdarma", taxExclusiveLabel: "{taxTerm, select, GST {bez dan\u011B ze zbo\u017E\xED a slu\u017Eeb} VAT {bez DPH} TAX {bez dan\u011B} IVA {bez IVA} SST {bez SST} KDV {bez KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {v\u010Detn\u011B dan\u011B ze zbo\u017E\xED a slu\u017Eeb} VAT {v\u010Detn\u011B DPH} TAX {v\u010Detn\u011B dan\u011B} IVA {v\u010Detn\u011B IVA} SST {v\u010Detn\u011B SST} KDV {v\u010Detn\u011B KDV} other {}}", alternativePriceAriaLabel: "P\u0159\xEDpadn\u011B za {alternativePrice}", strikethroughAriaLabel: "Pravideln\u011B za {strikethroughPrice}" }, { lang: "da", recurrenceLabel: "{recurrenceTerm, select, MONTH {/md} YEAR {/\xE5r} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {pr. m\xE5ned} YEAR {pr. \xE5r} other {}}", perUnitLabel: "{perUnit, select, LICENSE {pr. licens} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {pr. licens} other {}}", freeLabel: "Gratis", freeAriaLabel: "Gratis", taxExclusiveLabel: "{taxTerm, select, GST {ekskl. GST} VAT {ekskl. moms} TAX {ekskl. skat} IVA {ekskl. IVA} SST {ekskl. SST} KDV {ekskl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {inkl. GST} VAT {inkl. moms} TAX {inkl. skat} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}", alternativePriceAriaLabel: "Alternativt til {alternativePrice}", strikethroughAriaLabel: "Normalpris {strikethroughPrice}" }, { lang: "de", recurrenceLabel: "{recurrenceTerm, select, MONTH {/Monat} YEAR {/Jahr} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {pro Monat} YEAR {pro Jahr} other {}}", perUnitLabel: "{perUnit, select, LICENSE {pro Lizenz} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {pro Lizenz} other {}}", freeLabel: "Kostenlos", freeAriaLabel: "Kostenlos", taxExclusiveLabel: "{taxTerm, select, GST {zzgl. GST} VAT {zzgl. MwSt.} TAX {zzgl. Steuern} IVA {zzgl. IVA} SST {zzgl. SST} KDV {zzgl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {inkl. GST} VAT {inkl. MwSt.} TAX {inkl. Steuern} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}", alternativePriceAriaLabel: "Alternativ: {alternativePrice}", strikethroughAriaLabel: "Regul\xE4r: {strikethroughPrice}" }, { lang: "en", recurrenceLabel: "{recurrenceTerm, select, MONTH {/mo} YEAR {/yr} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {per month} YEAR {per year} other {}}", perUnitLabel: "{perUnit, select, LICENSE {per license} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {per license} other {}}", freeLabel: "Free", freeAriaLabel: "Free", taxExclusiveLabel: "{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}", alternativePriceAriaLabel: "Alternatively at {alternativePrice}", strikethroughAriaLabel: "Regularly at {strikethroughPrice}" }, { lang: "et", recurrenceLabel: "{recurrenceTerm, select, MONTH {kuus} YEAR {aastas} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {kuus} YEAR {aastas} other {}}", perUnitLabel: "{perUnit, select, LICENSE {litsentsi kohta} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {litsentsi kohta} other {}}", freeLabel: "Tasuta", freeAriaLabel: "Tasuta", taxExclusiveLabel: "{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}", alternativePriceAriaLabel: "Teise v\xF5imalusena hinnaga {alternativePrice}", strikethroughAriaLabel: "Tavahind {strikethroughPrice}" }, { lang: "fi", recurrenceLabel: "{recurrenceTerm, select, MONTH {/kk} YEAR {/v} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {kuukausittain} YEAR {vuosittain} other {}}", perUnitLabel: "{perUnit, select, LICENSE {k\xE4ytt\xF6oikeutta kohti} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {k\xE4ytt\xF6oikeutta kohti} other {}}", freeLabel: "Maksuton", freeAriaLabel: "Maksuton", taxExclusiveLabel: "{taxTerm, select, GST {ilman GST:t\xE4} VAT {ilman ALV:t\xE4} TAX {ilman veroja} IVA {ilman IVA:ta} SST {ilman SST:t\xE4} KDV {ilman KDV:t\xE4} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {sis. GST:n} VAT {sis. ALV:n} TAX {sis. verot} IVA {sis. IVA:n} SST {sis. SST:n} KDV {sis. KDV:n} other {}}", alternativePriceAriaLabel: "Vaihtoehtoisesti hintaan {alternativePrice}", strikethroughAriaLabel: "S\xE4\xE4nn\xF6llisesti hintaan {strikethroughPrice}" }, { lang: "fr", recurrenceLabel: "{recurrenceTerm, select, MONTH {/mois} YEAR {/an} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {par mois} YEAR {par an} other {}}", perUnitLabel: "{perUnit, select, LICENSE {par licence} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {par licence} other {}}", freeLabel: "Gratuit", freeAriaLabel: "Gratuit", taxExclusiveLabel: "{taxTerm, select, GST {hors TPS} VAT {hors TVA} TAX {hors taxes} IVA {hors IVA} SST {hors SST} KDV {hors KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {TPS comprise} VAT {TVA comprise} TAX {taxes comprises} IVA {IVA comprise} SST {SST comprise} KDV {KDV comprise} other {}}", alternativePriceAriaLabel: "Autre prix {alternativePrice}", strikethroughAriaLabel: "Prix habituel {strikethroughPrice}" }, { lang: "he", recurrenceLabel: "{recurrenceTerm, select, MONTH {/\u05D7\u05D5\u05D3\u05E9} YEAR {/\u05E9\u05E0\u05D4} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {\u05DC\u05D7\u05D5\u05D3\u05E9} YEAR {\u05DC\u05E9\u05E0\u05D4} other {}}", perUnitLabel: "{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}", freeLabel: "\u05D7\u05D9\u05E0\u05DD", freeAriaLabel: "\u05D7\u05D9\u05E0\u05DD", taxExclusiveLabel: "{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}", alternativePriceAriaLabel: "\u05DC\u05D7\u05DC\u05D5\u05E4\u05D9\u05DF \u05D1-{alternativePrice}", strikethroughAriaLabel: "\u05D1\u05D0\u05D5\u05E4\u05DF \u05E7\u05D1\u05D5\u05E2 \u05D1-{strikethroughPrice}" }, { lang: "hu", recurrenceLabel: "{recurrenceTerm, select, MONTH {/h\xF3} YEAR {/\xE9v} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {havonta} YEAR {\xE9vente} other {}}", perUnitLabel: "{perUnit, select, LICENSE {licencenk\xE9nt} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {licencenk\xE9nt} other {}}", freeLabel: "Ingyenes", freeAriaLabel: "Ingyenes", taxExclusiveLabel: "{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}", alternativePriceAriaLabel: "M\xE1sik lehet\u0151s\xE9g: {alternativePrice}", strikethroughAriaLabel: "\xC1ltal\xE1ban {strikethroughPrice} \xE1ron" }, { lang: "it", recurrenceLabel: "{recurrenceTerm, select, MONTH {/mese} YEAR {/anno} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {al mese} YEAR {all'anno} other {}}", perUnitLabel: "{perUnit, select, LICENSE {per licenza} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {per licenza} other {}}", freeLabel: "Gratuito", freeAriaLabel: "Gratuito", taxExclusiveLabel: "{taxTerm, select, GST {escl. GST} VAT {escl. IVA.} TAX {escl. imposte} IVA {escl. IVA} SST {escl. SST} KDV {escl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {incl. GST} VAT {incl. IVA} TAX {incl. imposte} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}", alternativePriceAriaLabel: "In alternativa a {alternativePrice}", strikethroughAriaLabel: "Regolarmente a {strikethroughPrice}" }, { lang: "ja", recurrenceLabel: "{recurrenceTerm, select, MONTH {/\u6708} YEAR {/\u5E74} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {\u6BCE\u6708} YEAR {\u6BCE\u5E74} other {}}", perUnitLabel: "{perUnit, select, LICENSE {\u30E9\u30A4\u30BB\u30F3\u30B9\u3054\u3068} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {\u30E9\u30A4\u30BB\u30F3\u30B9\u3054\u3068} other {}}", freeLabel: "\u7121\u6599", freeAriaLabel: "\u7121\u6599", taxExclusiveLabel: "{taxTerm, select, GST {GST \u5225} VAT {VAT \u5225} TAX {\u7A0E\u5225} IVA {IVA \u5225} SST {SST \u5225} KDV {KDV \u5225} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {GST \u8FBC} VAT {VAT \u8FBC} TAX {\u7A0E\u8FBC} IVA {IVA \u8FBC} SST {SST \u8FBC} KDV {KDV \u8FBC} other {}}", alternativePriceAriaLabel: "\u7279\u5225\u4FA1\u683C : {alternativePrice}", strikethroughAriaLabel: "\u901A\u5E38\u4FA1\u683C : {strikethroughPrice}" }, { lang: "ko", recurrenceLabel: "{recurrenceTerm, select, MONTH {/\uC6D4} YEAR {/\uB144} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {\uC6D4\uAC04} YEAR {\uC5F0\uAC04} other {}}", perUnitLabel: "{perUnit, select, LICENSE {\uB77C\uC774\uC120\uC2A4\uB2F9} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {\uB77C\uC774\uC120\uC2A4\uB2F9} other {}}", freeLabel: "\uBB34\uB8CC", freeAriaLabel: "\uBB34\uB8CC", taxExclusiveLabel: "{taxTerm, select, GST {GST \uC81C\uC678} VAT {VAT \uC81C\uC678} TAX {\uC138\uAE08 \uC81C\uC678} IVA {IVA \uC81C\uC678} SST {SST \uC81C\uC678} KDV {KDV \uC81C\uC678} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {GST \uD3EC\uD568} VAT {VAT \uD3EC\uD568} TAX {\uC138\uAE08 \uD3EC\uD568} IVA {IVA \uD3EC\uD568} SST {SST \uD3EC\uD568} KDV {KDV \uD3EC\uD568} other {}}", alternativePriceAriaLabel: "\uB610\uB294 {alternativePrice}\uC5D0", strikethroughAriaLabel: "\uB610\uB294 {alternativePrice}\uC5D0" }, { lang: "lt", recurrenceLabel: "{recurrenceTerm, select, MONTH { per m\u0117n.} YEAR { per metus} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {per m\u0117n.} YEAR {per metus} other {}}", perUnitLabel: "{perUnit, select, LICENSE {u\u017E licencij\u0105} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {u\u017E licencij\u0105} other {}}", freeLabel: "Nemokamai", freeAriaLabel: "Nemokamai", taxExclusiveLabel: "{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}", alternativePriceAriaLabel: "Arba u\u017E {alternativePrice}", strikethroughAriaLabel: "Normaliai u\u017E {strikethroughPrice}" }, { lang: "lv", recurrenceLabel: "{recurrenceTerm, select, MONTH {m\u0113nes\u012B} YEAR {gad\u0101} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {m\u0113nes\u012B} YEAR {gad\u0101} other {}}", perUnitLabel: "{perUnit, select, LICENSE {vienai licencei} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {vienai licencei} other {}}", freeLabel: "Bezmaksas", freeAriaLabel: "Bezmaksas", taxExclusiveLabel: "{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}", alternativePriceAriaLabel: "Alternat\u012Bvi par {alternativePrice}", strikethroughAriaLabel: "Regul\u0101ri par {strikethroughPrice}" }, { lang: "nb", recurrenceLabel: "{recurrenceTerm, select, MONTH {/mnd.} YEAR {/\xE5r} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {per m\xE5ned} YEAR {per \xE5r} other {}}", perUnitLabel: "{perUnit, select, LICENSE {per lisens} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {per lisens} other {}}", freeLabel: "Fri", freeAriaLabel: "Fri", taxExclusiveLabel: "{taxTerm, select, GST {ekskl. GST} VAT {ekskl. moms} TAX {ekskl. avgift} IVA {ekskl. IVA} SST {ekskl. SST} KDV {ekskl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {inkl. GST} VAT {inkl. moms} TAX {inkl. avgift} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}", alternativePriceAriaLabel: "Alternativt til {alternativePrice}", strikethroughAriaLabel: "Regelmessig til {strikethroughPrice}" }, { lang: "nl", recurrenceLabel: "{recurrenceTerm, select, MONTH {/mnd} YEAR {/jr} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {per maand} YEAR {per jaar} other {}}", perUnitLabel: "{perUnit, select, LICENSE {per licentie} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {per licentie} other {}}", freeLabel: "Gratis", freeAriaLabel: "Gratis", taxExclusiveLabel: "{taxTerm, select, GST {excl. GST} VAT {excl. btw} TAX {excl. belasting} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {incl. GST} VAT {incl. btw} TAX {incl. belasting} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}", alternativePriceAriaLabel: "Nu {alternativePrice}", strikethroughAriaLabel: "Normaal {strikethroughPrice}" }, { lang: "pl", recurrenceLabel: "{recurrenceTerm, select, MONTH { / mies.} YEAR { / rok} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH { / miesi\u0105c} YEAR { / rok} other {}}", perUnitLabel: "{perUnit, select, LICENSE {za licencj\u0119} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {za licencj\u0119} other {}}", freeLabel: "Bezp\u0142atne", freeAriaLabel: "Bezp\u0142atne", taxExclusiveLabel: "{taxTerm, select, GST {bez GST} VAT {bez VAT} TAX {netto} IVA {bez IVA} SST {bez SST} KDV {bez KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {z GST} VAT {z VAT} TAX {brutto} IVA {z IVA} SST {z SST} KDV {z KDV} other {}}", alternativePriceAriaLabel: "Lub za {alternativePrice}", strikethroughAriaLabel: "Cena zwyk\u0142a: {strikethroughPrice}" }, { lang: "pt", recurrenceLabel: "{recurrenceTerm, select, MONTH {/m\xEAs} YEAR {/ano} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {por m\xEAs} YEAR {por ano} other {}}", perUnitLabel: "{perUnit, select, LICENSE {por licen\xE7a} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {por licen\xE7a} other {}}", freeLabel: "Gratuito", freeAriaLabel: "Gratuito", taxExclusiveLabel: "{taxTerm, select, GST {ICMS n\xE3o incluso} VAT {IVA n\xE3o incluso} TAX {impostos n\xE3o inclusos} IVA {IVA n\xE3o incluso} SST { SST n\xE3o incluso} KDV {KDV n\xE3o incluso} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {ICMS incluso} VAT {IVA incluso} TAX {impostos inclusos} IVA {IVA incluso} SST {SST incluso} KDV {KDV incluso} other {}}", alternativePriceAriaLabel: "Ou a {alternativePrice}", strikethroughAriaLabel: "Pre\xE7o normal: {strikethroughPrice}" }, { lang: "ro", recurrenceLabel: "{recurrenceTerm, select, MONTH {/lun\u0103} YEAR {/an} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {pe lun\u0103} YEAR {pe an} other {}}", perUnitLabel: "{perUnit, select, LICENSE {pe licen\u021B\u0103} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {pe licen\u021B\u0103} other {}}", freeLabel: "Gratuit", freeAriaLabel: "Gratuit", taxExclusiveLabel: "{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}", alternativePriceAriaLabel: "Alternativ, la {alternativePrice}", strikethroughAriaLabel: "\xCEn mod normal, la {strikethroughPrice}" }, { lang: "ru", recurrenceLabel: "{recurrenceTerm, select, MONTH {/\u043C\u0435\u0441.} YEAR {/\u0433.} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {\u0432 \u043C\u0435\u0441\u044F\u0446} YEAR {\u0432 \u0433\u043E\u0434} other {}}", perUnitLabel: "{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u044E} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u044E} other {}}", freeLabel: "\u0411\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E", freeAriaLabel: "\u0411\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E", taxExclusiveLabel: "{taxTerm, select, GST {\u0438\u0441\u043A\u043B. \u043D\u0430\u043B\u043E\u0433 \u043D\u0430 \u0442\u043E\u0432\u0430\u0440\u044B \u0438 \u0443\u0441\u043B\u0443\u0433\u0438} VAT {\u0438\u0441\u043A\u043B. \u041D\u0414\u0421} TAX {\u0438\u0441\u043A\u043B. \u043D\u0430\u043B\u043E\u0433} IVA {\u0438\u0441\u043A\u043B. \u0418\u0412\u0410} SST {\u0438\u0441\u043A\u043B. SST} KDV {\u0438\u0441\u043A\u043B. \u041A\u0414\u0412} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {\u0432\u043A\u043B. \u043D\u0430\u043B\u043E\u0433 \u043D\u0430 \u0442\u043E\u0432\u0430\u0440\u044B \u0438 \u0443\u0441\u043B\u0443\u0433\u0438} VAT {\u0432\u043A\u043B. \u041D\u0414\u0421} TAX {\u0432\u043A\u043B. \u043D\u0430\u043B\u043E\u0433} IVA {\u0432\u043A\u043B. \u0418\u0412\u0410} SST {\u0432\u043A\u043B. SST} KDV {\u0432\u043A\u043B. \u041A\u0414\u0412} other {}}", alternativePriceAriaLabel: "\u0410\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0437\u0430 {alternativePrice}", strikethroughAriaLabel: "\u0420\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u043E \u043F\u043E \u0446\u0435\u043D\u0435 {strikethroughPrice}" }, { lang: "sk", recurrenceLabel: "{recurrenceTerm, select, MONTH {/mesiac} YEAR {/rok} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {za mesiac} YEAR {za rok} other {}}", perUnitLabel: "{perUnit, select, LICENSE {za licenciu} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {za licenciu} other {}}", freeLabel: "Zadarmo", freeAriaLabel: "Zadarmo", taxExclusiveLabel: "{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}", alternativePriceAriaLabel: "Pr\xEDpadne za {alternativePrice}", strikethroughAriaLabel: "Pravidelne za {strikethroughPrice}" }, { lang: "sl", recurrenceLabel: "{recurrenceTerm, select, MONTH {/mesec} YEAR {/leto} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {na mesec} YEAR {na leto} other {}}", perUnitLabel: "{perUnit, select, LICENSE {na licenco} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {na licenco} other {}}", freeLabel: "Brezpla\u010Dno", freeAriaLabel: "Brezpla\u010Dno", taxExclusiveLabel: "{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}", alternativePriceAriaLabel: "Druga mo\u017Enost je: {alternativePrice}", strikethroughAriaLabel: "Redno po {strikethroughPrice}" }, { lang: "sv", recurrenceLabel: "{recurrenceTerm, select, MONTH {/m\xE5n} YEAR {/\xE5r} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {per m\xE5nad} YEAR {per \xE5r} other {}}", perUnitLabel: "{perUnit, select, LICENSE {per licens} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {per licens} other {}}", freeLabel: "Kostnadsfritt", freeAriaLabel: "Kostnadsfritt", taxExclusiveLabel: "{taxTerm, select, GST {exkl. GST} VAT {exkl. moms} TAX {exkl. skatt} IVA {exkl. IVA} SST {exkl. SST} KDV {exkl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {inkl. GST} VAT {inkl. moms} TAX {inkl. skatt} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}", alternativePriceAriaLabel: "Alternativt f\xF6r {alternativePrice}", strikethroughAriaLabel: "Normalpris {strikethroughPrice}" }, { lang: "tr", recurrenceLabel: "{recurrenceTerm, select, MONTH {/ay} YEAR {/y\u0131l} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {(ayl\u0131k)} YEAR {(y\u0131ll\u0131k)} other {}}", perUnitLabel: "{perUnit, select, LICENSE {(lisans ba\u015F\u0131na)} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {(lisans ba\u015F\u0131na)} other {}}", freeLabel: "\xDCcretsiz", freeAriaLabel: "\xDCcretsiz", taxExclusiveLabel: "{taxTerm, select, GST {GST hari\xE7} VAT {KDV hari\xE7} TAX {vergi hari\xE7} IVA {IVA hari\xE7} SST {SST hari\xE7} KDV {KDV hari\xE7} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {GST dahil} VAT {KDV dahil} TAX {vergi dahil} IVA {IVA dahil} SST {SST dahil} KDV {KDV dahil} other {}}", alternativePriceAriaLabel: "Ya da {alternativePrice}", strikethroughAriaLabel: "Standart fiyat: {strikethroughPrice}" }, { lang: "uk", recurrenceLabel: "{recurrenceTerm, select, MONTH {/\u043C\u0456\u0441.} YEAR {/\u0440\u0456\u043A} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {\u043D\u0430 \u043C\u0456\u0441\u044F\u0446\u044C} YEAR {\u043D\u0430 \u0440\u0456\u043A} other {}}", perUnitLabel: "{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0456\u0446\u0435\u043D\u0437\u0456\u044E} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0456\u0446\u0435\u043D\u0437\u0456\u044E} other {}}", freeLabel: "\u0411\u0435\u0437\u043A\u043E\u0448\u0442\u043E\u0432\u043D\u043E", freeAriaLabel: "\u0411\u0435\u0437\u043A\u043E\u0448\u0442\u043E\u0432\u043D\u043E", taxExclusiveLabel: "{taxTerm, select, GST {\u0431\u0435\u0437 GST} VAT {\u0431\u0435\u0437 \u041F\u0414\u0412} TAX {\u0431\u0435\u0437 \u043F\u043E\u0434\u0430\u0442\u043A\u0443} IVA {\u0431\u0435\u0437 IVA} SST {\u0431\u0435\u0437 SST} KDV {\u0431\u0435\u0437 KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 GST} VAT {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 \u041F\u0414\u0412} TAX {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 \u043F\u043E\u0434\u0430\u0442\u043A\u043E\u043C} IVA {\u0440\u0430\u0437\u043E\u043C \u0437 IVA} SST {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 SST} KDV {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 KDV} other {}}", alternativePriceAriaLabel: "\u0410\u0431\u043E \u0437\u0430 {alternativePrice}", strikethroughAriaLabel: "\u0417\u0432\u0438\u0447\u0430\u0439\u043D\u0430 \u0446\u0456\u043D\u0430 {strikethroughPrice}" }, { lang: "zh-hans", recurrenceLabel: "{recurrenceTerm, select, MONTH {/\u6708} YEAR {/\u5E74} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {\u6BCF\u6708} YEAR {\u6BCF\u5E74} other {}}", perUnitLabel: "{perUnit, select, LICENSE {\u6BCF\u4E2A\u8BB8\u53EF\u8BC1} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {\u6BCF\u4E2A\u8BB8\u53EF\u8BC1} other {}}", freeLabel: "\u514D\u8D39", freeAriaLabel: "\u514D\u8D39", taxExclusiveLabel: "{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}", alternativePriceAriaLabel: "\u6216\u5B9A\u4EF7 {alternativePrice}", strikethroughAriaLabel: "\u6B63\u5E38\u4EF7 {strikethroughPrice}" }, { lang: "zh-hant", recurrenceLabel: "{recurrenceTerm, select, MONTH {/\u6708} YEAR {/\u5E74} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {\u6BCF\u6708} YEAR {\u6BCF\u5E74} other {}}", perUnitLabel: "{perUnit, select, LICENSE {\u6BCF\u500B\u6388\u6B0A} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {\u6BCF\u500B\u6388\u6B0A} other {}}", freeLabel: "\u514D\u8CBB", freeAriaLabel: "\u514D\u8CBB", taxExclusiveLabel: "{taxTerm, select, GST {\u4E0D\u542B GST} VAT {\u4E0D\u542B VAT} TAX {\u4E0D\u542B\u7A05} IVA {\u4E0D\u542B IVA} SST {\u4E0D\u542B SST} KDV {\u4E0D\u542B KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {\u542B GST} VAT {\u542B VAT} TAX {\u542B\u7A05} IVA {\u542B IVA} SST {\u542B SST} KDV {\u542B KDV} other {}}", alternativePriceAriaLabel: "\u6216\u8005\u5728 {alternativePrice}", strikethroughAriaLabel: "\u6A19\u6E96\u50F9\u683C\u70BA {strikethroughPrice}" }, { lang: "es", recurrenceLabel: "{recurrenceTerm, select, MONTH {/mes} YEAR {/a\xF1o} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {al mes} YEAR {al a\xF1o} other {}}", perUnitLabel: "{perUnit, select, LICENSE {por licencia} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {por licencia} other {}}", freeLabel: "Gratuito", freeAriaLabel: "Gratuito", taxExclusiveLabel: "{taxTerm, select, GST {GST no incluido} VAT {IVA no incluido} TAX {Impuestos no incluidos} IVA {IVA no incluido} SST {SST no incluido} KDV {KDV no incluido} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {GST incluido} VAT {IVA incluido} TAX {Impuestos incluidos} IVA {IVA incluido} SST {SST incluido} KDV {KDV incluido} other {}}", alternativePriceAriaLabel: "Alternativamente por {alternativePrice}", strikethroughAriaLabel: "Normalmente a {strikethroughPrice}" }, { lang: "in", recurrenceLabel: "{recurrenceTerm, select, MONTH {/bulan} YEAR {/tahun} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {per bulan} YEAR {per tahun} other {}}", perUnitLabel: "{perUnit, select, LICENSE {per lisensi} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {per lisensi} other {}}", freeLabel: "Gratis", freeAriaLabel: "Gratis", taxExclusiveLabel: "{taxTerm, select, GST {tidak termasuk PBJ} VAT {tidak termasuk PPN} TAX {tidak termasuk pajak} IVA {tidak termasuk IVA} SST {tidak termasuk SST} KDV {tidak termasuk KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {termasuk PBJ} VAT {termasuk PPN} TAX {termasuk pajak} IVA {termasuk IVA} SST {termasuk SST} KDV {termasuk KDV} other {}}", alternativePriceAriaLabel: "Atau seharga {alternativePrice}", strikethroughAriaLabel: "Normalnya seharga {strikethroughPrice}" }, { lang: "vi", recurrenceLabel: "{recurrenceTerm, select, MONTH {/th\xE1ng} YEAR {/n\u0103m} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {m\u1ED7i th\xE1ng} YEAR {m\u1ED7i n\u0103m} other {}}", perUnitLabel: "{perUnit, select, LICENSE {m\u1ED7i gi\u1EA5y ph\xE9p} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {m\u1ED7i gi\u1EA5y ph\xE9p} other {}}", freeLabel: "Mi\u1EC5n ph\xED", freeAriaLabel: "Mi\u1EC5n ph\xED", taxExclusiveLabel: "{taxTerm, select, GST {ch\u01B0a bao g\u1ED3m thu\u1EBF h\xE0ng h\xF3a v\xE0 d\u1ECBch v\u1EE5} VAT {ch\u01B0a bao g\u1ED3m thu\u1EBF GTGT} TAX {ch\u01B0a bao g\u1ED3m thu\u1EBF} IVA {ch\u01B0a bao g\u1ED3m IVA} SST {ch\u01B0a bao g\u1ED3m SST} KDV {ch\u01B0a bao g\u1ED3m KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {(\u0111\xE3 bao g\u1ED3m thu\u1EBF h\xE0ng h\xF3a v\xE0 d\u1ECBch v\u1EE5)} VAT {(\u0111\xE3 bao g\u1ED3m thu\u1EBF GTGT)} TAX {(\u0111\xE3 bao g\u1ED3m thu\u1EBF)} IVA {(\u0111\xE3 bao g\u1ED3m IVA)} SST {(\u0111\xE3 bao g\u1ED3m SST)} KDV {(\u0111\xE3 bao g\u1ED3m KDV)} other {}}", alternativePriceAriaLabel: "Gi\xE1 \u01B0u \u0111\xE3i {alternativePrice}", strikethroughAriaLabel: "Gi\xE1 th\xF4ng th\u01B0\u1EDDng {strikethroughPrice}" }, { lang: "th", recurrenceLabel: "{recurrenceTerm, select, MONTH {/\u0E40\u0E14\u0E37\u0E2D\u0E19} YEAR {/\u0E1B\u0E35} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {\u0E15\u0E48\u0E2D\u0E40\u0E14\u0E37\u0E2D\u0E19} YEAR {\u0E15\u0E48\u0E2D\u0E1B\u0E35} other {}}", perUnitLabel: "{perUnit, select, LICENSE {\u0E15\u0E48\u0E2D\u0E2A\u0E34\u0E17\u0E18\u0E34\u0E4C\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {\u0E15\u0E48\u0E2D\u0E2A\u0E34\u0E17\u0E18\u0E34\u0E4C\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19} other {}}", freeLabel: "\u0E1F\u0E23\u0E35", freeAriaLabel: "\u0E1F\u0E23\u0E35", taxExclusiveLabel: "{taxTerm, select, GST {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35 GST} VAT {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 VAT} TAX {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35} IVA {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 IVA} SST {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 SST} KDV {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35 GST} VAT {\u0E23\u0E27\u0E21 VAT} TAX {\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35} IVA {\u0E23\u0E27\u0E21 IVA} SST {\u0E23\u0E27\u0E21 SST} KDV {\u0E23\u0E27\u0E21 KDV} other {}}", alternativePriceAriaLabel: "\u0E23\u0E32\u0E04\u0E32\u0E1E\u0E34\u0E40\u0E28\u0E29 {alternativePrice}", strikethroughAriaLabel: "\u0E23\u0E32\u0E04\u0E32\u0E1B\u0E01\u0E15\u0E34 {strikethroughPrice}" }, { lang: "el", recurrenceLabel: "{recurrenceTerm, select, MONTH {/\u03BC\u03AE\u03BD\u03B1} YEAR {/\u03AD\u03C4\u03BF\u03C2} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {\u03BA\u03AC\u03B8\u03B5 \u03BC\u03AE\u03BD\u03B1} YEAR {\u03B1\u03BD\u03AC \u03AD\u03C4\u03BF\u03C2} other {}}", perUnitLabel: "{perUnit, select, LICENSE {\u03B1\u03BD\u03AC \u03AC\u03B4\u03B5\u03B9\u03B1 \u03C7\u03C1\u03AE\u03C3\u03B7\u03C2} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {\u03B1\u03BD\u03AC \u03AC\u03B4\u03B5\u03B9\u03B1 \u03C7\u03C1\u03AE\u03C3\u03B7\u03C2} other {}}", freeLabel: "\u0394\u03C9\u03C1\u03B5\u03AC\u03BD", freeAriaLabel: "\u0394\u03C9\u03C1\u03B5\u03AC\u03BD", taxExclusiveLabel: "{taxTerm, select, GST {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 GST)} VAT {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03A6\u03A0\u0391)} TAX {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C6\u03CC\u03C1\u03BF)} IVA {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 IVA)} SST {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 SST)} KDV {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 KDV)} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 GST)} VAT {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03A6\u03A0\u0391)} TAX {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 \u03C6\u03CC\u03C1\u03BF\u03C5)} IVA {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 IVA)} SST {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 SST)} KDV {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 KDV)} other {}}", alternativePriceAriaLabel: "\u0394\u03B9\u03B1\u03C6\u03BF\u03C1\u03B5\u03C4\u03B9\u03BA\u03AC, {alternativePrice}", strikethroughAriaLabel: "\u039A\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03AE \u03C4\u03B9\u03BC\u03AE {strikethroughPrice}" }, { lang: "fil", recurrenceLabel: "{recurrenceTerm, select, MONTH {/buwan} YEAR {/taon} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {per buwan} YEAR {per taon} other {}}", perUnitLabel: "{perUnit, select, LICENSE {kada lisensya} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {kada lisensya} other {}}", freeLabel: "Libre", freeAriaLabel: "Libre", taxExclusiveLabel: "{taxTerm, select, GST {hindi kasama ang GST} VAT {hindi kasama ang VAT} TAX {hindi kasama ang Buwis} IVA {hindi kasama ang IVA} SST {hindi kasama ang SST} KDV {hindi kasama ang KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {kasama ang GST} VAT {kasama ang VAT} TAX {kasama ang Buwis} IVA {kasama ang IVA} SST {kasama ang SST} KDV {kasama ang KDV} other {}}", alternativePriceAriaLabel: "Alternatibong nasa halagang {alternativePrice}", strikethroughAriaLabel: "Regular na nasa halagang {strikethroughPrice}" }, { lang: "ms", recurrenceLabel: "{recurrenceTerm, select, MONTH {/bulan} YEAR {/tahun} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {per bulan} YEAR {per tahun} other {}}", perUnitLabel: "{perUnit, select, LICENSE {setiap lesen} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {setiap lesen} other {}}", freeLabel: "Percuma", freeAriaLabel: "Percuma", taxExclusiveLabel: "{taxTerm, select, GST {kecuali GST} VAT {kecuali VAT} TAX {kecuali Cukai} IVA {kecuali IVA} SST {kecuali SST} KDV {kecuali KDV} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {termasuk GST} VAT {termasuk VAT} TAX {termasuk Cukai} IVA {termasuk IVA} SST {termasuk SST} KDV {termasuk KDV} other {}}", alternativePriceAriaLabel: "Secara alternatif pada {alternativePrice}", strikethroughAriaLabel: "Biasanya pada {strikethroughPrice}" }, { lang: "hi", recurrenceLabel: "{recurrenceTerm, select, MONTH {/\u092E\u093E\u0939} YEAR {/\u0935\u0930\u094D\u0937} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {per \u092E\u093E\u0939} YEAR {per \u0935\u0930\u094D\u0937} other {}}", perUnitLabel: "{perUnit, select, LICENSE {\u092A\u094D\u0930\u0924\u093F \u0932\u093E\u0907\u0938\u0947\u0902\u0938} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {\u092A\u094D\u0930\u0924\u093F \u0932\u093E\u0907\u0938\u0947\u0902\u0938} other {}}", freeLabel: "\u092B\u093C\u094D\u0930\u0940", freeAriaLabel: "\u092B\u093C\u094D\u0930\u0940", taxExclusiveLabel: "{taxTerm, select, GST {GST \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} VAT {VAT \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} TAX {\u0915\u0930 \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} IVA {IVA \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} SST {SST \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} KDV {KDV \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} other {}}", taxInclusiveLabel: "{taxTerm, select, GST {GST \u0938\u0939\u093F\u0924} VAT {VAT \u0938\u0939\u093F\u0924} TAX {\u0915\u0930 \u0938\u0939\u093F\u0924} IVA {IVA \u0938\u0939\u093F\u0924} SST {SST \u0938\u0939\u093F\u0924} KDV {KDV \u0938\u0939\u093F\u0924} other {}}", alternativePriceAriaLabel: "\u0935\u0948\u0915\u0932\u094D\u092A\u093F\u0915 \u0930\u0942\u092A \u0938\u0947 \u0907\u0938 \u092A\u0930 {alternativePrice}", strikethroughAriaLabel: "\u0928\u093F\u092F\u092E\u093F\u0924 \u0930\u0942\u092A \u0938\u0947 \u0907\u0938 \u092A\u0930 {strikethroughPrice}" }, { lang: "iw", recurrenceLabel: "{recurrenceTerm, select, MONTH {/\u05D7\u05D5\u05D3\u05E9} YEAR {/\u05E9\u05E0\u05D4} other {}}", recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {\u05DC\u05D7\u05D5\u05D3\u05E9} YEAR {\u05DC\u05E9\u05E0\u05D4} other {}}", perUnitLabel: "{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}", perUnitAriaLabel: "{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}", freeLabel: "\u05D7\u05D9\u05E0\u05DD", freeAriaLabel: "\u05D7\u05D9\u05E0\u05DD", taxExclusiveLabel: '{taxTerm, select, GST {\u05DC\u05DC\u05D0 GST} VAT {\u05DC\u05DC\u05D0 \u05DE\u05E2"\u05DE} TAX {\u05DC\u05DC\u05D0 \u05DE\u05E1} IVA {\u05DC\u05DC\u05D0 IVA} SST {\u05DC\u05DC\u05D0 SST} KDV {\u05DC\u05DC\u05D0 KDV} other {}}', taxInclusiveLabel: '{taxTerm, select, GST {\u05DB\u05D5\u05DC\u05DC GST} VAT {\u05DB\u05D5\u05DC\u05DC \u05DE\u05E2"\u05DE} TAX {\u05DB\u05D5\u05DC\u05DC \u05DE\u05E1} IVA {\u05DB\u05D5\u05DC\u05DC IVA} SST {\u05DB\u05D5\u05DC\u05DC SST} KDV {\u05DB\u05D5\u05DC\u05DC KDV} other {}}', alternativePriceAriaLabel: "\u05DC\u05D7\u05DC\u05D5\u05E4\u05D9\u05DF \u05D1-{alternativePrice}", strikethroughAriaLabel: "\u05D1\u05D0\u05D5\u05E4\u05DF \u05E7\u05D1\u05D5\u05E2 \u05D1-{strikethroughPrice}" }], ":type": "sheet" }; + } +}); + +// ../node_modules/@pandora/data-source-utils/esm/types.js +var ProviderEnvironment; +(function(ProviderEnvironment2) { + ProviderEnvironment2["STAGE"] = "STAGE"; + ProviderEnvironment2["PRODUCTION"] = "PRODUCTION"; + ProviderEnvironment2["LOCAL"] = "LOCAL"; +})(ProviderEnvironment || (ProviderEnvironment = {})); +var Environment; +(function(Environment2) { + Environment2["STAGE"] = "STAGE"; + Environment2["PRODUCTION"] = "PROD"; + Environment2["LOCAL"] = "LOCAL"; +})(Environment || (Environment = {})); +var Landscape; +(function(Landscape3) { + Landscape3["DRAFT"] = "DRAFT"; + Landscape3["PUBLISHED"] = "PUBLISHED"; +})(Landscape || (Landscape = {})); + +// ../node_modules/@pandora/commerce-checkout-url-builder/esm/CheckoutType.js +var CheckoutType; +(function(CheckoutType2) { + CheckoutType2["V2"] = "UCv2"; + CheckoutType2["V3"] = "UCv3"; +})(CheckoutType || (CheckoutType = {})); + +// ../node_modules/@pandora/commerce-checkout-url-builder/esm/WorkflowStep.js +var WorkflowStep; +(function(WorkflowStep2) { + WorkflowStep2["CHECKOUT"] = "checkout"; + WorkflowStep2["CHECKOUT_EMAIL"] = "checkout/email"; + WorkflowStep2["SEGMENTATION"] = "segmentation"; + WorkflowStep2["BUNDLE"] = "bundle"; + WorkflowStep2["COMMITMENT"] = "commitment"; + WorkflowStep2["RECOMMENDATION"] = "recommendation"; + WorkflowStep2["EMAIL"] = "email"; + WorkflowStep2["PAYMENT"] = "payment"; + WorkflowStep2["CHANGE_PLAN_TEAM_PLANS"] = "change-plan/team-upgrade/plans"; + WorkflowStep2["CHANGE_PLAN_TEAM_PAYMENT"] = "change-plan/team-upgrade/payment"; +})(WorkflowStep || (WorkflowStep = {})); + +// ../node_modules/@pandora/commerce-checkout-url-builder/esm/mapParameterName.js +var mapParameterName = function(field) { + var _a2; + return (_a2 = PARAMETERS.get(field)) !== null && _a2 !== void 0 ? _a2 : field; +}; +var PARAMETERS = /* @__PURE__ */ new Map([ + ["countrySpecific", "cs"], + ["quantity", "q"], + ["authCode", "code"], + ["checkoutPromoCode", "apc"], + ["rurl", "rUrl"], + ["curl", "cUrl"], + ["ctxrturl", "ctxRtUrl"], + ["country", "co"], + ["language", "lang"], + ["clientId", "cli"], + ["context", "ctx"], + ["productArrangementCode", "pa"], + ["offerType", "ot"], + ["marketSegment", "ms"] +]); + +// ../node_modules/@pandora/commerce-checkout-url-builder/esm/build.js +var __values = function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function() { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; +var __read = function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; +}; +function addParameters(inputParameters, resultParameters, allowedKeys) { + var e_1, _a2; + try { + for (var _b = __values(Object.entries(inputParameters)), _c = _b.next(); !_c.done; _c = _b.next()) { + var _d = __read(_c.value, 2), key = _d[0], value = _d[1]; + var mappedKey = mapParameterName(key); + if (value != null && allowedKeys.has(mappedKey)) { + resultParameters.set(mappedKey, value); + } + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (_c && !_c.done && (_a2 = _b.return)) + _a2.call(_b); + } finally { + if (e_1) + throw e_1.error; + } + } +} +function getHostName(env) { + switch (env) { + case ProviderEnvironment.PRODUCTION: + return "https://commerce.adobe.com"; + default: + return "https://commerce-stg.adobe.com"; + } +} +function setItemsParameter(items, parameters) { + var e_2, _a2; + for (var idx in items) { + var item = items[idx]; + try { + for (var _b = (e_2 = void 0, __values(Object.entries(item))), _c = _b.next(); !_c.done; _c = _b.next()) { + var _d = __read(_c.value, 2), key = _d[0], value = _d[1]; + if (value == null) + continue; + var parameterName = mapParameterName(key); + parameters.set("items[" + idx + "][" + parameterName + "]", value); + } + } catch (e_2_1) { + e_2 = { error: e_2_1 }; + } finally { + try { + if (_c && !_c.done && (_a2 = _b.return)) + _a2.call(_b); + } finally { + if (e_2) + throw e_2.error; + } + } + } +} + +// ../node_modules/@pandora/commerce-checkout-url-builder/esm/ucv2/build-UCv2-url.js +var __rest = function(s, e) { + var t = {}; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +}; +var __values2 = function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function() { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; +function buildUCv2Url(checkoutData) { + validateCheckoutData(checkoutData); + var env = checkoutData.env, items = checkoutData.items, workflowStep = checkoutData.workflowStep, rest = __rest(checkoutData, ["env", "items", "workflowStep"]); + var url = new URL(getHostName(env)); + url.pathname = workflowStep + "/"; + setItemsParameter(items, url.searchParams); + addParameters(rest, url.searchParams, ALLOWED_KEYS); + return url.toString(); +} +var ALLOWED_KEYS = /* @__PURE__ */ new Set([ + "cli", + "co", + "lang", + "ctx", + "cUrl", + "mv", + "nglwfdata", + "otac", + "promoid", + "rUrl", + "sdid", + "spint", + "trackingid", + "code", + "campaignid", + "appctxid" +]); +var REQUIRED_KEYS = ["env", "workflowStep", "clientId", "country", "items"]; +function validateCheckoutData(checkoutData) { + var e_1, _a2; + try { + for (var REQUIRED_KEYS_1 = __values2(REQUIRED_KEYS), REQUIRED_KEYS_1_1 = REQUIRED_KEYS_1.next(); !REQUIRED_KEYS_1_1.done; REQUIRED_KEYS_1_1 = REQUIRED_KEYS_1.next()) { + var key = REQUIRED_KEYS_1_1.value; + if (!checkoutData[key]) { + throw new Error('Argument "checkoutData" is not valid, missing: ' + key); + } + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (REQUIRED_KEYS_1_1 && !REQUIRED_KEYS_1_1.done && (_a2 = REQUIRED_KEYS_1.return)) + _a2.call(REQUIRED_KEYS_1); + } finally { + if (e_1) + throw e_1.error; + } + } + return true; +} + +// ../node_modules/@pandora/commerce-checkout-url-builder/esm/ucv3/build-UCv3-url.js +var __rest2 = function(s, e) { + var t = {}; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +}; +var __values3 = function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function() { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; +var AF_DRAFT_LANDSCAPE = "p_draft_landscape"; +var UCV3_PREFIX = "/store/"; +function buildUCv3Url(checkoutData) { + validateCheckoutData2(checkoutData); + var env = checkoutData.env, items = checkoutData.items, workflowStep = checkoutData.workflowStep, ms = checkoutData.ms, marketSegment = checkoutData.marketSegment, ot = checkoutData.ot, offerType = checkoutData.offerType, pa = checkoutData.pa, productArrangementCode = checkoutData.productArrangementCode, landscape = checkoutData.landscape, rest = __rest2(checkoutData, ["env", "items", "workflowStep", "ms", "marketSegment", "ot", "offerType", "pa", "productArrangementCode", "landscape"]); + var segmentationParameters = { + marketSegment: marketSegment !== null && marketSegment !== void 0 ? marketSegment : ms, + offerType: offerType !== null && offerType !== void 0 ? offerType : ot, + productArrangementCode: productArrangementCode !== null && productArrangementCode !== void 0 ? productArrangementCode : pa + }; + var url = new URL(getHostName(env)); + url.pathname = "" + UCV3_PREFIX + workflowStep; + if (workflowStep !== WorkflowStep.SEGMENTATION && workflowStep !== WorkflowStep.CHANGE_PLAN_TEAM_PLANS) { + setItemsParameter(items, url.searchParams); + } + if (workflowStep === WorkflowStep.SEGMENTATION) { + addParameters(segmentationParameters, url.searchParams, ALLOWED_KEYS2); + } + addParameters(rest, url.searchParams, ALLOWED_KEYS2); + if (landscape === Landscape.DRAFT) { + addParameters({ af: AF_DRAFT_LANDSCAPE }, url.searchParams, ALLOWED_KEYS2); + } + return url.toString(); +} +var ALLOWED_KEYS2 = /* @__PURE__ */ new Set([ + "af", + "ai", + "apc", + "appctxid", + "cli", + "co", + "csm", + "ctx", + "ctxRtUrl", + "DCWATC", + "dp", + "fr", + "gsp", + "ijt", + "lang", + "lo", + "mal", + "ms", + "mv", + "mv2", + "nglwfdata", + "ot", + "otac", + "pa", + "pcid", + "promoid", + "q", + "rf", + "sc", + "scl", + "sdid", + "sid", + "spint", + "svar", + "th", + "thm", + "trackingid", + "usid", + "workflowid", + "context.guid", + "so.ca", + "so.su", + "so.tr", + "so.va" +]); +var REQUIRED_KEYS2 = ["env", "workflowStep", "clientId", "country"]; +function validateCheckoutData2(checkoutData) { + var e_1, _a2; + try { + for (var REQUIRED_KEYS_1 = __values3(REQUIRED_KEYS2), REQUIRED_KEYS_1_1 = REQUIRED_KEYS_1.next(); !REQUIRED_KEYS_1_1.done; REQUIRED_KEYS_1_1 = REQUIRED_KEYS_1.next()) { + var key = REQUIRED_KEYS_1_1.value; + if (!checkoutData[key]) { + throw new Error('Argument "checkoutData" is not valid, missing: ' + key); + } + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (REQUIRED_KEYS_1_1 && !REQUIRED_KEYS_1_1.done && (_a2 = REQUIRED_KEYS_1.return)) + _a2.call(REQUIRED_KEYS_1); + } finally { + if (e_1) + throw e_1.error; + } + } + if (checkoutData.workflowStep !== WorkflowStep.SEGMENTATION && checkoutData.workflowStep !== WorkflowStep.CHANGE_PLAN_TEAM_PLANS && !checkoutData.items) { + throw new Error('Argument "checkoutData" is not valid, missing: items'); + } + return true; +} + +// ../node_modules/@pandora/commerce-checkout-url-builder/esm/index.js +function buildCheckoutUrl(checkoutType, checkoutData) { + switch (checkoutType) { + case CheckoutType.V2: + return buildUCv2Url(checkoutData); + case CheckoutType.V3: + return buildUCv3Url(checkoutData); + default: + console.warn("Unsupported CheckoutType, will use UCv3 as default. Given type: " + checkoutType); + return buildUCv3Url(checkoutData); + } +} + +// ../node_modules/@pandora/data-models-odm/esm/businessDimensions.js +var OfferType; +(function(OfferType2) { + OfferType2["BASE"] = "BASE"; + OfferType2["TRIAL"] = "TRIAL"; + OfferType2["PROMOTION"] = "PROMOTION"; +})(OfferType || (OfferType = {})); +var Commitment; +(function(Commitment2) { + Commitment2["MONTH"] = "MONTH"; + Commitment2["YEAR"] = "YEAR"; + Commitment2["TWO_YEARS"] = "TWO_YEARS"; + Commitment2["THREE_YEARS"] = "THREE_YEARS"; + Commitment2["PERPETUAL"] = "PERPETUAL"; + Commitment2["TERM_LICENSE"] = "TERM_LICENSE"; + Commitment2["ACCESS_PASS"] = "ACCESS_PASS"; + Commitment2["THREE_MONTHS"] = "THREE_MONTHS"; + Commitment2["SIX_MONTHS"] = "SIX_MONTHS"; +})(Commitment || (Commitment = {})); +var Term; +(function(Term2) { + Term2["ANNUAL"] = "ANNUAL"; + Term2["MONTHLY"] = "MONTHLY"; + Term2["TWO_YEARS"] = "TWO_YEARS"; + Term2["THREE_YEARS"] = "THREE_YEARS"; + Term2["P1D"] = "P1D"; + Term2["P1Y"] = "P1Y"; + Term2["P3Y"] = "P3Y"; + Term2["P10Y"] = "P10Y"; + Term2["P15Y"] = "P15Y"; + Term2["P3D"] = "P3D"; + Term2["P7D"] = "P7D"; + Term2["P30D"] = "P30D"; + Term2["HALF_YEARLY"] = "HALF_YEARLY"; + Term2["QUARTERLY"] = "QUARTERLY"; +})(Term || (Term = {})); +var CustomerSegment; +(function(CustomerSegment2) { + CustomerSegment2["INDIVIDUAL"] = "INDIVIDUAL"; + CustomerSegment2["TEAM"] = "TEAM"; + CustomerSegment2["ENTERPRISE"] = "ENTERPRISE"; +})(CustomerSegment || (CustomerSegment = {})); +var MarketSegment; +(function(MarketSegment2) { + MarketSegment2["COM"] = "COM"; + MarketSegment2["EDU"] = "EDU"; + MarketSegment2["GOV"] = "GOV"; +})(MarketSegment || (MarketSegment = {})); +var SalesChannel; +(function(SalesChannel2) { + SalesChannel2["DIRECT"] = "DIRECT"; + SalesChannel2["INDIRECT"] = "INDIRECT"; +})(SalesChannel || (SalesChannel = {})); +var BuyingProgram; +(function(BuyingProgram2) { + BuyingProgram2["ENTERPRISE_PRODUCT"] = "ENTERPRISE_PRODUCT"; + BuyingProgram2["ETLA"] = "ETLA"; + BuyingProgram2["RETAIL"] = "RETAIL"; + BuyingProgram2["VIP"] = "VIP"; + BuyingProgram2["VIPMP"] = "VIPMP"; + BuyingProgram2["FREE"] = "FREE"; +})(BuyingProgram || (BuyingProgram = {})); + +// ../node_modules/@dexter/tacocat-core/src/utilities.js +var namespace = "tacocat.js"; +var equalsCaseInsensitive = (value1, value2) => String(value1 ?? "").toLowerCase() == String(value2 ?? "").toLowerCase(); +var escapeHtml = (html) => `${html ?? ""}`.replace( + /[&<>'"]/g, + (tag) => ({ + "&": "&", + "<": "<", + ">": ">", + "'": "'", + '"': """ + })[tag] ?? tag +) ?? ""; +function getParameter(key, defaults = {}, { metadata = true, search = true, storage = true } = {}) { + let param; + if (search && param == null) { + const params = new URLSearchParams(window.location.search); + const searchKey = isString(search) ? search : key; + param = params.get(searchKey); + } + if (storage && param == null) { + const storageKey = isString(storage) ? storage : key; + param = window.sessionStorage.getItem(storageKey) ?? window.localStorage.getItem(storageKey); + } + if (metadata && param == null) { + const metadataKey = toKebabCase(isString(metadata) ? metadata : key); + const element = document.documentElement.querySelector( + `meta[name="${metadataKey}"]` + ); + param = element?.content; + } + return param == null ? defaults[key] : param; +} +var ignore = () => { +}; +var isBoolean = (value) => typeof value === "boolean"; +var isFunction = (value) => typeof value === "function"; +var isNumber = (value) => typeof value === "number"; +var isObject = (value) => value != null && typeof value === "object"; +var isString = (value) => typeof value === "string"; +var isNotEmptyString = (value) => isString(value) && value; +var isPositiveFiniteNumber = (value) => isNumber(value) && Number.isFinite(value) && value > 0; +function omitProperties(target, test = (value) => value == null || value === "") { + if (target != null) { + Object.entries(target).forEach(([key, value]) => { + if (test(value)) + delete target[key]; + }); + } + return target; +} +function toBoolean(value, defaultValue) { + if (isBoolean(value)) + return value; + const string = String(value); + if (string === "1" || string === "true") + return true; + if (string === "0" || string === "false") + return false; + return defaultValue; +} +function toEnumeration(value, enumeration, defaultValue) { + const values = Object.values(enumeration); + return values.find((candidate) => equalsCaseInsensitive(candidate, value)) ?? defaultValue ?? values[0]; +} +function toKebabCase(value = "") { + return String(value).replace( + /(\p{Lowercase_Letter})(\p{Uppercase_Letter})/gu, + (_, p1, p2) => `${p1}-${p2}` + ).replace(/\W+/gu, "-").toLowerCase(); +} +function toPositiveFiniteInteger(value, defaultValue = 1) { + if (!isNumber(value)) { + value = Number.parseInt(value, 10); + } + if (!Number.isNaN(value) && value > 0 && Number.isFinite(value)) { + return value; + } + return defaultValue; +} + +// ../node_modules/@dexter/tacocat-core/src/log.js +var epoch = Date.now(); +var suffix = () => `(+${Date.now() - epoch}ms)`; +var loggers = /* @__PURE__ */ new Set(); +var isDebugEnabled = toBoolean( + getParameter("tacocat.debug", {}, { metadata: false }), + typeof process !== "undefined" && process.env?.DEBUG +); +function createLog(source) { + const prefix = `[${namespace}/${source}]`; + const assert = (condition, message, ...args) => { + if (!condition) { + error(message, ...args); + return false; + } + return true; + }; + const debug = isDebugEnabled ? (message, ...args) => { + console.debug(`${prefix} ${message}`, ...args, suffix()); + } : () => { + }; + const error = (message, ...args) => { + const prefixedMessage = `${prefix} ${message}`; + loggers.forEach( + ([errorLogger]) => errorLogger(prefixedMessage, ...args) + ); + }; + const warn = (message, ...args) => { + const prefixedMessage = `${prefix} ${message}`; + loggers.forEach( + ([, warnLogger]) => warnLogger(prefixedMessage, ...args) + ); + }; + return { assert, debug, error, warn }; +} +function registerLogger(errorLogger, warnLogger) { + const logger = [errorLogger, warnLogger]; + loggers.add(logger); + return () => { + loggers.delete(logger); + }; +} +registerLogger( + (message, ...args) => { + console.error(message, ...args, suffix()); + }, + (message, ...args) => { + console.warn(message, ...args, suffix()); + } +); + +// ../node_modules/@dexter/tacocat-core/src/promotion.js +var NO_PROMO_TEXT = "no promo"; +var CLASS = "promo-tag"; +var PROMO_VARIANT = "yellow"; +var NOPROMO_VARIANT = "neutral"; +var fullPromoText = (promo, old, isOverriden) => { + const promoText = (promo2) => promo2 || NO_PROMO_TEXT; + const suffix2 = isOverriden ? ` (was "${promoText(old)}")` : ""; + return `${promoText(promo)}${suffix2}`; +}; +var PROMO_CONTEXT_CANCEL_VALUE = "cancel-context"; +var computePromoStatus = (overriden, configured) => { + const localPromoUnset = overriden === PROMO_CONTEXT_CANCEL_VALUE; + const localPromoSet = !localPromoUnset && overriden?.length > 0; + const isOverriden = (localPromoSet || localPromoUnset) && //in case configured equals override, we consider no override + (configured && configured != overriden || //in case it does not have been configured, if overriden to cancel, + // we consider no override + !configured && !localPromoUnset); + const isPromo = isOverriden && localPromoSet || !isOverriden && !!configured; + const effectivePromoCode = isPromo ? overriden || configured : void 0; + return { + effectivePromoCode, + overridenPromoCode: overriden, + className: isPromo ? CLASS : `${CLASS} no-promo`, + text: fullPromoText(effectivePromoCode, configured, isOverriden), + variant: isPromo ? PROMO_VARIANT : NOPROMO_VARIANT, + isOverriden + }; +}; + +// ../node_modules/@dexter/tacocat-core/src/wcsUtils.js +var ABM = "ABM"; +var PUF = "PUF"; +var M2M = "M2M"; +var PERPETUAL = "PERPETUAL"; +var P3Y = "P3Y"; +var TAX_INCLUSIVE_DETAILS = "TAX_INCLUSIVE_DETAILS"; +var TAX_EXCLUSIVE = "TAX_EXCLUSIVE"; +var PlanType = { + ABM, + PUF, + M2M, + PERPETUAL, + P3Y +}; +var planTypes = { + [ABM]: { commitment: Commitment.YEAR, term: Term.MONTHLY }, + [PUF]: { commitment: Commitment.YEAR, term: Term.ANNUAL }, + [M2M]: { commitment: Commitment.MONTH, term: Term.MONTHLY }, + [PERPETUAL]: { commitment: Commitment.PERPETUAL, term: void 0 }, + [P3Y]: { commitment: Commitment.THREE_MONTHS, term: Term.P3Y } +}; +var errorValueNotOffer = "Value is not an offer"; +var applyPlanType = (offer) => { + if (typeof offer !== "object") + return errorValueNotOffer; + const { commitment, term } = offer; + const planType = getPlanType(commitment, term); + return { ...offer, planType }; +}; +var getPlanType = (commitment, term) => { + switch (commitment) { + case void 0: + return errorValueNotOffer; + case "": + return ""; + case Commitment.YEAR: + return term === Term.MONTHLY ? ABM : term === Term.ANNUAL ? PUF : ""; + case Commitment.MONTH: + return term === Term.MONTHLY ? M2M : ""; + case Commitment.PERPETUAL: + return PERPETUAL; + case Commitment.TERM_LICENSE: + return term === Term.P3Y ? P3Y : ""; + default: + return ""; + } +}; +function forceTaxExclusivePrice(offer) { + const { priceDetails } = offer; + const { + price: price2, + priceWithoutDiscount, + priceWithoutTax, + priceWithoutDiscountAndTax, + taxDisplay + } = priceDetails; + if (taxDisplay !== TAX_INCLUSIVE_DETAILS) + return offer; + const amendedOffer = { + ...offer, + priceDetails: { + ...priceDetails, + price: priceWithoutTax ?? price2, + priceWithoutDiscount: priceWithoutDiscountAndTax ?? priceWithoutDiscount, + taxDisplay: TAX_EXCLUSIVE + } + }; + if (amendedOffer.offerType === "TRIAL" && amendedOffer.priceDetails.price === 0) { + amendedOffer.priceDetails.price = amendedOffer.priceDetails.priceWithoutDiscount; + } + return amendedOffer; +} + +// ../node_modules/tslib/tslib.es6.mjs +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); +}; +function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} +var __assign = function() { + __assign = Object.assign || function __assign2(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) + ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} + +// ../node_modules/@formatjs/icu-messageformat-parser/lib/error.js +var ErrorKind; +(function(ErrorKind2) { + ErrorKind2[ErrorKind2["EXPECT_ARGUMENT_CLOSING_BRACE"] = 1] = "EXPECT_ARGUMENT_CLOSING_BRACE"; + ErrorKind2[ErrorKind2["EMPTY_ARGUMENT"] = 2] = "EMPTY_ARGUMENT"; + ErrorKind2[ErrorKind2["MALFORMED_ARGUMENT"] = 3] = "MALFORMED_ARGUMENT"; + ErrorKind2[ErrorKind2["EXPECT_ARGUMENT_TYPE"] = 4] = "EXPECT_ARGUMENT_TYPE"; + ErrorKind2[ErrorKind2["INVALID_ARGUMENT_TYPE"] = 5] = "INVALID_ARGUMENT_TYPE"; + ErrorKind2[ErrorKind2["EXPECT_ARGUMENT_STYLE"] = 6] = "EXPECT_ARGUMENT_STYLE"; + ErrorKind2[ErrorKind2["INVALID_NUMBER_SKELETON"] = 7] = "INVALID_NUMBER_SKELETON"; + ErrorKind2[ErrorKind2["INVALID_DATE_TIME_SKELETON"] = 8] = "INVALID_DATE_TIME_SKELETON"; + ErrorKind2[ErrorKind2["EXPECT_NUMBER_SKELETON"] = 9] = "EXPECT_NUMBER_SKELETON"; + ErrorKind2[ErrorKind2["EXPECT_DATE_TIME_SKELETON"] = 10] = "EXPECT_DATE_TIME_SKELETON"; + ErrorKind2[ErrorKind2["UNCLOSED_QUOTE_IN_ARGUMENT_STYLE"] = 11] = "UNCLOSED_QUOTE_IN_ARGUMENT_STYLE"; + ErrorKind2[ErrorKind2["EXPECT_SELECT_ARGUMENT_OPTIONS"] = 12] = "EXPECT_SELECT_ARGUMENT_OPTIONS"; + ErrorKind2[ErrorKind2["EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE"] = 13] = "EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE"; + ErrorKind2[ErrorKind2["INVALID_PLURAL_ARGUMENT_OFFSET_VALUE"] = 14] = "INVALID_PLURAL_ARGUMENT_OFFSET_VALUE"; + ErrorKind2[ErrorKind2["EXPECT_SELECT_ARGUMENT_SELECTOR"] = 15] = "EXPECT_SELECT_ARGUMENT_SELECTOR"; + ErrorKind2[ErrorKind2["EXPECT_PLURAL_ARGUMENT_SELECTOR"] = 16] = "EXPECT_PLURAL_ARGUMENT_SELECTOR"; + ErrorKind2[ErrorKind2["EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT"] = 17] = "EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT"; + ErrorKind2[ErrorKind2["EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT"] = 18] = "EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT"; + ErrorKind2[ErrorKind2["INVALID_PLURAL_ARGUMENT_SELECTOR"] = 19] = "INVALID_PLURAL_ARGUMENT_SELECTOR"; + ErrorKind2[ErrorKind2["DUPLICATE_PLURAL_ARGUMENT_SELECTOR"] = 20] = "DUPLICATE_PLURAL_ARGUMENT_SELECTOR"; + ErrorKind2[ErrorKind2["DUPLICATE_SELECT_ARGUMENT_SELECTOR"] = 21] = "DUPLICATE_SELECT_ARGUMENT_SELECTOR"; + ErrorKind2[ErrorKind2["MISSING_OTHER_CLAUSE"] = 22] = "MISSING_OTHER_CLAUSE"; + ErrorKind2[ErrorKind2["INVALID_TAG"] = 23] = "INVALID_TAG"; + ErrorKind2[ErrorKind2["INVALID_TAG_NAME"] = 25] = "INVALID_TAG_NAME"; + ErrorKind2[ErrorKind2["UNMATCHED_CLOSING_TAG"] = 26] = "UNMATCHED_CLOSING_TAG"; + ErrorKind2[ErrorKind2["UNCLOSED_TAG"] = 27] = "UNCLOSED_TAG"; +})(ErrorKind || (ErrorKind = {})); + +// ../node_modules/@formatjs/icu-messageformat-parser/lib/types.js +var TYPE; +(function(TYPE2) { + TYPE2[TYPE2["literal"] = 0] = "literal"; + TYPE2[TYPE2["argument"] = 1] = "argument"; + TYPE2[TYPE2["number"] = 2] = "number"; + TYPE2[TYPE2["date"] = 3] = "date"; + TYPE2[TYPE2["time"] = 4] = "time"; + TYPE2[TYPE2["select"] = 5] = "select"; + TYPE2[TYPE2["plural"] = 6] = "plural"; + TYPE2[TYPE2["pound"] = 7] = "pound"; + TYPE2[TYPE2["tag"] = 8] = "tag"; +})(TYPE || (TYPE = {})); +var SKELETON_TYPE; +(function(SKELETON_TYPE2) { + SKELETON_TYPE2[SKELETON_TYPE2["number"] = 0] = "number"; + SKELETON_TYPE2[SKELETON_TYPE2["dateTime"] = 1] = "dateTime"; +})(SKELETON_TYPE || (SKELETON_TYPE = {})); +function isLiteralElement(el) { + return el.type === TYPE.literal; +} +function isArgumentElement(el) { + return el.type === TYPE.argument; +} +function isNumberElement(el) { + return el.type === TYPE.number; +} +function isDateElement(el) { + return el.type === TYPE.date; +} +function isTimeElement(el) { + return el.type === TYPE.time; +} +function isSelectElement(el) { + return el.type === TYPE.select; +} +function isPluralElement(el) { + return el.type === TYPE.plural; +} +function isPoundElement(el) { + return el.type === TYPE.pound; +} +function isTagElement(el) { + return el.type === TYPE.tag; +} +function isNumberSkeleton(el) { + return !!(el && typeof el === "object" && el.type === SKELETON_TYPE.number); +} +function isDateTimeSkeleton(el) { + return !!(el && typeof el === "object" && el.type === SKELETON_TYPE.dateTime); +} + +// ../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js +var SPACE_SEPARATOR_REGEX = /[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/; + +// ../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js +var DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g; +function parseDateTimeSkeleton(skeleton) { + var result = {}; + skeleton.replace(DATE_TIME_REGEX, function(match) { + var len = match.length; + switch (match[0]) { + case "G": + result.era = len === 4 ? "long" : len === 5 ? "narrow" : "short"; + break; + case "y": + result.year = len === 2 ? "2-digit" : "numeric"; + break; + case "Y": + case "u": + case "U": + case "r": + throw new RangeError("`Y/u/U/r` (year) patterns are not supported, use `y` instead"); + case "q": + case "Q": + throw new RangeError("`q/Q` (quarter) patterns are not supported"); + case "M": + case "L": + result.month = ["numeric", "2-digit", "short", "long", "narrow"][len - 1]; + break; + case "w": + case "W": + throw new RangeError("`w/W` (week) patterns are not supported"); + case "d": + result.day = ["numeric", "2-digit"][len - 1]; + break; + case "D": + case "F": + case "g": + throw new RangeError("`D/F/g` (day) patterns are not supported, use `d` instead"); + case "E": + result.weekday = len === 4 ? "short" : len === 5 ? "narrow" : "short"; + break; + case "e": + if (len < 4) { + throw new RangeError("`e..eee` (weekday) patterns are not supported"); + } + result.weekday = ["short", "long", "narrow", "short"][len - 4]; + break; + case "c": + if (len < 4) { + throw new RangeError("`c..ccc` (weekday) patterns are not supported"); + } + result.weekday = ["short", "long", "narrow", "short"][len - 4]; + break; + case "a": + result.hour12 = true; + break; + case "b": + case "B": + throw new RangeError("`b/B` (period) patterns are not supported, use `a` instead"); + case "h": + result.hourCycle = "h12"; + result.hour = ["numeric", "2-digit"][len - 1]; + break; + case "H": + result.hourCycle = "h23"; + result.hour = ["numeric", "2-digit"][len - 1]; + break; + case "K": + result.hourCycle = "h11"; + result.hour = ["numeric", "2-digit"][len - 1]; + break; + case "k": + result.hourCycle = "h24"; + result.hour = ["numeric", "2-digit"][len - 1]; + break; + case "j": + case "J": + case "C": + throw new RangeError("`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead"); + case "m": + result.minute = ["numeric", "2-digit"][len - 1]; + break; + case "s": + result.second = ["numeric", "2-digit"][len - 1]; + break; + case "S": + case "A": + throw new RangeError("`S/A` (second) patterns are not supported, use `s` instead"); + case "z": + result.timeZoneName = len < 4 ? "short" : "long"; + break; + case "Z": + case "O": + case "v": + case "V": + case "X": + case "x": + throw new RangeError("`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead"); + } + return ""; + }); + return result; +} + +// ../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js +var WHITE_SPACE_REGEX = /[\t-\r \x85\u200E\u200F\u2028\u2029]/i; + +// ../node_modules/@formatjs/icu-skeleton-parser/lib/number.js +function parseNumberSkeletonFromString(skeleton) { + if (skeleton.length === 0) { + throw new Error("Number skeleton cannot be empty"); + } + var stringTokens = skeleton.split(WHITE_SPACE_REGEX).filter(function(x) { + return x.length > 0; + }); + var tokens = []; + for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) { + var stringToken = stringTokens_1[_i]; + var stemAndOptions = stringToken.split("/"); + if (stemAndOptions.length === 0) { + throw new Error("Invalid number skeleton"); + } + var stem = stemAndOptions[0], options = stemAndOptions.slice(1); + for (var _a2 = 0, options_1 = options; _a2 < options_1.length; _a2++) { + var option = options_1[_a2]; + if (option.length === 0) { + throw new Error("Invalid number skeleton"); + } + } + tokens.push({ stem, options }); + } + return tokens; +} +function icuUnitToEcma(unit) { + return unit.replace(/^(.*?)-/, ""); +} +var FRACTION_PRECISION_REGEX = /^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g; +var SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\+|#+)?$/g; +var INTEGER_WIDTH_REGEX = /(\*)(0+)|(#+)(0+)|(0+)/g; +var CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/; +function parseSignificantPrecision(str) { + var result = {}; + str.replace(SIGNIFICANT_PRECISION_REGEX, function(_, g1, g2) { + if (typeof g2 !== "string") { + result.minimumSignificantDigits = g1.length; + result.maximumSignificantDigits = g1.length; + } else if (g2 === "+") { + result.minimumSignificantDigits = g1.length; + } else if (g1[0] === "#") { + result.maximumSignificantDigits = g1.length; + } else { + result.minimumSignificantDigits = g1.length; + result.maximumSignificantDigits = g1.length + (typeof g2 === "string" ? g2.length : 0); + } + return ""; + }); + return result; +} +function parseSign(str) { + switch (str) { + case "sign-auto": + return { + signDisplay: "auto" + }; + case "sign-accounting": + case "()": + return { + currencySign: "accounting" + }; + case "sign-always": + case "+!": + return { + signDisplay: "always" + }; + case "sign-accounting-always": + case "()!": + return { + signDisplay: "always", + currencySign: "accounting" + }; + case "sign-except-zero": + case "+?": + return { + signDisplay: "exceptZero" + }; + case "sign-accounting-except-zero": + case "()?": + return { + signDisplay: "exceptZero", + currencySign: "accounting" + }; + case "sign-never": + case "+_": + return { + signDisplay: "never" + }; + } +} +function parseConciseScientificAndEngineeringStem(stem) { + var result; + if (stem[0] === "E" && stem[1] === "E") { + result = { + notation: "engineering" + }; + stem = stem.slice(2); + } else if (stem[0] === "E") { + result = { + notation: "scientific" + }; + stem = stem.slice(1); + } + if (result) { + var signDisplay = stem.slice(0, 2); + if (signDisplay === "+!") { + result.signDisplay = "always"; + stem = stem.slice(2); + } else if (signDisplay === "+?") { + result.signDisplay = "exceptZero"; + stem = stem.slice(2); + } + if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) { + throw new Error("Malformed concise eng/scientific notation"); + } + result.minimumIntegerDigits = stem.length; + } + return result; +} +function parseNotationOptions(opt) { + var result = {}; + var signOpts = parseSign(opt); + if (signOpts) { + return signOpts; + } + return result; +} +function parseNumberSkeleton(tokens) { + var result = {}; + for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) { + var token = tokens_1[_i]; + switch (token.stem) { + case "percent": + case "%": + result.style = "percent"; + continue; + case "%x100": + result.style = "percent"; + result.scale = 100; + continue; + case "currency": + result.style = "currency"; + result.currency = token.options[0]; + continue; + case "group-off": + case ",_": + result.useGrouping = false; + continue; + case "precision-integer": + case ".": + result.maximumFractionDigits = 0; + continue; + case "measure-unit": + case "unit": + result.style = "unit"; + result.unit = icuUnitToEcma(token.options[0]); + continue; + case "compact-short": + case "K": + result.notation = "compact"; + result.compactDisplay = "short"; + continue; + case "compact-long": + case "KK": + result.notation = "compact"; + result.compactDisplay = "long"; + continue; + case "scientific": + result = __assign(__assign(__assign({}, result), { notation: "scientific" }), token.options.reduce(function(all, opt) { + return __assign(__assign({}, all), parseNotationOptions(opt)); + }, {})); + continue; + case "engineering": + result = __assign(__assign(__assign({}, result), { notation: "engineering" }), token.options.reduce(function(all, opt) { + return __assign(__assign({}, all), parseNotationOptions(opt)); + }, {})); + continue; + case "notation-simple": + result.notation = "standard"; + continue; + case "unit-width-narrow": + result.currencyDisplay = "narrowSymbol"; + result.unitDisplay = "narrow"; + continue; + case "unit-width-short": + result.currencyDisplay = "code"; + result.unitDisplay = "short"; + continue; + case "unit-width-full-name": + result.currencyDisplay = "name"; + result.unitDisplay = "long"; + continue; + case "unit-width-iso-code": + result.currencyDisplay = "symbol"; + continue; + case "scale": + result.scale = parseFloat(token.options[0]); + continue; + case "integer-width": + if (token.options.length > 1) { + throw new RangeError("integer-width stems only accept a single optional option"); + } + token.options[0].replace(INTEGER_WIDTH_REGEX, function(_, g1, g2, g3, g4, g5) { + if (g1) { + result.minimumIntegerDigits = g2.length; + } else if (g3 && g4) { + throw new Error("We currently do not support maximum integer digits"); + } else if (g5) { + throw new Error("We currently do not support exact integer digits"); + } + return ""; + }); + continue; + } + if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) { + result.minimumIntegerDigits = token.stem.length; + continue; + } + if (FRACTION_PRECISION_REGEX.test(token.stem)) { + if (token.options.length > 1) { + throw new RangeError("Fraction-precision stems only accept a single optional option"); + } + token.stem.replace(FRACTION_PRECISION_REGEX, function(_, g1, g2, g3, g4, g5) { + if (g2 === "*") { + result.minimumFractionDigits = g1.length; + } else if (g3 && g3[0] === "#") { + result.maximumFractionDigits = g3.length; + } else if (g4 && g5) { + result.minimumFractionDigits = g4.length; + result.maximumFractionDigits = g4.length + g5.length; + } else { + result.minimumFractionDigits = g1.length; + result.maximumFractionDigits = g1.length; + } + return ""; + }); + if (token.options.length) { + result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0])); + } + continue; + } + if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) { + result = __assign(__assign({}, result), parseSignificantPrecision(token.stem)); + continue; + } + var signOpts = parseSign(token.stem); + if (signOpts) { + result = __assign(__assign({}, result), signOpts); + } + var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem); + if (conciseScientificAndEngineeringOpts) { + result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts); + } + } + return result; +} + +// ../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js +var _a; +var SPACE_SEPARATOR_START_REGEX = new RegExp("^" + SPACE_SEPARATOR_REGEX.source + "*"); +var SPACE_SEPARATOR_END_REGEX = new RegExp(SPACE_SEPARATOR_REGEX.source + "*$"); +function createLocation(start, end) { + return { start, end }; +} +var hasNativeStartsWith = !!String.prototype.startsWith; +var hasNativeFromCodePoint = !!String.fromCodePoint; +var hasNativeFromEntries = !!Object.fromEntries; +var hasNativeCodePointAt = !!String.prototype.codePointAt; +var hasTrimStart = !!String.prototype.trimStart; +var hasTrimEnd = !!String.prototype.trimEnd; +var hasNativeIsSafeInteger = !!Number.isSafeInteger; +var isSafeInteger = hasNativeIsSafeInteger ? Number.isSafeInteger : function(n) { + return typeof n === "number" && isFinite(n) && Math.floor(n) === n && Math.abs(n) <= 9007199254740991; +}; +var REGEX_SUPPORTS_U_AND_Y = true; +try { + re = RE("([^\\p{White_Space}\\p{Pattern_Syntax}]*)", "yu"); + REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec("a")) === null || _a === void 0 ? void 0 : _a[0]) === "a"; +} catch (_) { + REGEX_SUPPORTS_U_AND_Y = false; +} +var re; +var startsWith = hasNativeStartsWith ? ( + // Native + function startsWith2(s, search, position) { + return s.startsWith(search, position); + } +) : ( + // For IE11 + function startsWith3(s, search, position) { + return s.slice(position, position + search.length) === search; + } +); +var fromCodePoint = hasNativeFromCodePoint ? String.fromCodePoint : ( + // IE11 + function fromCodePoint2() { + var codePoints = []; + for (var _i = 0; _i < arguments.length; _i++) { + codePoints[_i] = arguments[_i]; + } + var elements = ""; + var length = codePoints.length; + var i = 0; + var code; + while (length > i) { + code = codePoints[i++]; + if (code > 1114111) + throw RangeError(code + " is not a valid code point"); + elements += code < 65536 ? String.fromCharCode(code) : String.fromCharCode(((code -= 65536) >> 10) + 55296, code % 1024 + 56320); + } + return elements; + } +); +var fromEntries = ( + // native + hasNativeFromEntries ? Object.fromEntries : ( + // Ponyfill + function fromEntries2(entries) { + var obj = {}; + for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) { + var _a2 = entries_1[_i], k = _a2[0], v = _a2[1]; + obj[k] = v; + } + return obj; + } + ) +); +var codePointAt = hasNativeCodePointAt ? ( + // Native + function codePointAt2(s, index) { + return s.codePointAt(index); + } +) : ( + // IE 11 + function codePointAt3(s, index) { + var size = s.length; + if (index < 0 || index >= size) { + return void 0; + } + var first = s.charCodeAt(index); + var second; + return first < 55296 || first > 56319 || index + 1 === size || (second = s.charCodeAt(index + 1)) < 56320 || second > 57343 ? first : (first - 55296 << 10) + (second - 56320) + 65536; + } +); +var trimStart = hasTrimStart ? ( + // Native + function trimStart2(s) { + return s.trimStart(); + } +) : ( + // Ponyfill + function trimStart3(s) { + return s.replace(SPACE_SEPARATOR_START_REGEX, ""); + } +); +var trimEnd = hasTrimEnd ? ( + // Native + function trimEnd2(s) { + return s.trimEnd(); + } +) : ( + // Ponyfill + function trimEnd3(s) { + return s.replace(SPACE_SEPARATOR_END_REGEX, ""); + } +); +function RE(s, flag) { + return new RegExp(s, flag); +} +var matchIdentifierAtIndex; +if (REGEX_SUPPORTS_U_AND_Y) { + IDENTIFIER_PREFIX_RE_1 = RE("([^\\p{White_Space}\\p{Pattern_Syntax}]*)", "yu"); + matchIdentifierAtIndex = function matchIdentifierAtIndex2(s, index) { + var _a2; + IDENTIFIER_PREFIX_RE_1.lastIndex = index; + var match = IDENTIFIER_PREFIX_RE_1.exec(s); + return (_a2 = match[1]) !== null && _a2 !== void 0 ? _a2 : ""; + }; +} else { + matchIdentifierAtIndex = function matchIdentifierAtIndex2(s, index) { + var match = []; + while (true) { + var c = codePointAt(s, index); + if (c === void 0 || _isWhiteSpace(c) || _isPatternSyntax(c)) { + break; + } + match.push(c); + index += c >= 65536 ? 2 : 1; + } + return fromCodePoint.apply(void 0, match); + }; +} +var IDENTIFIER_PREFIX_RE_1; +var Parser = ( + /** @class */ + function() { + function Parser2(message, options) { + if (options === void 0) { + options = {}; + } + this.message = message; + this.position = { offset: 0, line: 1, column: 1 }; + this.ignoreTag = !!options.ignoreTag; + this.requiresOtherClause = !!options.requiresOtherClause; + this.shouldParseSkeletons = !!options.shouldParseSkeletons; + } + Parser2.prototype.parse = function() { + if (this.offset() !== 0) { + throw Error("parser can only be used once"); + } + return this.parseMessage(0, "", false); + }; + Parser2.prototype.parseMessage = function(nestingLevel, parentArgType, expectingCloseTag) { + var elements = []; + while (!this.isEOF()) { + var char = this.char(); + if (char === 123) { + var result = this.parseArgument(nestingLevel, expectingCloseTag); + if (result.err) { + return result; + } + elements.push(result.val); + } else if (char === 125 && nestingLevel > 0) { + break; + } else if (char === 35 && (parentArgType === "plural" || parentArgType === "selectordinal")) { + var position = this.clonePosition(); + this.bump(); + elements.push({ + type: TYPE.pound, + location: createLocation(position, this.clonePosition()) + }); + } else if (char === 60 && !this.ignoreTag && this.peek() === 47) { + if (expectingCloseTag) { + break; + } else { + return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition())); + } + } else if (char === 60 && !this.ignoreTag && _isAlpha(this.peek() || 0)) { + var result = this.parseTag(nestingLevel, parentArgType); + if (result.err) { + return result; + } + elements.push(result.val); + } else { + var result = this.parseLiteral(nestingLevel, parentArgType); + if (result.err) { + return result; + } + elements.push(result.val); + } + } + return { val: elements, err: null }; + }; + Parser2.prototype.parseTag = function(nestingLevel, parentArgType) { + var startPosition = this.clonePosition(); + this.bump(); + var tagName = this.parseTagName(); + this.bumpSpace(); + if (this.bumpIf("/>")) { + return { + val: { + type: TYPE.literal, + value: "<" + tagName + "/>", + location: createLocation(startPosition, this.clonePosition()) + }, + err: null + }; + } else if (this.bumpIf(">")) { + var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true); + if (childrenResult.err) { + return childrenResult; + } + var children = childrenResult.val; + var endTagStartPosition = this.clonePosition(); + if (this.bumpIf("")) { + return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition())); + } + return { + val: { + type: TYPE.tag, + value: tagName, + children, + location: createLocation(startPosition, this.clonePosition()) + }, + err: null + }; + } else { + return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition())); + } + } else { + return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition())); + } + }; + Parser2.prototype.parseTagName = function() { + var startOffset = this.offset(); + this.bump(); + while (!this.isEOF() && _isPotentialElementNameChar(this.char())) { + this.bump(); + } + return this.message.slice(startOffset, this.offset()); + }; + Parser2.prototype.parseLiteral = function(nestingLevel, parentArgType) { + var start = this.clonePosition(); + var value = ""; + while (true) { + var parseQuoteResult = this.tryParseQuote(parentArgType); + if (parseQuoteResult) { + value += parseQuoteResult; + continue; + } + var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType); + if (parseUnquotedResult) { + value += parseUnquotedResult; + continue; + } + var parseLeftAngleResult = this.tryParseLeftAngleBracket(); + if (parseLeftAngleResult) { + value += parseLeftAngleResult; + continue; + } + break; + } + var location = createLocation(start, this.clonePosition()); + return { + val: { type: TYPE.literal, value, location }, + err: null + }; + }; + Parser2.prototype.tryParseLeftAngleBracket = function() { + if (!this.isEOF() && this.char() === 60 && (this.ignoreTag || // If at the opening tag or closing tag position, bail. + !_isAlphaOrSlash(this.peek() || 0))) { + this.bump(); + return "<"; + } + return null; + }; + Parser2.prototype.tryParseQuote = function(parentArgType) { + if (this.isEOF() || this.char() !== 39) { + return null; + } + switch (this.peek()) { + case 39: + this.bump(); + this.bump(); + return "'"; + case 123: + case 60: + case 62: + case 125: + break; + case 35: + if (parentArgType === "plural" || parentArgType === "selectordinal") { + break; + } + return null; + default: + return null; + } + this.bump(); + var codePoints = [this.char()]; + this.bump(); + while (!this.isEOF()) { + var ch = this.char(); + if (ch === 39) { + if (this.peek() === 39) { + codePoints.push(39); + this.bump(); + } else { + this.bump(); + break; + } + } else { + codePoints.push(ch); + } + this.bump(); + } + return fromCodePoint.apply(void 0, codePoints); + }; + Parser2.prototype.tryParseUnquoted = function(nestingLevel, parentArgType) { + if (this.isEOF()) { + return null; + } + var ch = this.char(); + if (ch === 60 || ch === 123 || ch === 35 && (parentArgType === "plural" || parentArgType === "selectordinal") || ch === 125 && nestingLevel > 0) { + return null; + } else { + this.bump(); + return fromCodePoint(ch); + } + }; + Parser2.prototype.parseArgument = function(nestingLevel, expectingCloseTag) { + var openingBracePosition = this.clonePosition(); + this.bump(); + this.bumpSpace(); + if (this.isEOF()) { + return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition())); + } + if (this.char() === 125) { + this.bump(); + return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition())); + } + var value = this.parseIdentifierIfPossible().value; + if (!value) { + return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition())); + } + this.bumpSpace(); + if (this.isEOF()) { + return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition())); + } + switch (this.char()) { + case 125: { + this.bump(); + return { + val: { + type: TYPE.argument, + // value does not include the opening and closing braces. + value, + location: createLocation(openingBracePosition, this.clonePosition()) + }, + err: null + }; + } + case 44: { + this.bump(); + this.bumpSpace(); + if (this.isEOF()) { + return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition())); + } + return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition); + } + default: + return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition())); + } + }; + Parser2.prototype.parseIdentifierIfPossible = function() { + var startingPosition = this.clonePosition(); + var startOffset = this.offset(); + var value = matchIdentifierAtIndex(this.message, startOffset); + var endOffset = startOffset + value.length; + this.bumpTo(endOffset); + var endPosition = this.clonePosition(); + var location = createLocation(startingPosition, endPosition); + return { value, location }; + }; + Parser2.prototype.parseArgumentOptions = function(nestingLevel, expectingCloseTag, value, openingBracePosition) { + var _a2; + var typeStartPosition = this.clonePosition(); + var argType = this.parseIdentifierIfPossible().value; + var typeEndPosition = this.clonePosition(); + switch (argType) { + case "": + return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition)); + case "number": + case "date": + case "time": { + this.bumpSpace(); + var styleAndLocation = null; + if (this.bumpIf(",")) { + this.bumpSpace(); + var styleStartPosition = this.clonePosition(); + var result = this.parseSimpleArgStyleIfPossible(); + if (result.err) { + return result; + } + var style = trimEnd(result.val); + if (style.length === 0) { + return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition())); + } + var styleLocation = createLocation(styleStartPosition, this.clonePosition()); + styleAndLocation = { style, styleLocation }; + } + var argCloseResult = this.tryParseArgumentClose(openingBracePosition); + if (argCloseResult.err) { + return argCloseResult; + } + var location_1 = createLocation(openingBracePosition, this.clonePosition()); + if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, "::", 0)) { + var skeleton = trimStart(styleAndLocation.style.slice(2)); + if (argType === "number") { + var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation); + if (result.err) { + return result; + } + return { + val: { type: TYPE.number, value, location: location_1, style: result.val }, + err: null + }; + } else { + if (skeleton.length === 0) { + return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1); + } + var style = { + type: SKELETON_TYPE.dateTime, + pattern: skeleton, + location: styleAndLocation.styleLocation, + parsedOptions: this.shouldParseSkeletons ? parseDateTimeSkeleton(skeleton) : {} + }; + var type = argType === "date" ? TYPE.date : TYPE.time; + return { + val: { type, value, location: location_1, style }, + err: null + }; + } + } + return { + val: { + type: argType === "number" ? TYPE.number : argType === "date" ? TYPE.date : TYPE.time, + value, + location: location_1, + style: (_a2 = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a2 !== void 0 ? _a2 : null + }, + err: null + }; + } + case "plural": + case "selectordinal": + case "select": { + var typeEndPosition_1 = this.clonePosition(); + this.bumpSpace(); + if (!this.bumpIf(",")) { + return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1))); + } + this.bumpSpace(); + var identifierAndLocation = this.parseIdentifierIfPossible(); + var pluralOffset = 0; + if (argType !== "select" && identifierAndLocation.value === "offset") { + if (!this.bumpIf(":")) { + return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition())); + } + this.bumpSpace(); + var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE); + if (result.err) { + return result; + } + this.bumpSpace(); + identifierAndLocation = this.parseIdentifierIfPossible(); + pluralOffset = result.val; + } + var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation); + if (optionsResult.err) { + return optionsResult; + } + var argCloseResult = this.tryParseArgumentClose(openingBracePosition); + if (argCloseResult.err) { + return argCloseResult; + } + var location_2 = createLocation(openingBracePosition, this.clonePosition()); + if (argType === "select") { + return { + val: { + type: TYPE.select, + value, + options: fromEntries(optionsResult.val), + location: location_2 + }, + err: null + }; + } else { + return { + val: { + type: TYPE.plural, + value, + options: fromEntries(optionsResult.val), + offset: pluralOffset, + pluralType: argType === "plural" ? "cardinal" : "ordinal", + location: location_2 + }, + err: null + }; + } + } + default: + return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition)); + } + }; + Parser2.prototype.tryParseArgumentClose = function(openingBracePosition) { + if (this.isEOF() || this.char() !== 125) { + return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition())); + } + this.bump(); + return { val: true, err: null }; + }; + Parser2.prototype.parseSimpleArgStyleIfPossible = function() { + var nestedBraces = 0; + var startPosition = this.clonePosition(); + while (!this.isEOF()) { + var ch = this.char(); + switch (ch) { + case 39: { + this.bump(); + var apostrophePosition = this.clonePosition(); + if (!this.bumpUntil("'")) { + return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition())); + } + this.bump(); + break; + } + case 123: { + nestedBraces += 1; + this.bump(); + break; + } + case 125: { + if (nestedBraces > 0) { + nestedBraces -= 1; + } else { + return { + val: this.message.slice(startPosition.offset, this.offset()), + err: null + }; + } + break; + } + default: + this.bump(); + break; + } + } + return { + val: this.message.slice(startPosition.offset, this.offset()), + err: null + }; + }; + Parser2.prototype.parseNumberSkeletonFromString = function(skeleton, location) { + var tokens = []; + try { + tokens = parseNumberSkeletonFromString(skeleton); + } catch (e) { + return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location); + } + return { + val: { + type: SKELETON_TYPE.number, + tokens, + location, + parsedOptions: this.shouldParseSkeletons ? parseNumberSkeleton(tokens) : {} + }, + err: null + }; + }; + Parser2.prototype.tryParsePluralOrSelectOptions = function(nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) { + var _a2; + var hasOtherClause = false; + var options = []; + var parsedSelectors = /* @__PURE__ */ new Set(); + var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location; + while (true) { + if (selector.length === 0) { + var startPosition = this.clonePosition(); + if (parentArgType !== "select" && this.bumpIf("=")) { + var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR); + if (result.err) { + return result; + } + selectorLocation = createLocation(startPosition, this.clonePosition()); + selector = this.message.slice(startPosition.offset, this.offset()); + } else { + break; + } + } + if (parsedSelectors.has(selector)) { + return this.error(parentArgType === "select" ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation); + } + if (selector === "other") { + hasOtherClause = true; + } + this.bumpSpace(); + var openingBracePosition = this.clonePosition(); + if (!this.bumpIf("{")) { + return this.error(parentArgType === "select" ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition())); + } + var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag); + if (fragmentResult.err) { + return fragmentResult; + } + var argCloseResult = this.tryParseArgumentClose(openingBracePosition); + if (argCloseResult.err) { + return argCloseResult; + } + options.push([ + selector, + { + value: fragmentResult.val, + location: createLocation(openingBracePosition, this.clonePosition()) + } + ]); + parsedSelectors.add(selector); + this.bumpSpace(); + _a2 = this.parseIdentifierIfPossible(), selector = _a2.value, selectorLocation = _a2.location; + } + if (options.length === 0) { + return this.error(parentArgType === "select" ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition())); + } + if (this.requiresOtherClause && !hasOtherClause) { + return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition())); + } + return { val: options, err: null }; + }; + Parser2.prototype.tryParseDecimalInteger = function(expectNumberError, invalidNumberError) { + var sign = 1; + var startingPosition = this.clonePosition(); + if (this.bumpIf("+")) { + } else if (this.bumpIf("-")) { + sign = -1; + } + var hasDigits = false; + var decimal = 0; + while (!this.isEOF()) { + var ch = this.char(); + if (ch >= 48 && ch <= 57) { + hasDigits = true; + decimal = decimal * 10 + (ch - 48); + this.bump(); + } else { + break; + } + } + var location = createLocation(startingPosition, this.clonePosition()); + if (!hasDigits) { + return this.error(expectNumberError, location); + } + decimal *= sign; + if (!isSafeInteger(decimal)) { + return this.error(invalidNumberError, location); + } + return { val: decimal, err: null }; + }; + Parser2.prototype.offset = function() { + return this.position.offset; + }; + Parser2.prototype.isEOF = function() { + return this.offset() === this.message.length; + }; + Parser2.prototype.clonePosition = function() { + return { + offset: this.position.offset, + line: this.position.line, + column: this.position.column + }; + }; + Parser2.prototype.char = function() { + var offset = this.position.offset; + if (offset >= this.message.length) { + throw Error("out of bound"); + } + var code = codePointAt(this.message, offset); + if (code === void 0) { + throw Error("Offset " + offset + " is at invalid UTF-16 code unit boundary"); + } + return code; + }; + Parser2.prototype.error = function(kind, location) { + return { + val: null, + err: { + kind, + message: this.message, + location + } + }; + }; + Parser2.prototype.bump = function() { + if (this.isEOF()) { + return; + } + var code = this.char(); + if (code === 10) { + this.position.line += 1; + this.position.column = 1; + this.position.offset += 1; + } else { + this.position.column += 1; + this.position.offset += code < 65536 ? 1 : 2; + } + }; + Parser2.prototype.bumpIf = function(prefix) { + if (startsWith(this.message, prefix, this.offset())) { + for (var i = 0; i < prefix.length; i++) { + this.bump(); + } + return true; + } + return false; + }; + Parser2.prototype.bumpUntil = function(pattern) { + var currentOffset = this.offset(); + var index = this.message.indexOf(pattern, currentOffset); + if (index >= 0) { + this.bumpTo(index); + return true; + } else { + this.bumpTo(this.message.length); + return false; + } + }; + Parser2.prototype.bumpTo = function(targetOffset) { + if (this.offset() > targetOffset) { + throw Error("targetOffset " + targetOffset + " must be greater than or equal to the current offset " + this.offset()); + } + targetOffset = Math.min(targetOffset, this.message.length); + while (true) { + var offset = this.offset(); + if (offset === targetOffset) { + break; + } + if (offset > targetOffset) { + throw Error("targetOffset " + targetOffset + " is at invalid UTF-16 code unit boundary"); + } + this.bump(); + if (this.isEOF()) { + break; + } + } + }; + Parser2.prototype.bumpSpace = function() { + while (!this.isEOF() && _isWhiteSpace(this.char())) { + this.bump(); + } + }; + Parser2.prototype.peek = function() { + if (this.isEOF()) { + return null; + } + var code = this.char(); + var offset = this.offset(); + var nextCode = this.message.charCodeAt(offset + (code >= 65536 ? 2 : 1)); + return nextCode !== null && nextCode !== void 0 ? nextCode : null; + }; + return Parser2; + }() +); +function _isAlpha(codepoint) { + return codepoint >= 97 && codepoint <= 122 || codepoint >= 65 && codepoint <= 90; +} +function _isAlphaOrSlash(codepoint) { + return _isAlpha(codepoint) || codepoint === 47; +} +function _isPotentialElementNameChar(c) { + return c === 45 || c === 46 || c >= 48 && c <= 57 || c === 95 || c >= 97 && c <= 122 || c >= 65 && c <= 90 || c == 183 || c >= 192 && c <= 214 || c >= 216 && c <= 246 || c >= 248 && c <= 893 || c >= 895 && c <= 8191 || c >= 8204 && c <= 8205 || c >= 8255 && c <= 8256 || c >= 8304 && c <= 8591 || c >= 11264 && c <= 12271 || c >= 12289 && c <= 55295 || c >= 63744 && c <= 64975 || c >= 65008 && c <= 65533 || c >= 65536 && c <= 983039; +} +function _isWhiteSpace(c) { + return c >= 9 && c <= 13 || c === 32 || c === 133 || c >= 8206 && c <= 8207 || c === 8232 || c === 8233; +} +function _isPatternSyntax(c) { + return c >= 33 && c <= 35 || c === 36 || c >= 37 && c <= 39 || c === 40 || c === 41 || c === 42 || c === 43 || c === 44 || c === 45 || c >= 46 && c <= 47 || c >= 58 && c <= 59 || c >= 60 && c <= 62 || c >= 63 && c <= 64 || c === 91 || c === 92 || c === 93 || c === 94 || c === 96 || c === 123 || c === 124 || c === 125 || c === 126 || c === 161 || c >= 162 && c <= 165 || c === 166 || c === 167 || c === 169 || c === 171 || c === 172 || c === 174 || c === 176 || c === 177 || c === 182 || c === 187 || c === 191 || c === 215 || c === 247 || c >= 8208 && c <= 8213 || c >= 8214 && c <= 8215 || c === 8216 || c === 8217 || c === 8218 || c >= 8219 && c <= 8220 || c === 8221 || c === 8222 || c === 8223 || c >= 8224 && c <= 8231 || c >= 8240 && c <= 8248 || c === 8249 || c === 8250 || c >= 8251 && c <= 8254 || c >= 8257 && c <= 8259 || c === 8260 || c === 8261 || c === 8262 || c >= 8263 && c <= 8273 || c === 8274 || c === 8275 || c >= 8277 && c <= 8286 || c >= 8592 && c <= 8596 || c >= 8597 && c <= 8601 || c >= 8602 && c <= 8603 || c >= 8604 && c <= 8607 || c === 8608 || c >= 8609 && c <= 8610 || c === 8611 || c >= 8612 && c <= 8613 || c === 8614 || c >= 8615 && c <= 8621 || c === 8622 || c >= 8623 && c <= 8653 || c >= 8654 && c <= 8655 || c >= 8656 && c <= 8657 || c === 8658 || c === 8659 || c === 8660 || c >= 8661 && c <= 8691 || c >= 8692 && c <= 8959 || c >= 8960 && c <= 8967 || c === 8968 || c === 8969 || c === 8970 || c === 8971 || c >= 8972 && c <= 8991 || c >= 8992 && c <= 8993 || c >= 8994 && c <= 9e3 || c === 9001 || c === 9002 || c >= 9003 && c <= 9083 || c === 9084 || c >= 9085 && c <= 9114 || c >= 9115 && c <= 9139 || c >= 9140 && c <= 9179 || c >= 9180 && c <= 9185 || c >= 9186 && c <= 9254 || c >= 9255 && c <= 9279 || c >= 9280 && c <= 9290 || c >= 9291 && c <= 9311 || c >= 9472 && c <= 9654 || c === 9655 || c >= 9656 && c <= 9664 || c === 9665 || c >= 9666 && c <= 9719 || c >= 9720 && c <= 9727 || c >= 9728 && c <= 9838 || c === 9839 || c >= 9840 && c <= 10087 || c === 10088 || c === 10089 || c === 10090 || c === 10091 || c === 10092 || c === 10093 || c === 10094 || c === 10095 || c === 10096 || c === 10097 || c === 10098 || c === 10099 || c === 10100 || c === 10101 || c >= 10132 && c <= 10175 || c >= 10176 && c <= 10180 || c === 10181 || c === 10182 || c >= 10183 && c <= 10213 || c === 10214 || c === 10215 || c === 10216 || c === 10217 || c === 10218 || c === 10219 || c === 10220 || c === 10221 || c === 10222 || c === 10223 || c >= 10224 && c <= 10239 || c >= 10240 && c <= 10495 || c >= 10496 && c <= 10626 || c === 10627 || c === 10628 || c === 10629 || c === 10630 || c === 10631 || c === 10632 || c === 10633 || c === 10634 || c === 10635 || c === 10636 || c === 10637 || c === 10638 || c === 10639 || c === 10640 || c === 10641 || c === 10642 || c === 10643 || c === 10644 || c === 10645 || c === 10646 || c === 10647 || c === 10648 || c >= 10649 && c <= 10711 || c === 10712 || c === 10713 || c === 10714 || c === 10715 || c >= 10716 && c <= 10747 || c === 10748 || c === 10749 || c >= 10750 && c <= 11007 || c >= 11008 && c <= 11055 || c >= 11056 && c <= 11076 || c >= 11077 && c <= 11078 || c >= 11079 && c <= 11084 || c >= 11085 && c <= 11123 || c >= 11124 && c <= 11125 || c >= 11126 && c <= 11157 || c === 11158 || c >= 11159 && c <= 11263 || c >= 11776 && c <= 11777 || c === 11778 || c === 11779 || c === 11780 || c === 11781 || c >= 11782 && c <= 11784 || c === 11785 || c === 11786 || c === 11787 || c === 11788 || c === 11789 || c >= 11790 && c <= 11798 || c === 11799 || c >= 11800 && c <= 11801 || c === 11802 || c === 11803 || c === 11804 || c === 11805 || c >= 11806 && c <= 11807 || c === 11808 || c === 11809 || c === 11810 || c === 11811 || c === 11812 || c === 11813 || c === 11814 || c === 11815 || c === 11816 || c === 11817 || c >= 11818 && c <= 11822 || c === 11823 || c >= 11824 && c <= 11833 || c >= 11834 && c <= 11835 || c >= 11836 && c <= 11839 || c === 11840 || c === 11841 || c === 11842 || c >= 11843 && c <= 11855 || c >= 11856 && c <= 11857 || c === 11858 || c >= 11859 && c <= 11903 || c >= 12289 && c <= 12291 || c === 12296 || c === 12297 || c === 12298 || c === 12299 || c === 12300 || c === 12301 || c === 12302 || c === 12303 || c === 12304 || c === 12305 || c >= 12306 && c <= 12307 || c === 12308 || c === 12309 || c === 12310 || c === 12311 || c === 12312 || c === 12313 || c === 12314 || c === 12315 || c === 12316 || c === 12317 || c >= 12318 && c <= 12319 || c === 12320 || c === 12336 || c === 64830 || c === 64831 || c >= 65093 && c <= 65094; +} + +// ../node_modules/@formatjs/icu-messageformat-parser/lib/index.js +function pruneLocation(els) { + els.forEach(function(el) { + delete el.location; + if (isSelectElement(el) || isPluralElement(el)) { + for (var k in el.options) { + delete el.options[k].location; + pruneLocation(el.options[k].value); + } + } else if (isNumberElement(el) && isNumberSkeleton(el.style)) { + delete el.style.location; + } else if ((isDateElement(el) || isTimeElement(el)) && isDateTimeSkeleton(el.style)) { + delete el.style.location; + } else if (isTagElement(el)) { + pruneLocation(el.children); + } + }); +} +function parse(message, opts) { + if (opts === void 0) { + opts = {}; + } + opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts); + var result = new Parser(message, opts).parse(); + if (result.err) { + var error = SyntaxError(ErrorKind[result.err.kind]); + error.location = result.err.location; + error.originalMessage = result.err.message; + throw error; + } + if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) { + pruneLocation(result.val); + } + return result.val; +} + +// ../node_modules/@formatjs/fast-memoize/lib/index.js +function memoize(fn, options) { + var cache = options && options.cache ? options.cache : cacheDefault; + var serializer = options && options.serializer ? options.serializer : serializerDefault; + var strategy = options && options.strategy ? options.strategy : strategyDefault; + return strategy(fn, { + cache, + serializer + }); +} +function isPrimitive(value) { + return value == null || typeof value === "number" || typeof value === "boolean"; +} +function monadic(fn, cache, serializer, arg) { + var cacheKey = isPrimitive(arg) ? arg : serializer(arg); + var computedValue = cache.get(cacheKey); + if (typeof computedValue === "undefined") { + computedValue = fn.call(this, arg); + cache.set(cacheKey, computedValue); + } + return computedValue; +} +function variadic(fn, cache, serializer) { + var args = Array.prototype.slice.call(arguments, 3); + var cacheKey = serializer(args); + var computedValue = cache.get(cacheKey); + if (typeof computedValue === "undefined") { + computedValue = fn.apply(this, args); + cache.set(cacheKey, computedValue); + } + return computedValue; +} +function assemble(fn, context, strategy, cache, serialize) { + return strategy.bind(context, fn, cache, serialize); +} +function strategyDefault(fn, options) { + var strategy = fn.length === 1 ? monadic : variadic; + return assemble(fn, this, strategy, options.cache.create(), options.serializer); +} +function strategyVariadic(fn, options) { + return assemble(fn, this, variadic, options.cache.create(), options.serializer); +} +function strategyMonadic(fn, options) { + return assemble(fn, this, monadic, options.cache.create(), options.serializer); +} +var serializerDefault = function() { + return JSON.stringify(arguments); +}; +function ObjectWithoutPrototypeCache() { + this.cache = /* @__PURE__ */ Object.create(null); +} +ObjectWithoutPrototypeCache.prototype.get = function(key) { + return this.cache[key]; +}; +ObjectWithoutPrototypeCache.prototype.set = function(key, value) { + this.cache[key] = value; +}; +var cacheDefault = { + create: function create() { + return new ObjectWithoutPrototypeCache(); + } +}; +var strategies = { + variadic: strategyVariadic, + monadic: strategyMonadic +}; + +// ../node_modules/intl-messageformat/lib/src/error.js +var ErrorCode; +(function(ErrorCode2) { + ErrorCode2["MISSING_VALUE"] = "MISSING_VALUE"; + ErrorCode2["INVALID_VALUE"] = "INVALID_VALUE"; + ErrorCode2["MISSING_INTL_API"] = "MISSING_INTL_API"; +})(ErrorCode || (ErrorCode = {})); +var FormatError = ( + /** @class */ + function(_super) { + __extends(FormatError2, _super); + function FormatError2(msg, code, originalMessage) { + var _this = _super.call(this, msg) || this; + _this.code = code; + _this.originalMessage = originalMessage; + return _this; + } + FormatError2.prototype.toString = function() { + return "[formatjs Error: " + this.code + "] " + this.message; + }; + return FormatError2; + }(Error) +); +var InvalidValueError = ( + /** @class */ + function(_super) { + __extends(InvalidValueError2, _super); + function InvalidValueError2(variableId, value, options, originalMessage) { + return _super.call(this, 'Invalid values for "' + variableId + '": "' + value + '". Options are "' + Object.keys(options).join('", "') + '"', ErrorCode.INVALID_VALUE, originalMessage) || this; + } + return InvalidValueError2; + }(FormatError) +); +var InvalidValueTypeError = ( + /** @class */ + function(_super) { + __extends(InvalidValueTypeError2, _super); + function InvalidValueTypeError2(value, type, originalMessage) { + return _super.call(this, 'Value for "' + value + '" must be of type ' + type, ErrorCode.INVALID_VALUE, originalMessage) || this; + } + return InvalidValueTypeError2; + }(FormatError) +); +var MissingValueError = ( + /** @class */ + function(_super) { + __extends(MissingValueError2, _super); + function MissingValueError2(variableId, originalMessage) { + return _super.call(this, 'The intl string context variable "' + variableId + '" was not provided to the string "' + originalMessage + '"', ErrorCode.MISSING_VALUE, originalMessage) || this; + } + return MissingValueError2; + }(FormatError) +); + +// ../node_modules/intl-messageformat/lib/src/formatters.js +var PART_TYPE; +(function(PART_TYPE2) { + PART_TYPE2[PART_TYPE2["literal"] = 0] = "literal"; + PART_TYPE2[PART_TYPE2["object"] = 1] = "object"; +})(PART_TYPE || (PART_TYPE = {})); +function mergeLiteral(parts) { + if (parts.length < 2) { + return parts; + } + return parts.reduce(function(all, part) { + var lastPart = all[all.length - 1]; + if (!lastPart || lastPart.type !== PART_TYPE.literal || part.type !== PART_TYPE.literal) { + all.push(part); + } else { + lastPart.value += part.value; + } + return all; + }, []); +} +function isFormatXMLElementFn(el) { + return typeof el === "function"; +} +function formatToParts(els, locales, formatters, formats, values, currentPluralValue, originalMessage) { + if (els.length === 1 && isLiteralElement(els[0])) { + return [ + { + type: PART_TYPE.literal, + value: els[0].value + } + ]; + } + var result = []; + for (var _i = 0, els_1 = els; _i < els_1.length; _i++) { + var el = els_1[_i]; + if (isLiteralElement(el)) { + result.push({ + type: PART_TYPE.literal, + value: el.value + }); + continue; + } + if (isPoundElement(el)) { + if (typeof currentPluralValue === "number") { + result.push({ + type: PART_TYPE.literal, + value: formatters.getNumberFormat(locales).format(currentPluralValue) + }); + } + continue; + } + var varName = el.value; + if (!(values && varName in values)) { + throw new MissingValueError(varName, originalMessage); + } + var value = values[varName]; + if (isArgumentElement(el)) { + if (!value || typeof value === "string" || typeof value === "number") { + value = typeof value === "string" || typeof value === "number" ? String(value) : ""; + } + result.push({ + type: typeof value === "string" ? PART_TYPE.literal : PART_TYPE.object, + value + }); + continue; + } + if (isDateElement(el)) { + var style = typeof el.style === "string" ? formats.date[el.style] : isDateTimeSkeleton(el.style) ? el.style.parsedOptions : void 0; + result.push({ + type: PART_TYPE.literal, + value: formatters.getDateTimeFormat(locales, style).format(value) + }); + continue; + } + if (isTimeElement(el)) { + var style = typeof el.style === "string" ? formats.time[el.style] : isDateTimeSkeleton(el.style) ? el.style.parsedOptions : void 0; + result.push({ + type: PART_TYPE.literal, + value: formatters.getDateTimeFormat(locales, style).format(value) + }); + continue; + } + if (isNumberElement(el)) { + var style = typeof el.style === "string" ? formats.number[el.style] : isNumberSkeleton(el.style) ? el.style.parsedOptions : void 0; + if (style && style.scale) { + value = value * (style.scale || 1); + } + result.push({ + type: PART_TYPE.literal, + value: formatters.getNumberFormat(locales, style).format(value) + }); + continue; + } + if (isTagElement(el)) { + var children = el.children, value_1 = el.value; + var formatFn = values[value_1]; + if (!isFormatXMLElementFn(formatFn)) { + throw new InvalidValueTypeError(value_1, "function", originalMessage); + } + var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue); + var chunks = formatFn(parts.map(function(p) { + return p.value; + })); + if (!Array.isArray(chunks)) { + chunks = [chunks]; + } + result.push.apply(result, chunks.map(function(c) { + return { + type: typeof c === "string" ? PART_TYPE.literal : PART_TYPE.object, + value: c + }; + })); + } + if (isSelectElement(el)) { + var opt = el.options[value] || el.options.other; + if (!opt) { + throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage); + } + result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values)); + continue; + } + if (isPluralElement(el)) { + var opt = el.options["=" + value]; + if (!opt) { + if (!Intl.PluralRules) { + throw new FormatError('Intl.PluralRules is not available in this environment.\nTry polyfilling it using "@formatjs/intl-pluralrules"\n', ErrorCode.MISSING_INTL_API, originalMessage); + } + var rule = formatters.getPluralRules(locales, { type: el.pluralType }).select(value - (el.offset || 0)); + opt = el.options[rule] || el.options.other; + } + if (!opt) { + throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage); + } + result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0))); + continue; + } + } + return mergeLiteral(result); +} + +// ../node_modules/intl-messageformat/lib/src/core.js +function mergeConfig(c1, c2) { + if (!c2) { + return c1; + } + return __assign(__assign(__assign({}, c1 || {}), c2 || {}), Object.keys(c1).reduce(function(all, k) { + all[k] = __assign(__assign({}, c1[k]), c2[k] || {}); + return all; + }, {})); +} +function mergeConfigs(defaultConfig, configs) { + if (!configs) { + return defaultConfig; + } + return Object.keys(defaultConfig).reduce(function(all, k) { + all[k] = mergeConfig(defaultConfig[k], configs[k]); + return all; + }, __assign({}, defaultConfig)); +} +function createFastMemoizeCache(store) { + return { + create: function() { + return { + get: function(key) { + return store[key]; + }, + set: function(key, value) { + store[key] = value; + } + }; + } + }; +} +function createDefaultFormatters(cache) { + if (cache === void 0) { + cache = { + number: {}, + dateTime: {}, + pluralRules: {} + }; + } + return { + getNumberFormat: memoize(function() { + var _a2; + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return new ((_a2 = Intl.NumberFormat).bind.apply(_a2, __spreadArray([void 0], args)))(); + }, { + cache: createFastMemoizeCache(cache.number), + strategy: strategies.variadic + }), + getDateTimeFormat: memoize(function() { + var _a2; + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return new ((_a2 = Intl.DateTimeFormat).bind.apply(_a2, __spreadArray([void 0], args)))(); + }, { + cache: createFastMemoizeCache(cache.dateTime), + strategy: strategies.variadic + }), + getPluralRules: memoize(function() { + var _a2; + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return new ((_a2 = Intl.PluralRules).bind.apply(_a2, __spreadArray([void 0], args)))(); + }, { + cache: createFastMemoizeCache(cache.pluralRules), + strategy: strategies.variadic + }) + }; +} +var IntlMessageFormat = ( + /** @class */ + function() { + function IntlMessageFormat2(message, locales, overrideFormats, opts) { + var _this = this; + if (locales === void 0) { + locales = IntlMessageFormat2.defaultLocale; + } + this.formatterCache = { + number: {}, + dateTime: {}, + pluralRules: {} + }; + this.format = function(values) { + var parts = _this.formatToParts(values); + if (parts.length === 1) { + return parts[0].value; + } + var result = parts.reduce(function(all, part) { + if (!all.length || part.type !== PART_TYPE.literal || typeof all[all.length - 1] !== "string") { + all.push(part.value); + } else { + all[all.length - 1] += part.value; + } + return all; + }, []); + if (result.length <= 1) { + return result[0] || ""; + } + return result; + }; + this.formatToParts = function(values) { + return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, void 0, _this.message); + }; + this.resolvedOptions = function() { + return { + locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0] + }; + }; + this.getAst = function() { + return _this.ast; + }; + if (typeof message === "string") { + this.message = message; + if (!IntlMessageFormat2.__parse) { + throw new TypeError("IntlMessageFormat.__parse must be set to process `message` of type `string`"); + } + this.ast = IntlMessageFormat2.__parse(message, { + ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag + }); + } else { + this.ast = message; + } + if (!Array.isArray(this.ast)) { + throw new TypeError("A message must be provided as a String or AST."); + } + this.formats = mergeConfigs(IntlMessageFormat2.formats, overrideFormats); + this.locales = locales; + this.formatters = opts && opts.formatters || createDefaultFormatters(this.formatterCache); + } + Object.defineProperty(IntlMessageFormat2, "defaultLocale", { + get: function() { + if (!IntlMessageFormat2.memoizedDefaultLocale) { + IntlMessageFormat2.memoizedDefaultLocale = new Intl.NumberFormat().resolvedOptions().locale; + } + return IntlMessageFormat2.memoizedDefaultLocale; + }, + enumerable: false, + configurable: true + }); + IntlMessageFormat2.memoizedDefaultLocale = null; + IntlMessageFormat2.__parse = parse; + IntlMessageFormat2.formats = { + number: { + integer: { + maximumFractionDigits: 0 + }, + currency: { + style: "currency" + }, + percent: { + style: "percent" + } + }, + date: { + short: { + month: "numeric", + day: "numeric", + year: "2-digit" + }, + medium: { + month: "short", + day: "numeric", + year: "numeric" + }, + long: { + month: "long", + day: "numeric", + year: "numeric" + }, + full: { + weekday: "long", + month: "long", + day: "numeric", + year: "numeric" + } + }, + time: { + short: { + hour: "numeric", + minute: "numeric" + }, + medium: { + hour: "numeric", + minute: "numeric", + second: "numeric" + }, + long: { + hour: "numeric", + minute: "numeric", + second: "numeric", + timeZoneName: "short" + }, + full: { + hour: "numeric", + minute: "numeric", + second: "numeric", + timeZoneName: "short" + } + } + }; + return IntlMessageFormat2; + }() +); + +// ../node_modules/intl-messageformat/lib/index.js +var lib_default = IntlMessageFormat; + +// ../node_modules/@dexter/tacocat-consonant-templates/src/price/numberFormat.js +var maskRegex = /[0-9\-+#]/; +var notMaskRegex = /[^\d\-+#]/g; +function getIndex(mask) { + return mask.search(maskRegex); +} +function processMask(mask = "#.##") { + const maskObj = {}; + const len = mask.length; + const start = getIndex(mask); + maskObj.prefix = start > 0 ? mask.substring(0, start) : ""; + const end = getIndex(mask.split("").reverse().join("")); + const offset = len - end; + const substr = mask.substring(offset, offset + 1); + const indx = offset + (substr === "." || substr === "," ? 1 : 0); + maskObj.suffix = end > 0 ? mask.substring(indx, len) : ""; + maskObj.mask = mask.substring(start, indx); + maskObj.maskHasNegativeSign = maskObj.mask.charAt(0) === "-"; + maskObj.maskHasPositiveSign = maskObj.mask.charAt(0) === "+"; + let result = maskObj.mask.match(notMaskRegex); + maskObj.decimal = result && result[result.length - 1] || "."; + maskObj.separator = result && result[1] && result[0] || ","; + result = maskObj.mask.split(maskObj.decimal); + maskObj.integer = result[0]; + maskObj.fraction = result[1]; + return maskObj; +} +function processValue(value, maskObj, options) { + let isNegative = false; + const valObj = { + value + }; + if (value < 0) { + isNegative = true; + valObj.value = -valObj.value; + } + valObj.sign = isNegative ? "-" : ""; + valObj.value = Number(valObj.value).toFixed( + maskObj.fraction && maskObj.fraction.length + ); + valObj.value = Number(valObj.value).toString(); + const posTrailZero = maskObj.fraction && maskObj.fraction.lastIndexOf("0"); + let [valInteger = "0", valFraction = ""] = valObj.value.split("."); + if (!valFraction || valFraction && valFraction.length <= posTrailZero) { + valFraction = posTrailZero < 0 ? "" : Number("0." + valFraction).toFixed(posTrailZero + 1).replace("0.", ""); + } + valObj.integer = valInteger; + valObj.fraction = valFraction; + addSeparators(valObj, maskObj); + if (valObj.result === "0" || valObj.result === "") { + isNegative = false; + valObj.sign = ""; + } + if (!isNegative && maskObj.maskHasPositiveSign) { + valObj.sign = "+"; + } else if (isNegative && maskObj.maskHasPositiveSign) { + valObj.sign = "-"; + } else if (isNegative) { + valObj.sign = options && options.enforceMaskSign && !maskObj.maskHasNegativeSign ? "" : "-"; + } + return valObj; +} +function addSeparators(valObj, maskObj) { + valObj.result = ""; + const szSep = maskObj.integer.split(maskObj.separator); + const maskInteger = szSep.join(""); + const posLeadZero = maskInteger && maskInteger.indexOf("0"); + if (posLeadZero > -1) { + while (valObj.integer.length < maskInteger.length - posLeadZero) { + valObj.integer = "0" + valObj.integer; + } + } else if (Number(valObj.integer) === 0) { + valObj.integer = ""; + } + const posSeparator = szSep[1] && szSep[szSep.length - 1].length; + if (posSeparator) { + const len = valObj.integer.length; + const offset = len % posSeparator; + for (let indx = 0; indx < len; indx++) { + valObj.result += valObj.integer.charAt(indx); + if (!((indx - offset + 1) % posSeparator) && indx < len - posSeparator) { + valObj.result += maskObj.separator; + } + } + } else { + valObj.result = valObj.integer; + } + valObj.result += maskObj.fraction && valObj.fraction ? maskObj.decimal + valObj.fraction : ""; + return valObj; +} +function formatNumber(mask, value, options = {}) { + if (!mask || isNaN(Number(value))) { + return value; + } + const maskObj = processMask(mask); + const valObj = processValue(value, maskObj, options); + return maskObj.prefix + valObj.sign + valObj.result + maskObj.suffix; +} +var numberFormat_default = formatNumber; + +// ../node_modules/@dexter/tacocat-consonant-templates/src/price/utilities.js +var DECIMAL_POINT = "."; +var DECIMAL_COMMA = ","; +var SPACE_START_PATTERN = /^\s+/; +var SPACE_END_PATTERN = /\s+$/; +var NBSP = " "; +var RecurrenceTerm = { + MONTH: "MONTH", + YEAR: "YEAR" +}; +var opticalPriceDivisors = { + [Term.ANNUAL]: 12, + [Term.MONTHLY]: 1, + [Term.THREE_YEARS]: 36, + [Term.TWO_YEARS]: 24 +}; +var opticalPriceCurrencyRules = { + CHF: (opticalPrice) => Math.round(opticalPrice * 20) / 20 +}; +var opticalPriceRoundingRule = (accept, round) => ({ accept, round }); +var opticalPriceRoundingRules = [ + opticalPriceRoundingRule( + // optical price for the term is a multiple of the initial price + ({ divisor, price: price2 }) => price2 % divisor == 0, + ({ divisor, price: price2 }) => price2 / divisor + ), + opticalPriceRoundingRule( + // round optical price up to 2 decimals + ({ usePrecision }) => usePrecision, + ({ divisor, price: price2 }) => Math.ceil(Math.floor(price2 * 1e4 / divisor) / 100) / 100 + ), + opticalPriceRoundingRule( + // round optical price up to integer + () => true, + ({ divisor, price: price2 }) => Math.ceil(Math.floor(price2 * 100 / divisor) / 100) + ) +]; +var recurrenceTerms = { + [Commitment.YEAR]: { + [Term.MONTHLY]: RecurrenceTerm.MONTH, + [Term.ANNUAL]: RecurrenceTerm.YEAR + }, + [Commitment.MONTH]: { + [Term.MONTHLY]: RecurrenceTerm.MONTH + } +}; +var currencyIsFirstChar = (formatString, currencySymbol) => formatString.indexOf(`'${currencySymbol}'`) === 0; +var extractNumberMask = (formatString, usePrecision = true) => { + let numberMask = formatString.replace(/'.*?'/, "").trim(); + const decimalsDelimiter = findDecimalsDelimiter(numberMask); + const hasDecimalDelimiter = !!decimalsDelimiter; + if (!hasDecimalDelimiter) { + numberMask = numberMask.replace( + /\s?(#.*0)(?!\s)?/, + "$&" + getPossibleDecimalsDelimiter(formatString) + ); + } else if (!usePrecision) { + numberMask = numberMask.replace(/[,\.]0+/, decimalsDelimiter); + } + return numberMask; +}; +var getCurrencySymbolDetails = (formatString) => { + const currencySymbol = findCurrencySymbol(formatString); + const isCurrencyFirst = currencyIsFirstChar(formatString, currencySymbol); + const formatStringWithoutSymbol = formatString.replace(/'.*?'/, ""); + const hasCurrencySpace = SPACE_START_PATTERN.test(formatStringWithoutSymbol) || SPACE_END_PATTERN.test(formatStringWithoutSymbol); + return { currencySymbol, isCurrencyFirst, hasCurrencySpace }; +}; +var makeSpacesAroundNonBreaking = (text) => { + return text.replace(SPACE_START_PATTERN, NBSP).replace(SPACE_END_PATTERN, NBSP); +}; +var getPossibleDecimalsDelimiter = (formatString) => formatString.match(/#(.?)#/)?.[1] === DECIMAL_POINT ? DECIMAL_COMMA : DECIMAL_POINT; +var findCurrencySymbol = (formatString) => formatString.match(/'(.*?)'/)?.[1] ?? ""; +var findDecimalsDelimiter = (formatString) => formatString.match(/0(.?)0/)?.[1] ?? ""; +function formatPrice({ formatString, price: price2, usePrecision, isIndianPrice = false }, recurrenceTerm, transformPrice = (formattedPrice) => formattedPrice) { + const { currencySymbol, isCurrencyFirst, hasCurrencySpace } = getCurrencySymbolDetails(formatString); + const decimalsDelimiter = usePrecision ? findDecimalsDelimiter(formatString) : ""; + const numberMask = extractNumberMask(formatString, usePrecision); + const fractionDigits = usePrecision ? 2 : 0; + const transformedPrice = transformPrice(price2, { currencySymbol }); + const formattedPrice = isIndianPrice ? transformedPrice.toLocaleString("hi-IN", { + minimumFractionDigits: fractionDigits, + maximumFractionDigits: fractionDigits + }) : numberFormat_default(numberMask, transformedPrice); + const decimalIndex = usePrecision ? formattedPrice.lastIndexOf(decimalsDelimiter) : formattedPrice.length; + const integer = formattedPrice.substring(0, decimalIndex); + const decimals = formattedPrice.substring(decimalIndex + 1); + const accessiblePrice = formatString.replace(/'.*?'/, "SYMBOL").replace(/#.*0/, formattedPrice).replace(/SYMBOL/, currencySymbol); + return { + accessiblePrice, + currencySymbol, + decimals, + decimalsDelimiter, + hasCurrencySpace, + integer, + isCurrencyFirst, + recurrenceTerm + }; +} +var formatOpticalPrice = (data) => { + const { commitment, term, usePrecision } = data; + const divisor = opticalPriceDivisors[term] ?? 1; + return formatPrice( + data, + divisor > 1 ? RecurrenceTerm.MONTH : recurrenceTerms[commitment]?.[term], + (price2, { currencySymbol }) => { + const priceData = { + divisor, + price: price2, + usePrecision + }; + const { round } = opticalPriceRoundingRules.find( + ({ accept }) => accept(priceData) + ); + if (!round) + throw new Error( + `Missing rounding rule for: ${JSON.stringify(priceData)}` + ); + const adapt = opticalPriceCurrencyRules[currencySymbol] ?? ((value) => value); + return adapt(round(priceData)); + } + ); +}; +var formatRegularPrice = ({ commitment, term, ...data }) => formatPrice(data, recurrenceTerms[commitment]?.[term]); +var formatAnnualPrice = (data) => { + const { commitment, term } = data; + if (commitment === Commitment.YEAR && term === Term.MONTHLY) { + return formatPrice(data, RecurrenceTerm.YEAR, (price2) => price2 * 12); + } + return formatPrice(data, recurrenceTerms[commitment]?.[term]); +}; + +// ../node_modules/@dexter/tacocat-consonant-templates/src/price/template.js +var defaultLiterals = { + recurrenceLabel: "{recurrenceTerm, select, MONTH {/mo} YEAR {/yr} other {}}", + recurrenceAriaLabel: "{recurrenceTerm, select, MONTH {per month} YEAR {per year} other {}}", + perUnitLabel: "{perUnit, select, LICENSE {per license} other {}}", + perUnitAriaLabel: "{perUnit, select, LICENSE {per license} other {}}", + freeLabel: "Free", + freeAriaLabel: "Free", + taxExclusiveLabel: "{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}", + taxInclusiveLabel: "{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}", + alternativePriceAriaLabel: "Alternatively at {alternativePrice}", + strikethroughAriaLabel: "Regularly at {strikethroughPrice}" +}; +var log = createLog("ConsonantTemplates/price"); +var htmlPattern = /<.+?>/g; +var cssClassNames = { + container: "price", + containerOptical: "price-optical", + containerStrikethrough: "price-strikethrough", + containerAnnual: "price-annual", + disabled: "disabled", + currencySpace: "price-currency-space", + currencySymbol: "price-currency-symbol", + decimals: "price-decimals", + decimalsDelimiter: "price-decimals-delimiter", + integer: "price-integer", + recurrence: "price-recurrence", + taxInclusivity: "price-tax-inclusivity", + unitType: "price-unit-type" +}; +var literalKeys = { + perUnitLabel: "perUnitLabel", + perUnitAriaLabel: "perUnitAriaLabel", + recurrenceLabel: "recurrenceLabel", + recurrenceAriaLabel: "recurrenceAriaLabel", + taxExclusiveLabel: "taxExclusiveLabel", + taxInclusiveLabel: "taxInclusiveLabel", + strikethroughAriaLabel: "strikethroughAriaLabel" +}; +var WCS_TAX_DISPLAY_EXCLUSIVE = "TAX_EXCLUSIVE"; +var renderAttributes = (attributes) => isObject(attributes) ? Object.entries(attributes).filter( + ([, value]) => isString(value) || isNumber(value) || value === true +).reduce( + (html, [key, value]) => html + ` ${key}${value === true ? "" : '="' + escapeHtml(value) + '"'}`, + "" +) : ""; +var renderSpan = (cssClass, content, attributes, convertSpaces = false) => { + return `${convertSpaces ? makeSpacesAroundNonBreaking(content) : content ?? ""}`; +}; +function renderContainer(cssClass, { + accessibleLabel, + currencySymbol, + decimals, + decimalsDelimiter, + hasCurrencySpace, + integer, + isCurrencyFirst, + recurrenceLabel, + perUnitLabel, + taxInclusivityLabel +}, attributes = {}) { + const currencyMarkup = renderSpan( + cssClassNames.currencySymbol, + currencySymbol + ); + const currencySpaceMarkup = renderSpan( + cssClassNames.currencySpace, + hasCurrencySpace ? " " : "" + ); + let markup = ""; + if (isCurrencyFirst) + markup += currencyMarkup + currencySpaceMarkup; + markup += renderSpan(cssClassNames.integer, integer); + markup += renderSpan(cssClassNames.decimalsDelimiter, decimalsDelimiter); + markup += renderSpan(cssClassNames.decimals, decimals); + if (!isCurrencyFirst) + markup += currencySpaceMarkup + currencyMarkup; + markup += renderSpan(cssClassNames.recurrence, recurrenceLabel, null, true); + markup += renderSpan(cssClassNames.unitType, perUnitLabel, null, true); + markup += renderSpan( + cssClassNames.taxInclusivity, + taxInclusivityLabel, + true + ); + return renderSpan(cssClass, markup, { + ...attributes, + ["aria-label"]: accessibleLabel + }); +} +var createPriceTemplate = ({ displayOptical = false, displayStrikethrough = false, displayAnnual = false } = {}) => ({ + country, + displayFormatted = true, + displayRecurrence = true, + displayPerUnit = false, + displayTax = false, + language, + literals: priceLiterals = {} +} = {}, { + commitment, + formatString, + price: price2, + priceWithoutDiscount, + taxDisplay, + taxTerm, + term, + usePrecision +} = {}, attributes = {}) => { + Object.entries({ + country, + formatString, + language, + price: price2 + }).forEach(([key, value]) => { + if (value == null) { + throw new Error(`Argument "${key}" is missing`); + } + }); + const literals = { + ...defaultLiterals, + ...priceLiterals + }; + const locale = `${language.toLowerCase()}-${country.toUpperCase()}`; + function formatLiteral(key, parameters) { + const literal = literals[key]; + if (literal == void 0) { + return ""; + } + try { + return new lib_default( + literal.replace(htmlPattern, ""), + locale + ).format(parameters); + } catch { + log.error("Failed to format literal:", literal); + return ""; + } + } + const displayPrice = displayStrikethrough && priceWithoutDiscount ? priceWithoutDiscount : price2; + let method = displayOptical ? formatOpticalPrice : formatRegularPrice; + if (displayAnnual) { + method = formatAnnualPrice; + } + const { accessiblePrice, recurrenceTerm, ...formattedPrice } = method({ + commitment, + formatString, + term, + price: displayOptical ? price2 : displayPrice, + usePrecision, + isIndianPrice: country === "IN" + }); + let accessibleLabel = accessiblePrice; + let recurrenceLabel = ""; + if (toBoolean(displayRecurrence) && recurrenceTerm) { + const recurrenceAccessibleLabel = formatLiteral( + literalKeys.recurrenceAriaLabel, + { + recurrenceTerm + } + ); + if (recurrenceAccessibleLabel) { + accessibleLabel += " " + recurrenceAccessibleLabel; + } + recurrenceLabel = formatLiteral(literalKeys.recurrenceLabel, { + recurrenceTerm + }); + } + let perUnitLabel = ""; + if (toBoolean(displayPerUnit)) { + perUnitLabel = formatLiteral(literalKeys.perUnitLabel, { + perUnit: "LICENSE" + }); + const perUnitAriaLabel = formatLiteral( + literalKeys.perUnitAriaLabel, + { perUnit: "LICENSE" } + ); + if (perUnitAriaLabel) { + accessibleLabel += " " + perUnitAriaLabel; + } + } + let taxInclusivityLabel = ""; + if (toBoolean(displayTax) && taxTerm) { + taxInclusivityLabel = formatLiteral( + taxDisplay === WCS_TAX_DISPLAY_EXCLUSIVE ? literalKeys.taxExclusiveLabel : literalKeys.taxInclusiveLabel, + { taxTerm } + ); + if (taxInclusivityLabel) { + accessibleLabel += " " + taxInclusivityLabel; + } + } + if (displayStrikethrough) { + accessibleLabel = formatLiteral( + literalKeys.strikethroughAriaLabel, + { + strikethroughPrice: accessibleLabel + } + ); + } + let cssClass = cssClassNames.container; + if (displayOptical) { + cssClass += " " + cssClassNames.containerOptical; + } + if (displayStrikethrough) { + cssClass += " " + cssClassNames.containerStrikethrough; + } + if (displayAnnual) { + cssClass += " " + cssClassNames.containerAnnual; + } + if (toBoolean(displayFormatted)) { + return renderContainer( + cssClass, + { + ...formattedPrice, + accessibleLabel, + recurrenceLabel, + perUnitLabel, + taxInclusivityLabel + }, + attributes + ); + } + const { + currencySymbol, + decimals, + decimalsDelimiter, + hasCurrencySpace, + integer, + isCurrencyFirst + } = formattedPrice; + const unformattedPrice = [integer, decimalsDelimiter, decimals]; + if (isCurrencyFirst) { + unformattedPrice.unshift(hasCurrencySpace ? "\xA0" : ""); + unformattedPrice.unshift(currencySymbol); + } else { + unformattedPrice.push(hasCurrencySpace ? "\xA0" : ""); + unformattedPrice.push(currencySymbol); + } + unformattedPrice.push( + recurrenceLabel, + perUnitLabel, + taxInclusivityLabel + ); + const content = unformattedPrice.join(""); + return renderSpan(cssClass, content, attributes); +}; +var createPromoPriceTemplate = () => (context, value, attributes) => { + const displayOldPrice = context.displayOldPrice === void 0 || toBoolean(context.displayOldPrice); + const shouldDisplayOldPrice = displayOldPrice && value.priceWithoutDiscount && value.priceWithoutDiscount != value.price; + return `${createPriceTemplate()(context, value, attributes)}${shouldDisplayOldPrice ? " " + createPriceTemplate({ + displayStrikethrough: true + })(context, value, attributes) : ""}`; +}; + +// ../node_modules/@dexter/tacocat-consonant-templates/src/price/index.js +var price = createPriceTemplate(); +var pricePromo = createPromoPriceTemplate(); +var priceOptical = createPriceTemplate({ + displayOptical: true +}); +var priceStrikethrough = createPriceTemplate({ + displayStrikethrough: true +}); +var priceAnnual = createPriceTemplate({ + displayAnnual: true +}); + +// ../node_modules/@dexter/tacocat-consonant-templates/src/discount/template.js +var getDiscount = (price2, priceWithoutDiscount) => { + if (!isPositiveFiniteNumber(price2) || !isPositiveFiniteNumber(priceWithoutDiscount)) + return; + return Math.floor( + (priceWithoutDiscount - price2) / priceWithoutDiscount * 100 + ); +}; +var createDiscountTemplate = () => (context, value, attributes) => { + const { price: price2, priceWithoutDiscount } = value; + const discount2 = getDiscount(price2, priceWithoutDiscount); + return discount2 === void 0 ? `` : `${discount2}%`; +}; + +// ../node_modules/@dexter/tacocat-consonant-templates/src/discount/index.js +var discount = createDiscountTemplate(); + +// src/external.js +var { freeze } = Object; +var CheckoutWorkflow = freeze({ ...CheckoutType }); +var CheckoutWorkflowStep = freeze({ ...WorkflowStep }); +var Env = { + STAGE: "STAGE", + PRODUCTION: "PRODUCTION", + LOCAL: "LOCAL" +}; +var WcsCommitment = freeze({ ...Commitment }); +var WcsPlanType = freeze({ ...PlanType }); +var WcsTerm = freeze({ ...Term }); + +// src/constants.js +var constants_exports = {}; +__export(constants_exports, { + CLASS_NAME_FAILED: () => CLASS_NAME_FAILED, + CLASS_NAME_PENDING: () => CLASS_NAME_PENDING, + CLASS_NAME_RESOLVED: () => CLASS_NAME_RESOLVED, + ERROR_MESSAGE_BAD_REQUEST: () => ERROR_MESSAGE_BAD_REQUEST, + ERROR_MESSAGE_MISSING_LITERALS_URL: () => ERROR_MESSAGE_MISSING_LITERALS_URL, + ERROR_MESSAGE_OFFER_NOT_FOUND: () => ERROR_MESSAGE_OFFER_NOT_FOUND, + EVENT_TYPE_ERROR: () => EVENT_TYPE_ERROR, + EVENT_TYPE_FAILED: () => EVENT_TYPE_FAILED, + EVENT_TYPE_PENDING: () => EVENT_TYPE_PENDING, + EVENT_TYPE_READY: () => EVENT_TYPE_READY, + EVENT_TYPE_RESOLVED: () => EVENT_TYPE_RESOLVED, + LOG_NAMESPACE: () => LOG_NAMESPACE, + Landscape: () => Landscape2, + PARAM_AOS_API_KEY: () => PARAM_AOS_API_KEY, + PARAM_ENV: () => PARAM_ENV, + PARAM_LANDSCAPE: () => PARAM_LANDSCAPE, + PARAM_WCS_API_KEY: () => PARAM_WCS_API_KEY, + STATE_FAILED: () => STATE_FAILED, + STATE_PENDING: () => STATE_PENDING, + STATE_RESOLVED: () => STATE_RESOLVED, + WCS_PROD_URL: () => WCS_PROD_URL, + WCS_STAGE_URL: () => WCS_STAGE_URL +}); +var CLASS_NAME_FAILED = "placeholder-failed"; +var CLASS_NAME_PENDING = "placeholder-pending"; +var CLASS_NAME_RESOLVED = "placeholder-resolved"; +var ERROR_MESSAGE_BAD_REQUEST = "Bad WCS request"; +var ERROR_MESSAGE_OFFER_NOT_FOUND = "Commerce offer not found"; +var ERROR_MESSAGE_MISSING_LITERALS_URL = "Literals URL not provided"; +var EVENT_TYPE_ERROR = "mas:commerce:error"; +var EVENT_TYPE_FAILED = "mas:failed"; +var EVENT_TYPE_PENDING = "mas:pending"; +var EVENT_TYPE_READY = "mas:commerce:ready"; +var EVENT_TYPE_RESOLVED = "mas:resolved"; +var LOG_NAMESPACE = "mas/commerce"; +var PARAM_ENV = "commerce.env"; +var PARAM_LANDSCAPE = "commerce.landscape"; +var PARAM_AOS_API_KEY = "commerce.aosKey"; +var PARAM_WCS_API_KEY = "commerce.wcsKey"; +var WCS_PROD_URL = "https://www.adobe.com/web_commerce_artifact"; +var WCS_STAGE_URL = "https://www.stage.adobe.com/web_commerce_artifact_stage"; +var STATE_FAILED = "failed"; +var STATE_PENDING = "pending"; +var STATE_RESOLVED = "resolved"; +var Landscape2 = { + DRAFT: "DRAFT", + PUBLISHED: "PUBLISHED" +}; + +// src/utilities.js +var MAS_COMMERCE_SERVICE = "mas-commerce-service"; +function discoverService(getConfig, { once = false } = {}) { + let latest = null; + function discover() { + const current = document.querySelector(MAS_COMMERCE_SERVICE); + if (current === latest) + return; + latest = current; + if (current) + getConfig(current); + } + document.addEventListener(EVENT_TYPE_READY, discover, { once }); + setImmediate(discover); + return () => document.removeEventListener(EVENT_TYPE_READY, discover); +} +function selectOffers(offers, { country, forceTaxExclusive, perpetual }) { + let selected; + if (offers.length < 2) + selected = offers; + else { + const language = country === "GB" || perpetual ? "EN" : "MULT"; + const [first, second] = offers; + selected = [first.language === language ? first : second]; + } + if (forceTaxExclusive) { + selected = selected.map(forceTaxExclusivePrice); + } + return selected; +} +var setImmediate = (getConfig) => window.setTimeout(getConfig); +function toQuantity(value, defaultValue = 1) { + if (value == null) + return [defaultValue]; + let quantity = (Array.isArray(value) ? value : String(value).split(",")).map(toPositiveFiniteInteger).filter(isPositiveFiniteNumber); + if (!quantity.length) + quantity = [defaultValue]; + return quantity; +} +function toOfferSelectorIds(value) { + if (value == null) + return []; + const ids = Array.isArray(value) ? value : String(value).split(","); + return ids.filter(isNotEmptyString); +} +function useService2() { + return document.getElementsByTagName(MAS_COMMERCE_SERVICE)?.[0]; +} + +// src/mas-element.js +var StateClassName = { + [STATE_FAILED]: CLASS_NAME_FAILED, + [STATE_PENDING]: CLASS_NAME_PENDING, + [STATE_RESOLVED]: CLASS_NAME_RESOLVED +}; +var StateEventType = { + [STATE_FAILED]: EVENT_TYPE_FAILED, + [STATE_PENDING]: EVENT_TYPE_PENDING, + [STATE_RESOLVED]: EVENT_TYPE_RESOLVED +}; +var MasElement = class { + constructor(wrapperElement) { + __publicField(this, "changes", /* @__PURE__ */ new Map()); + __publicField(this, "connected", false); + __publicField(this, "dispose", ignore); + __publicField(this, "error"); + __publicField(this, "log"); + __publicField(this, "options"); + __publicField(this, "promises", []); + __publicField(this, "state", STATE_PENDING); + __publicField(this, "timer", null); + __publicField(this, "value"); + __publicField(this, "version", 0); + __publicField(this, "wrapperElement"); + this.wrapperElement = wrapperElement; + } + update() { + [STATE_FAILED, STATE_PENDING, STATE_RESOLVED].forEach((state) => { + this.wrapperElement.classList.toggle(StateClassName[state], state === this.state); + }); + } + notify() { + if (this.state === STATE_RESOLVED || this.state === STATE_FAILED) { + if (this.state === STATE_RESOLVED) { + this.promises.forEach(({ resolve }) => resolve(this.wrapperElement)); + } else if (this.state === STATE_FAILED) { + this.promises.forEach(({ reject }) => reject(this.error)); + } + this.promises = []; + } + this.wrapperElement.dispatchEvent( + new CustomEvent(StateEventType[this.state], { bubbles: true }) + ); + } + /** + * Adds name/value of the updated attribute to the `changes` map, + * requests placeholder update. + */ + attributeChangedCallback(name, _, value) { + this.changes.set(name, value); + this.requestUpdate(); + } + /** + * Triggers when this component is connected to DOM. + * Subscribes to the `ready` event of the commerce service, + * requests placeholder update. + */ + connectedCallback() { + this.dispose = discoverService(() => this.requestUpdate(true)); + } + /** + * Triggers when this component is disconnected from DOM. + * Runs and then erases all disposers. + */ + disconnectedCallback() { + if (this.connected) { + this.connected = false; + this.log?.debug("Disconnected:", { element: this.wrapperElement }); + } + this.dispose(); + this.dispose = ignore; + } + /** + * Returns a promise resolving to this placeholder + * when its value is resolved or rejected. + * If placeholder is not pending for completion of an async operation + * the returned promise is already resolved or rejected. + */ + onceSettled() { + const { error, promises, state } = this; + if (STATE_RESOLVED === state) + return Promise.resolve(this.wrapperElement); + if (STATE_FAILED === state) + return Promise.reject(error); + return new Promise((resolve, reject) => { + promises.push({ resolve, reject }); + }); + } + /** + * Sets component state to "RESOLVED". + * Updates its class list and stored value, notifies observers and fires "RESOLVED" event. + */ + toggleResolved(version, value, options) { + if (version !== this.version) + return false; + if (options !== void 0) + this.options = options; + this.state = STATE_RESOLVED; + this.value = value; + this.update(); + this.log?.debug("Resolved:", { element: this.wrapperElement, value }); + setImmediate(() => this.notify()); + return true; + } + /** + * Sets component state to "FAILED". + * Updates its class list and stored error, notifies observers and fires "FAILED" event. + */ + toggleFailed(version, error, options) { + if (version !== this.version) + return false; + if (options !== void 0) + this.options = options; + this.error = error; + this.state = STATE_FAILED; + this.update(); + this.log?.error("Failed:", { element: this.wrapperElement, error }); + setImmediate(() => this.notify()); + return true; + } + /** + * Sets component state to "PENDING". + * Increments its version, updates CSS classes, notifies observers and fires "PENDING" event. + */ + togglePending(options) { + this.version++; + if (options) + this.options = options; + this.state = STATE_PENDING; + this.update(); + setImmediate(() => this.notify()); + return this.version; + } + /** + * Queues task to update this component. + * Skips rendering if update is not forced and no changes were accumulated since the previous update. + * Calls `render` method to perform the update. + * Restores previous state of the component if the `render` method returned `false`. + */ + requestUpdate(force = false) { + if (!this.wrapperElement.isConnected || !useService2()) + return; + if (this.timer) + return; + const { error, options, state, value, version } = this; + this.state = STATE_PENDING; + this.timer = setImmediate(async () => { + this.timer = null; + let changes = null; + if (this.changes.size) { + changes = Object.fromEntries(this.changes.entries()); + this.changes.clear(); + } + if (this.connected) { + this.log?.debug("Updated:", { element: this.wrapperElement, changes }); + } else { + this.connected = true; + this.log?.debug("Connected:", { element: this.wrapperElement, changes }); + } + if (changes || force) { + try { + const result = await this.wrapperElement.render?.(); + if (result === false && this.state === STATE_PENDING && this.version === version) { + this.state = state; + this.error = error; + this.value = value; + this.update(); + this.notify(); + } + } catch (error2) { + this.toggleFailed(this.version, error2, options); + } + } + }); + } +}; +function cleanupDataset(dataset = {}) { + Object.entries(dataset).forEach(([key, value]) => { + const remove = value == null || value === "" || value?.length === 0; + if (remove) + delete dataset[key]; + }); + return dataset; +} +function createMasElement(Class, dataset = {}) { + const { tag, is } = Class; + const element = document.createElement(tag, { is }); + element.setAttribute("is", is); + Object.assign(element.dataset, cleanupDataset(dataset)); + return element; +} +function updateMasElement(element, dataset = {}) { + if (element instanceof HTMLElement) { + Object.assign(element.dataset, cleanupDataset(dataset)); + return element; + } + return null; +} + +// src/checkout-link.js +var CLASS_NAME_DOWNLOAD = "download"; +var CLASS_NAME_UPGRADE = "upgrade"; +var _checkoutActionHandler; +var _CheckoutLink = class _CheckoutLink extends HTMLAnchorElement { + constructor() { + super(); + __privateAdd(this, _checkoutActionHandler, void 0); + __publicField(this, "masElement", new MasElement(this)); + this.addEventListener("click", this.clickHandler); + } + attributeChangedCallback(name, _, value) { + this.masElement.attributeChangedCallback(name, _, value); + } + connectedCallback() { + this.masElement.connectedCallback(); + } + disconnectedCallback() { + this.masElement.disconnectedCallback(); + } + onceSettled() { + return this.masElement.onceSettled(); + } + get value() { + return this.masElement.value; + } + static get observedAttributes() { + return [ + "data-checkout-workflow", + "data-checkout-workflow-step", + "data-extra-options", + "data-ims-country", + "data-perpetual", + "data-promotion-code", + "data-quantity", + "data-template", + "data-wcs-osi", + "data-entitlement", + "data-upgrade", + "data-modal" + ]; + } + static createCheckoutLink(options = {}, innerHTML = "") { + const service = useService2(); + if (!service) + return null; + const { + checkoutMarketSegment, + checkoutWorkflow, + checkoutWorkflowStep, + entitlement, + upgrade, + modal, + perpetual, + promotionCode, + quantity, + wcsOsi, + extraOptions + } = service.collectCheckoutOptions(options); + const element = createMasElement(_CheckoutLink, { + checkoutMarketSegment, + checkoutWorkflow, + checkoutWorkflowStep, + entitlement, + upgrade, + modal, + perpetual, + promotionCode, + quantity, + wcsOsi, + extraOptions + }); + if (innerHTML) + element.innerHTML = `${innerHTML}`; + return element; + } + get isCheckoutLink() { + return true; + } + /** + * Click handler for checkout link. + * Triggers checkout action handler, if provided. + * @param {*} event + */ + clickHandler(event) { + var _a2; + (_a2 = __privateGet(this, _checkoutActionHandler)) == null ? void 0 : _a2.call(this, event); + } + async render(overrides = {}) { + if (!this.isConnected) + return false; + const service = useService2(); + if (!service) + return false; + if (!this.dataset.imsCountry) { + service.imsCountryPromise.then((countryCode) => { + if (countryCode) + this.dataset.imsCountry = countryCode; + }, ignore); + } + const options = service.collectCheckoutOptions(overrides, this); + if (!options.wcsOsi.length) + return false; + let extraOptions; + try { + extraOptions = JSON.parse(options.extraOptions ?? "{}"); + } catch (e) { + this.masElement.log?.error("cannot parse exta checkout options", e); + } + const version = this.masElement.togglePending(options); + this.href = ""; + const promises = service.resolveOfferSelectors(options); + let offers = await Promise.all(promises); + offers = offers.map((offer) => selectOffers(offer, options)); + const checkoutAction = await service.buildCheckoutAction?.( + offers.flat(), + { ...extraOptions, ...options } + ); + return this.renderOffers( + offers.flat(), + options, + {}, + checkoutAction, + version + ); + } + /** + * Renders checkout link href for provided offers into this component. + * @param {Commerce.Wcs.Offer[]} offers + * @param {Commerce.Checkout.Options} options + * @param {Commerce.Checkout.AnyOptions} overrides + * @param {Commerce.Checkout.CheckoutAction} checkoutAction + * @param {number} version + */ + renderOffers(offers, options, overrides = {}, checkoutAction = void 0, version = void 0) { + if (!this.isConnected) + return false; + const service = useService2(); + if (!service) + return false; + const extraOptions = JSON.parse(this.dataset.extraOptions ?? "null"); + options = { ...extraOptions, ...options, ...overrides }; + version ?? (version = this.masElement.togglePending(options)); + if (__privateGet(this, _checkoutActionHandler)) { + __privateSet(this, _checkoutActionHandler, void 0); + } + if (checkoutAction) { + this.classList.remove(CLASS_NAME_DOWNLOAD, CLASS_NAME_UPGRADE); + this.masElement.toggleResolved(version, offers, options); + const { url, text, className, handler } = checkoutAction; + if (url) + this.href = url; + if (text) + this.firstElementChild.innerHTML = text; + if (className) + this.classList.add(...className.split(" ")); + if (handler) { + this.setAttribute("href", "#"); + __privateSet(this, _checkoutActionHandler, handler.bind(this)); + } + return true; + } else if (offers.length) { + if (this.masElement.toggleResolved(version, offers, options)) { + const url = service.buildCheckoutURL(offers, options); + this.setAttribute("href", url); + return true; + } + } else { + const error = new Error(`Not provided: ${options?.wcsOsi ?? "-"}`); + if (this.masElement.toggleFailed(version, error, options)) { + this.setAttribute("href", "#"); + return true; + } + } + return false; + } + updateOptions(options = {}) { + const service = useService2(); + if (!service) + return false; + const { + checkoutMarketSegment, + checkoutWorkflow, + checkoutWorkflowStep, + entitlement, + upgrade, + modal, + perpetual, + promotionCode, + quantity, + wcsOsi + } = service.collectCheckoutOptions(options); + updateMasElement(this, { + checkoutMarketSegment, + checkoutWorkflow, + checkoutWorkflowStep, + entitlement, + upgrade, + modal, + perpetual, + promotionCode, + quantity, + wcsOsi + }); + return true; + } +}; +_checkoutActionHandler = new WeakMap(); +__publicField(_CheckoutLink, "is", "checkout-link"); +__publicField(_CheckoutLink, "tag", "a"); +var CheckoutLink = _CheckoutLink; +if (!window.customElements.get(CheckoutLink.is)) { + window.customElements.define(CheckoutLink.is, CheckoutLink, { + extends: CheckoutLink.tag + }); +} + +// src/defaults.js +var Defaults = Object.freeze({ + checkoutClientId: "adobe_com", + checkoutWorkflow: CheckoutWorkflow.V3, + checkoutWorkflowStep: CheckoutWorkflowStep.EMAIL, + country: "US", + displayOldPrice: true, + displayPerUnit: false, + displayRecurrence: true, + displayTax: false, + env: Env.PRODUCTION, + forceTaxExclusive: false, + language: "en", + entitlement: false, + extraOptions: {}, + modal: false, + promotionCode: "", + quantity: 1, + wcsApiKey: "wcms-commerce-ims-ro-user-milo", + wcsBufferDelay: 1, + wcsURL: "https://www.adobe.com/web_commerce_artifact", + landscape: Landscape2.PUBLISHED, + wcsBufferLimit: 1 +}); + +// src/lana.js +var Defaults2 = { + clientId: "merch-at-scale", + delimiter: "\xB6", + ignoredProperties: ["analytics", "literals"], + serializableTypes: ["Array", "Object"], + // Sample rate is set to 100 meaning each error will get logged in Splunk + sampleRate: 30, + tags: "consumer=milo/commerce" +}; +var seenPayloads = /* @__PURE__ */ new Set(); +var isError = (value) => value instanceof Error || // WCS error response +// TODO: check if still actual +typeof value.originatingRequest === "string"; +function serializeValue(value) { + if (value == null) + return void 0; + const type = typeof value; + if (type === "function") { + const { name } = value; + return name ? `${type} ${name}` : type; + } + if (type === "object") { + if (value instanceof Error) + return value.message; + if (typeof value.originatingRequest === "string") { + const { message, originatingRequest, status } = value; + return [message, status, originatingRequest].filter((v) => v).join(" "); + } + const name = value[Symbol.toStringTag] ?? Object.getPrototypeOf(value).constructor.name; + if (!Defaults2.serializableTypes.includes(name)) + return name; + } + return value; +} +function serializeParam(key, value) { + if (Defaults2.ignoredProperties.includes(key)) + return void 0; + return serializeValue(value); +} +var lanaAppender = { + append(entry) { + const { delimiter, sampleRate, tags, clientId } = Defaults2; + const { message, params } = entry; + const errors = []; + let payload = message; + const values = []; + params.forEach((param) => { + if (param != null) { + (isError(param) ? errors : values).push(param); + } + }); + if (errors.length) { + payload += " "; + payload += errors.map(serializeValue).join(" "); + } + const { pathname, search } = window.location; + payload += `${delimiter}page=`; + payload += pathname + search; + if (values.length) { + payload += `${delimiter}facts=`; + payload += JSON.stringify(values, serializeParam); + } + if (!seenPayloads.has(payload)) { + seenPayloads.add(payload); + window.lana?.log(payload, { sampleRate, tags, clientId }); + } + } +}; + +// src/settings.js +var HostEnv = Object.freeze({ + LOCAL: "local", + PROD: "prod", + STAGE: "stage" +}); +function getLocaleSettings({ locale = void 0, country = void 0, language = void 0 } = {}) { + language ?? (language = locale?.split("_")?.[0] || Defaults.language); + country ?? (country = locale?.split("_")?.[1] || Defaults.country); + locale ?? (locale = `${language}_${country}`); + return { locale, country, language }; +} +function getSettings(config = {}) { + const { commerce = {}, locale = void 0 } = config; + let env = Env.PRODUCTION; + let wcsURL = WCS_PROD_URL; + const lowHostEnv = ["local", "stage"].includes(config.env?.name); + const forceWcsStage = getParameter(PARAM_ENV, commerce, { metadata: false })?.toLowerCase() === "stage"; + if (lowHostEnv && forceWcsStage) { + env = Env.STAGE; + wcsURL = WCS_STAGE_URL; + } + const checkoutClientId = getParameter("checkoutClientId", commerce) ?? Defaults.checkoutClientId; + const checkoutWorkflow = toEnumeration( + getParameter("checkoutWorkflow", commerce), + CheckoutWorkflow, + Defaults.checkoutWorkflow + ); + let checkoutWorkflowStep = CheckoutWorkflowStep.CHECKOUT; + if (checkoutWorkflow === CheckoutWorkflow.V3) { + checkoutWorkflowStep = toEnumeration( + getParameter("checkoutWorkflowStep", commerce), + CheckoutWorkflowStep, + Defaults.checkoutWorkflowStep + ); + } + const displayOldPrice = toBoolean( + getParameter("displayOldPrice", commerce), + Defaults.displayOldPrice + ); + const displayPerUnit = toBoolean( + getParameter("displayPerUnit", commerce), + Defaults.displayPerUnit + ); + const displayRecurrence = toBoolean( + getParameter("displayRecurrence", commerce), + Defaults.displayRecurrence + ); + const displayTax = toBoolean( + getParameter("displayTax", commerce), + Defaults.displayTax + ); + const entitlement = toBoolean( + getParameter("entitlement", commerce), + Defaults.entitlement + ); + const modal = toBoolean(getParameter("modal", commerce), Defaults.modal); + const forceTaxExclusive = toBoolean( + getParameter("forceTaxExclusive", commerce), + Defaults.forceTaxExclusive + ); + const promotionCode = getParameter("promotionCode", commerce) ?? Defaults.promotionCode; + const quantity = toQuantity(getParameter("quantity", commerce)); + const wcsApiKey = getParameter("wcsApiKey", commerce) ?? Defaults.wcsApiKey; + const landscape = config.env?.name === HostEnv.PROD ? Landscape2.PUBLISHED : toEnumeration( + getParameter(PARAM_LANDSCAPE, commerce), + Landscape2, + Defaults.landscape + ); + let wcsBufferDelay = toPositiveFiniteInteger( + getParameter("wcsBufferDelay", commerce), + Defaults.wcsBufferDelay + ); + let wcsBufferLimit = toPositiveFiniteInteger( + getParameter("wcsBufferLimit", commerce), + Defaults.wcsBufferLimit + ); + return { + ...getLocaleSettings(config), + displayOldPrice, + checkoutClientId, + checkoutWorkflow, + checkoutWorkflowStep, + displayPerUnit, + displayRecurrence, + displayTax, + entitlement, + extraOptions: Defaults.extraOptions, + modal, + env, + forceTaxExclusive, + promotionCode, + quantity, + wcsApiKey, + wcsBufferDelay, + wcsBufferLimit, + wcsURL, + landscape + }; +} + +// src/log.js +var DEBUG = "debug"; +var ERROR = "error"; +var INFO = "info"; +var WARN = "warn"; +var epoch2 = Date.now(); +var appenders = /* @__PURE__ */ new Set(); +var filters = /* @__PURE__ */ new Set(); +var indexes = /* @__PURE__ */ new Map(); +var Level = Object.freeze({ + DEBUG, + ERROR, + INFO, + WARN +}); +var consoleAppender = { + append({ level, message, params, timestamp, source }) { + console[level]( + `${timestamp}ms [${source}] %c${message}`, + "font-weight: bold;", + ...params + ); + } +}; +var debugFilter = { filter: ({ level }) => level !== DEBUG }; +var quietFilter = { filter: () => false }; +function createEntry(level, message, namespace2, params, source) { + return { + level, + message, + namespace: namespace2, + get params() { + if (params.length === 1) { + const [param] = params; + if (isFunction(param)) { + params = param(); + if (!Array.isArray(params)) + params = [params]; + } + } + return params; + }, + source, + timestamp: Date.now() - epoch2 + }; +} +function handleEntry(entry) { + if ([...filters].every((filter) => filter(entry))) { + appenders.forEach((appender) => appender(entry)); + } +} +function createLog2(namespace2) { + const index = (indexes.get(namespace2) ?? 0) + 1; + indexes.set(namespace2, index); + const id = `${namespace2} #${index}`; + const createHandler = (level) => (message, ...params) => handleEntry(createEntry(level, message, namespace2, params, id)); + const log2 = Object.seal({ + id, + namespace: namespace2, + module(name) { + return createLog2(`${log2.namespace}/${name}`); + }, + debug: createHandler(Level.DEBUG), + error: createHandler(Level.ERROR), + info: createHandler(Level.INFO), + warn: createHandler(Level.WARN) + }); + return log2; +} +function use(...plugins) { + plugins.forEach((plugin) => { + const { append, filter } = plugin; + if (isFunction(filter)) { + filters.add(filter); + } else if (isFunction(append)) { + appenders.add(append); + } + }); +} +function init(env = {}) { + const { name } = env; + const debug = toBoolean( + getParameter("commerce.debug", { search: true, storage: true }), + name === HostEnv.LOCAL + ); + if (debug) + use(consoleAppender); + else + use(debugFilter); + if (name === HostEnv.PROD) + use(lanaAppender); + return Log; +} +function reset() { + appenders.clear(); + filters.clear(); +} +var Log = { + ...createLog2(LOG_NAMESPACE), + Level, + Plugins: { + consoleAppender, + debugFilter, + quietFilter, + lanaAppender + }, + init, + reset, + use +}; + +// src/checkout.js +function Checkout({ providers, settings }) { + const log2 = Log.module("checkout"); + function collectCheckoutOptions(overrides, placeholder) { + const { + checkoutClientId, + checkoutWorkflow: defaultWorkflow, + checkoutWorkflowStep: defaultWorkflowStep, + country: defaultCountry, + language: defaultLanguage, + promotionCode: defaultPromotionCode, + quantity: defaultQuantity + } = settings; + const { + checkoutMarketSegment, + checkoutWorkflow = defaultWorkflow, + checkoutWorkflowStep = defaultWorkflowStep, + imsCountry: imsCountry2, + country = imsCountry2 ?? defaultCountry, + language = defaultLanguage, + quantity = defaultQuantity, + entitlement, + upgrade, + modal, + perpetual, + promotionCode = defaultPromotionCode, + wcsOsi, + extraOptions, + ...rest + } = Object.assign({}, placeholder?.dataset ?? {}, overrides ?? {}); + const workflow = toEnumeration( + checkoutWorkflow, + CheckoutWorkflow, + Defaults.checkoutWorkflow + ); + let workflowStep = CheckoutWorkflowStep.CHECKOUT; + if (workflow === CheckoutWorkflow.V3) { + workflowStep = toEnumeration( + checkoutWorkflowStep, + CheckoutWorkflowStep, + Defaults.checkoutWorkflowStep + ); + } + const options = omitProperties({ + ...rest, + extraOptions, + checkoutClientId, + checkoutMarketSegment, + country, + quantity: toQuantity(quantity, Defaults.quantity), + checkoutWorkflow: workflow, + checkoutWorkflowStep: workflowStep, + language, + entitlement: toBoolean(entitlement), + upgrade: toBoolean(upgrade), + modal: toBoolean(modal), + perpetual: toBoolean(perpetual), + promotionCode: computePromoStatus(promotionCode).effectivePromoCode, + wcsOsi: toOfferSelectorIds(wcsOsi) + }); + if (placeholder) { + for (const provider of providers.checkout) { + provider(placeholder, options); + } + } + return options; + } + async function buildCheckoutAction(offers, options) { + const instance = useService(); + const checkoutAction = await dataProviders.getCheckoutAction?.( + offers, + options, + instance.imsSignedInPromise + ); + if (checkoutAction) { + return checkoutAction; + } + return null; + } + function buildCheckoutURL(offers, options) { + if (!Array.isArray(offers) || !offers.length || !options) { + return ""; + } + const { env, landscape } = settings; + const { + checkoutClientId: clientId, + checkoutMarketSegment: marketSegment, + checkoutWorkflow: workflow, + checkoutWorkflowStep: workflowStep, + country, + promotionCode: checkoutPromoCode, + quantity, + ...rest + } = collectCheckoutOptions(options); + const context = window.frameElement ? "if" : "fp"; + const data = { + checkoutPromoCode, + clientId, + context, + country, + env, + items: [], + marketSegment, + workflowStep, + landscape, + ...rest + }; + if (offers.length === 1) { + const [{ offerId, offerType, productArrangementCode }] = offers; + const { + marketSegments: [marketSegment2] + } = offers[0]; + Object.assign(data, { + marketSegment: marketSegment2, + offerType, + productArrangementCode + }); + data.items.push( + quantity[0] === 1 ? { id: offerId } : { id: offerId, quantity: quantity[0] } + ); + } else { + data.items.push( + ...offers.map(({ offerId }, index) => ({ + id: offerId, + quantity: quantity[index] ?? Defaults.quantity + })) + ); + } + return buildCheckoutUrl(workflow, data); + } + const { createCheckoutLink } = CheckoutLink; + return { + CheckoutLink, + CheckoutWorkflow, + CheckoutWorkflowStep, + buildCheckoutURL, + collectCheckoutOptions, + createCheckoutLink + }; +} + +// src/ims.js +function imsReady({ interval = 200, maxAttempts = 25 } = {}) { + const log2 = Log.module("ims"); + return new Promise((resolve) => { + log2.debug("Waing for IMS to be ready"); + let count = 0; + function poll() { + if (window.adobeIMS?.initialized) { + resolve(); + } else if (++count > maxAttempts) { + log2.debug("Timeout"); + resolve(); + } else { + setTimeout(poll, interval); + } + } + poll(); + }); +} +function imsSignedIn(imsReadyPromise) { + return imsReadyPromise.then( + () => window.adobeIMS?.isSignedInUser() ?? false + ); +} +function imsCountry(imsSignedInPromise) { + const log2 = Log.module("ims"); + return imsSignedInPromise.then((signedIn) => { + if (!signedIn) + return null; + return window.adobeIMS.getProfile().then( + ({ countryCode }) => { + log2.debug("Got user country:", countryCode); + return countryCode; + }, + (error) => { + log2.error("Unable to get user country:", error); + return void 0; + } + ); + }); +} +function Ims({}) { + const imsReadyPromise = imsReady(); + const imsSignedInPromise = imsSignedIn(imsReadyPromise); + const imsCountryPromise = imsCountry(imsSignedInPromise); + return { imsReadyPromise, imsSignedInPromise, imsCountryPromise }; +} + +// src/literals.js +async function getPriceLiterals(settings, priceLiterals) { + const { data } = priceLiterals ? priceLiterals : await Promise.resolve().then(() => __toESM(require_price_literals(), 1)); + if (Array.isArray(data)) { + const find = (language) => data.find( + (candidate) => equalsCaseInsensitive(candidate.lang, language) + ); + const literals = find(settings.language) ?? find(Defaults.language); + if (literals) + return Object.freeze(literals); + } + return {}; +} + +// src/inline-price.js +var DISPLAY_ALL_TAX_COUNTRIES = [ + "GB_en", + "AU_en", + "FR_fr", + "AT_de", + "BE_en", + "BE_fr", + "BE_nl", + "BG_bg", + "CH_de", + "CH_fr", + "CH_it", + "CZ_cs", + "DE_de", + "DK_da", + "EE_et", + "EG_ar", + "EG_en", + "ES_es", + "FI_fi", + "FR_fr", + "GR_el", + "GR_en", + "HU_hu", + "IE_en", + "IT_it", + "LU_de", + "LU_en", + "LU_fr", + "NL_nl", + "NO_nb", + "PL_pl", + "PT_pt", + "RO_ro", + "SE_sv", + "SI_sl", + "SK_sk", + "TR_tr", + "UA_uk", + "ID_en", + "ID_in", + "IN_en", + "IN_hi", + "JP_ja", + "MY_en", + "MY_ms", + "NZ_en", + "TH_en", + "TH_th" +]; +var DISPLAY_TAX_MAP = { + // individual + INDIVIDUAL_COM: [ + "ZA_en", + "LT_lt", + "LV_lv", + "NG_en", + "SA_ar", + "SA_en", + "ZA_en", + "SG_en", + "KR_ko" + ], + // business + TEAM_COM: ["ZA_en", "LT_lt", "LV_lv", "NG_en", "ZA_en", "CO_es", "KR_ko"], + // student + INDIVIDUAL_EDU: ["LT_lt", "LV_lv", "SA_en", "SG_en"], + // school and uni + TEAM_EDU: ["SG_en", "KR_ko"] +}; +var _InlinePrice = class _InlinePrice extends HTMLSpanElement { + constructor() { + super(); + __publicField(this, "masElement", new MasElement(this)); + this.handleClick = this.handleClick.bind(this); + } + static get observedAttributes() { + return [ + "data-display-old-price", + "data-display-per-unit", + "data-display-recurrence", + "data-display-tax", + "data-perpetual", + "data-promotion-code", + "data-tax-exclusive", + "data-template", + "data-wcs-osi" + ]; + } + static createInlinePrice(options) { + const service = useService2(); + if (!service) + return null; + const { + displayOldPrice, + displayPerUnit, + displayRecurrence, + displayTax, + forceTaxExclusive, + perpetual, + promotionCode, + quantity, + template, + wcsOsi + } = service.collectPriceOptions(options); + const element = createMasElement(_InlinePrice, { + displayOldPrice, + displayPerUnit, + displayRecurrence, + displayTax, + forceTaxExclusive, + perpetual, + promotionCode, + quantity, + template, + wcsOsi + }); + return element; + } + get isInlinePrice() { + return true; + } + attributeChangedCallback(name, _, value) { + this.masElement.attributeChangedCallback(name, _, value); + } + connectedCallback() { + this.masElement.connectedCallback(); + this.addEventListener("click", this.handleClick); + } + disconnectedCallback() { + this.masElement.disconnectedCallback(); + this.removeEventListener("click", this.handleClick.bind(this)); + } + handleClick(event) { + if (event.target === this) + return; + event.stopImmediatePropagation(); + this.dispatchEvent(new CustomEvent("click", { bubbles: true })); + } + onceSettled() { + return this.masElement.onceSettled(); + } + get value() { + return this.masElement.value; + } + /** + * Resolves default value of displayTax property, based on provided geo info and segments. + * @returns {boolean} + */ + /* c8 ignore next 26 */ + resolveDisplayTaxForGeoAndSegment(country, language, customerSegment, marketSegment) { + const locale = `${country}_${language}`; + if (DISPLAY_ALL_TAX_COUNTRIES.includes(country) || DISPLAY_ALL_TAX_COUNTRIES.includes(locale)) { + return true; + } + const segmentConfig = DISPLAY_TAX_MAP[`${customerSegment}_${marketSegment}`]; + if (!segmentConfig) { + return false; + } + if (segmentConfig.includes(country) || segmentConfig.includes(locale)) { + return true; + } + return false; + } + /** + * Resolves default value of displayTax property, based on provided geo info and segments extracted from offers object. + * @returns {boolean} + */ + /* c8 ignore next 15 */ + async resolveDisplayTax(service, options) { + const [offerSelectors] = await service.resolveOfferSelectors(options); + const offers = selectOffers(await offerSelectors, options); + if (offers?.length) { + const { country, language } = options; + const offer = offers[0]; + const [marketSegment = ""] = offer.marketSegments; + return this.resolveDisplayTaxForGeoAndSegment( + country, + language, + offer.customerSegment, + marketSegment + ); + } + } + /** + * Resolves associated osi via Wcs and renders price offer. + * @param {Record} overrides + */ + async render(overrides = {}) { + if (!this.isConnected) + return false; + const service = useService2(); + if (!service) + return false; + const options = service.collectPriceOptions(overrides, this); + if (!options.wcsOsi.length) + return false; + const version = this.masElement.togglePending(options); + this.innerHTML = ""; + const [promise] = service.resolveOfferSelectors(options); + return this.renderOffers( + selectOffers(await promise, options), + options, + version + ); + } + // TODO: can be extended to accept array of offers and compute subtotal price + /** + * Renders price offer as HTML of this component + * using consonant price template functions + * from package `@dexter/tacocat-consonant-templates`. + * @param {Commerce.Wcs.Offer[]} offers + * @param {Record} overrides + * Optional object with properties to use as overrides + * over those collected from dataset of this component. + */ + renderOffers(offers, overrides = {}, version = void 0) { + if (!this.isConnected) + return; + const service = useService2(); + if (!service) + return false; + const options = service.collectPriceOptions( + { + ...this.dataset, + ...overrides + }, + this + ); + version ?? (version = this.masElement.togglePending(options)); + if (offers.length) { + if (this.masElement.toggleResolved(version, offers, options)) { + this.innerHTML = service.buildPriceHTML(offers, options); + return true; + } + } else { + const error = new Error(`Not provided: ${options?.wcsOsi ?? "-"}`); + if (this.masElement.toggleFailed(version, error, options)) { + this.innerHTML = ""; + return true; + } + } + return false; + } + updateOptions(options) { + const service = useService2(); + if (!service) + return false; + const { + displayOldPrice, + displayPerUnit, + displayRecurrence, + displayTax, + forceTaxExclusive, + perpetual, + promotionCode, + quantity, + template, + wcsOsi + } = service.collectPriceOptions(options); + updateMasElement(this, { + displayOldPrice, + displayPerUnit, + displayRecurrence, + displayTax, + forceTaxExclusive, + perpetual, + promotionCode, + quantity, + template, + wcsOsi + }); + return true; + } +}; +__publicField(_InlinePrice, "is", "inline-price"); +__publicField(_InlinePrice, "tag", "span"); +var InlinePrice = _InlinePrice; +if (!window.customElements.get(InlinePrice.is)) { + window.customElements.define(InlinePrice.is, InlinePrice, { + extends: InlinePrice.tag + }); +} + +// src/price.js +function Price({ literals, providers, settings }) { + function collectPriceOptions(overrides, placeholder) { + const { + country: defaultCountry, + displayOldPrice: defaultDisplayOldPrice, + displayPerUnit: defaultDisplayPerUnit, + displayRecurrence: defaultDisplayRecurrence, + displayTax: defaultDisplayTax, + forceTaxExclusive: defaultForceTaxExclusive, + language: defaultLanguage, + promotionCode: defaultPromotionCode, + quantity: defaultQuantity + } = settings; + const { + displayOldPrice = defaultDisplayOldPrice, + displayPerUnit = defaultDisplayPerUnit, + displayRecurrence = defaultDisplayRecurrence, + displayTax = defaultDisplayTax, + forceTaxExclusive = defaultForceTaxExclusive, + country = defaultCountry, + language = defaultLanguage, + perpetual, + promotionCode = defaultPromotionCode, + quantity = defaultQuantity, + template, + wcsOsi, + ...rest + } = Object.assign({}, placeholder?.dataset ?? {}, overrides ?? {}); + const options = omitProperties({ + ...rest, + country, + displayOldPrice: toBoolean(displayOldPrice), + displayPerUnit: toBoolean(displayPerUnit), + displayRecurrence: toBoolean(displayRecurrence), + displayTax: toBoolean(displayTax), + forceTaxExclusive: toBoolean(forceTaxExclusive), + language, + perpetual: toBoolean(perpetual), + promotionCode: computePromoStatus(promotionCode).effectivePromoCode, + quantity: toQuantity(quantity, Defaults.quantity), + template, + wcsOsi: toOfferSelectorIds(wcsOsi) + }); + if (placeholder) { + for (const provider of providers.price) { + provider(placeholder, options); + } + } + return options; + } + function buildPriceHTML(offers, options) { + if (!Array.isArray(offers) || !offers.length || !options) { + return ""; + } + const { template } = options; + let method; + switch (template) { + case "discount": + method = discount; + break; + case "strikethrough": + method = priceStrikethrough; + break; + case "optical": + method = priceOptical; + break; + case "annual": + method = priceAnnual; + break; + default: + method = options.promotionCode ? pricePromo : price; + } + const context = collectPriceOptions(options); + context.literals = Object.assign( + {}, + literals.price, + omitProperties(options.literals ?? {}) + ); + let [offer] = offers; + offer = { ...offer, ...offer.priceDetails }; + return method(context, offer); + } + const { createInlinePrice } = InlinePrice; + return { + InlinePrice, + buildPriceHTML, + collectPriceOptions, + // TODO: remove after update of Milo merch block + createInlinePrice + }; +} + +// src/wcs.js +function Wcs({ settings }) { + const log2 = Log.module("wcs"); + const { env, wcsApiKey: apiKey } = settings; + const cache = /* @__PURE__ */ new Map(); + const queue = /* @__PURE__ */ new Map(); + let timer; + async function resolveWcsOffers(options, promises, reject = true) { + let message = ERROR_MESSAGE_OFFER_NOT_FOUND; + log2.debug("Fetching:", options); + try { + options.offerSelectorIds = options.offerSelectorIds.sort(); + const url = new URL(settings.wcsURL); + url.searchParams.set( + "offer_selector_ids", + options.offerSelectorIds.join(",") + ); + url.searchParams.set("country", options.country); + url.searchParams.set("locale", options.locale); + url.searchParams.set( + "landscape", + env === Env.STAGE ? "ALL" : settings.landscape + ); + url.searchParams.set("api_key", apiKey); + if (options.language) { + url.searchParams.set("language", options.language); + } + if (options.promotionCode) { + url.searchParams.set("promotion_code", options.promotionCode); + } + if (options.currency) { + url.searchParams.set("currency", options.currency); + } + const response = await fetch(url.toString(), { + credentials: "omit" + }); + if (response.ok) { + const data = await response.json(); + log2.debug("Fetched:", options, data); + let offers = data.resolvedOffers ?? []; + offers = offers.map(applyPlanType); + promises.forEach(({ resolve }, offerSelectorId) => { + const resolved = offers.filter( + ({ offerSelectorIds }) => offerSelectorIds.includes(offerSelectorId) + ).flat(); + if (resolved.length) { + promises.delete(offerSelectorId); + resolve(resolved); + } + }); + } else if (response.status === 404 && options.offerSelectorIds.length > 1) { + log2.debug("Multi-osi 404, fallback to fetch-by-one strategy"); + await Promise.allSettled( + options.offerSelectorIds.map( + (offerSelectorId) => resolveWcsOffers( + { ...options, offerSelectorIds: [offerSelectorId] }, + promises, + false + // do not reject promises for missing offers, this will be done below + ) + ) + ); + } else { + message = ERROR_MESSAGE_BAD_REQUEST; + log2.error(message, options); + } + } catch (e) { + message = ERROR_MESSAGE_BAD_REQUEST; + log2.error(message, options, e); + } + if (reject && promises.size) { + log2.debug("Missing:", { offerSelectorIds: [...promises.keys()] }); + promises.forEach((promise) => { + promise.reject(new Error(message)); + }); + } + } + function flushQueue() { + clearTimeout(timer); + const pending = [...queue.values()]; + queue.clear(); + pending.forEach( + ({ options, promises }) => resolveWcsOffers(options, promises) + ); + } + function flushWcsCache() { + const size = cache.size; + cache.clear(); + log2.debug(`Flushed ${size} cache entries`); + } + function resolveOfferSelectors({ + country, + language, + perpetual = false, + promotionCode = "", + wcsOsi = [] + }) { + const locale = `${language}_${country}`; + if (country !== "GB") + language = perpetual ? "EN" : "MULT"; + const groupKey = [country, language, promotionCode].filter((val) => val).join("-").toLowerCase(); + return wcsOsi.map((osi) => { + const cacheKey = `${osi}-${groupKey}`; + if (!cache.has(cacheKey)) { + const promise = new Promise((resolve, reject) => { + let group = queue.get(groupKey); + if (!group) { + const options = { + country, + locale, + offerSelectorIds: [] + }; + if (country !== "GB") + options.language = language; + const promises = /* @__PURE__ */ new Map(); + group = { options, promises }; + queue.set(groupKey, group); + } + if (promotionCode) { + group.options.promotionCode = promotionCode; + } + group.options.offerSelectorIds.push(osi); + group.promises.set(osi, { + resolve, + reject + }); + if (group.options.offerSelectorIds.length >= settings.wcsBufferLimit) { + flushQueue(); + } else { + log2.debug("Queued:", group.options); + if (!timer) { + timer = setTimeout( + flushQueue, + settings.wcsBufferDelay + ); + } + } + }); + cache.set(cacheKey, promise); + } + return cache.get(cacheKey); + }); + } + return { + WcsCommitment, + WcsPlanType, + WcsTerm, + resolveOfferSelectors, + flushWcsCache + }; +} + +// src/mas-commerce-service.js +var TAG_NAME_SERVICE = "mas-commerce-service"; +var _MasCommerceService = class _MasCommerceService extends HTMLElement { + constructor() { + super(...arguments); + __publicField(this, "promise", null); + } + get config() { + const { searchParams } = new URL(import.meta.url); + const env = this.getAttribute("env") || searchParams.get("env"); + const isStage = env?.toLowerCase() === "stage"; + const envName = isStage ? "stage" : "prod"; + const commerceEnv = isStage ? "STAGE" : "PROD"; + const config = { + env: { name: envName }, + commerce: { "commerce.env": commerceEnv } + }; + ["locale", "country", "language"].forEach((attribute) => { + const value = this.getAttribute(attribute); + if (value) { + config[attribute] = value; + } + }); + ["checkoutWorkflowStep", "forceTaxExclusive"].forEach((attribute) => { + const value = this.getAttribute(attribute); + if (value) { + config.commerce[attribute] = value; + } + }); + return config; + } + async registerCheckoutAction(action) { + if (typeof action != "function") + return; + this.buildCheckoutAction = async (offers, options) => { + const checkoutAction = await action?.( + offers, + options, + this.imsSignedInPromise + ); + if (checkoutAction) { + return checkoutAction; + } + return null; + }; + } + async activate(resolve) { + const config = this.config; + const log2 = Log.init(config.env).module("service"); + log2.debug("Activating:", config); + const settings = Object.freeze(getSettings(config)); + const literals = { price: {} }; + try { + literals.price = await getPriceLiterals( + settings, + config.commerce.priceLiterals + ); + } catch (e) { + } + const providers = { + checkout: /* @__PURE__ */ new Set(), + price: /* @__PURE__ */ new Set() + }; + const startup = { literals, providers, settings }; + _MasCommerceService.instance = Object.defineProperties( + this, + Object.getOwnPropertyDescriptors({ + // Activate modules and expose their API as combined flat object + ...Checkout(startup), + ...Ims(startup), + ...Price(startup), + ...Wcs(startup), + ...constants_exports, + // Defined serviceweb component API + Log, + get defaults() { + return Defaults; + }, + get literals() { + return literals; + }, + get log() { + return Log; + }, + /* c8 ignore next 11 */ + get providers() { + return { + checkout(provider) { + providers.checkout.add(provider); + return () => providers.checkout.delete(provider); + }, + price(provider) { + providers.price.add(provider); + return () => providers.price.delete(provider); + } + }; + }, + get settings() { + return settings; + } + }) + ); + log2.debug("Activated:", { literals, settings }); + setImmediate(() => { + const event = new CustomEvent(EVENT_TYPE_READY, { + bubbles: true, + cancelable: false, + detail: _MasCommerceService.instance + }); + this.dispatchEvent(event); + }); + resolve(this); + } + connectedCallback() { + if (this.promise) { + return this.promise; + } + _MasCommerceService.instance = this; + this.promise = new Promise((resolve) => { + this.activate(resolve); + }); + } + disconnectedCallback() { + _MasCommerceService.instance = null; + } + flushWcsCache() { + this.flushWcsCache(); + this.log.debug("Flushed WCS cache"); + } + refreshOffers() { + this.flushWcsCache(); + document.querySelectorAll('span[is="inline-price"],a[is="checkout-link"]').forEach((el) => el.requestUpdate(true)); + this.log.debug("Refreshed WCS offers"); + } + refreshFragments() { + this.flushWcsCache(); + document.querySelectorAll("aem-fragment").forEach((el) => el.refresh()); + this.log.debug("Refreshed AEM fragments"); + } +}; +__publicField(_MasCommerceService, "instance"); +var MasCommerceService = _MasCommerceService; +if (!window.customElements.get(TAG_NAME_SERVICE)) { + window.customElements.define(TAG_NAME_SERVICE, MasCommerceService); +} +export { + CheckoutLink, + CheckoutWorkflow, + CheckoutWorkflowStep, + Defaults, + InlinePrice, + Landscape2 as Landscape, + Log, + TAG_NAME_SERVICE, + WcsCommitment, + WcsPlanType, + WcsTerm, + applyPlanType, + getSettings +}; diff --git a/libs/deps/mas/mas.js b/libs/deps/mas/mas.js index 640a65d297..45f3f6b25a 100644 --- a/libs/deps/mas/mas.js +++ b/libs/deps/mas/mas.js @@ -1,18 +1,18 @@ -var as=Object.create;var Bt=Object.defineProperty;var ss=Object.getOwnPropertyDescriptor;var cs=Object.getOwnPropertyNames;var ls=Object.getPrototypeOf,hs=Object.prototype.hasOwnProperty;var Ii=e=>{throw TypeError(e)};var us=(e,t,r)=>t in e?Bt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var ds=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ms=(e,t)=>{for(var r in t)Bt(e,r,{get:t[r],enumerable:!0})},ps=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of cs(t))!hs.call(e,i)&&i!==r&&Bt(e,i,{get:()=>t[i],enumerable:!(n=ss(t,i))||n.enumerable});return e};var fs=(e,t,r)=>(r=e!=null?as(ls(e)):{},ps(t||!e||!e.__esModule?Bt(r,"default",{value:e,enumerable:!0}):r,e));var x=(e,t,r)=>us(e,typeof t!="symbol"?t+"":t,r),Ni=(e,t,r)=>t.has(e)||Ii("Cannot "+r);var W=(e,t,r)=>(Ni(e,t,"read from private field"),r?r.call(e):t.get(e)),ze=(e,t,r)=>t.has(e)?Ii("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),xt=(e,t,r,n)=>(Ni(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r);var jo=ds((ad,ul)=>{ul.exports={total:38,offset:0,limit:38,data:[{lang:"ar",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u0627\u0644\u0634\u0647\u0631} YEAR {/\u0627\u0644\u0639\u0627\u0645} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u0643\u0644 \u0634\u0647\u0631} YEAR {\u0643\u0644 \u0639\u0627\u0645} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u0644\u0643\u0644 \u062A\u0631\u062E\u064A\u0635} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u0644\u0643\u0644 \u062A\u0631\u062E\u064A\u0635} other {}}",freeLabel:"\u0645\u062C\u0627\u0646\u064B\u0627",freeAriaLabel:"\u0645\u062C\u0627\u0646\u064B\u0627",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"\u0623\u0648 \u0628\u062F\u0644\u0627\u064B \u0645\u0646 \u0630\u0644\u0643 \u0628\u0642\u064A\u0645\u0629 {alternativePrice}",strikethroughAriaLabel:"\u0628\u0634\u0643\u0644 \u0645\u0646\u062A\u0638\u0645 \u0628\u0642\u064A\u0645\u0629 {strikethroughPrice}"},{lang:"bg",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u043C\u0435\u0441.} YEAR {/\u0433\u043E\u0434.} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u043D\u0430 \u043C\u0435\u0441\u0435\u0446} YEAR {\u043D\u0430 \u0433\u043E\u0434\u0438\u043D\u0430} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u043D\u0430 \u043B\u0438\u0446\u0435\u043D\u0437} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u043D\u0430 \u043B\u0438\u0446\u0435\u043D\u0437} other {}}",freeLabel:"\u0411\u0435\u0437\u043F\u043B\u0430\u0442\u043D\u043E",freeAriaLabel:"\u0411\u0435\u0437\u043F\u043B\u0430\u0442\u043D\u043E",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"\u0410\u043B\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u043E \u043D\u0430 {alternativePrice}",strikethroughAriaLabel:"\u0420\u0435\u0434\u043E\u0432\u043D\u043E \u043D\u0430 {strikethroughPrice}"},{lang:"cs",recurrenceLabel:"{recurrenceTerm, select, MONTH {/m\u011Bs\xEDc} YEAR {/rok} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {za m\u011Bs\xEDc} YEAR {za rok} other {}}",perUnitLabel:"{perUnit, select, LICENSE {za licenci} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {za licenci} other {}}",freeLabel:"Zdarma",freeAriaLabel:"Zdarma",taxExclusiveLabel:"{taxTerm, select, GST {bez dan\u011B ze zbo\u017E\xED a slu\u017Eeb} VAT {bez DPH} TAX {bez dan\u011B} IVA {bez IVA} SST {bez SST} KDV {bez KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {v\u010Detn\u011B dan\u011B ze zbo\u017E\xED a slu\u017Eeb} VAT {v\u010Detn\u011B DPH} TAX {v\u010Detn\u011B dan\u011B} IVA {v\u010Detn\u011B IVA} SST {v\u010Detn\u011B SST} KDV {v\u010Detn\u011B KDV} other {}}",alternativePriceAriaLabel:"P\u0159\xEDpadn\u011B za {alternativePrice}",strikethroughAriaLabel:"Pravideln\u011B za {strikethroughPrice}"},{lang:"da",recurrenceLabel:"{recurrenceTerm, select, MONTH {/md} YEAR {/\xE5r} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {pr. m\xE5ned} YEAR {pr. \xE5r} other {}}",perUnitLabel:"{perUnit, select, LICENSE {pr. licens} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {pr. licens} other {}}",freeLabel:"Gratis",freeAriaLabel:"Gratis",taxExclusiveLabel:"{taxTerm, select, GST {ekskl. GST} VAT {ekskl. moms} TAX {ekskl. skat} IVA {ekskl. IVA} SST {ekskl. SST} KDV {ekskl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {inkl. GST} VAT {inkl. moms} TAX {inkl. skat} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}",alternativePriceAriaLabel:"Alternativt til {alternativePrice}",strikethroughAriaLabel:"Normalpris {strikethroughPrice}"},{lang:"de",recurrenceLabel:"{recurrenceTerm, select, MONTH {/Monat} YEAR {/Jahr} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {pro Monat} YEAR {pro Jahr} other {}}",perUnitLabel:"{perUnit, select, LICENSE {pro Lizenz} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {pro Lizenz} other {}}",freeLabel:"Kostenlos",freeAriaLabel:"Kostenlos",taxExclusiveLabel:"{taxTerm, select, GST {zzgl. GST} VAT {zzgl. MwSt.} TAX {zzgl. Steuern} IVA {zzgl. IVA} SST {zzgl. SST} KDV {zzgl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {inkl. GST} VAT {inkl. MwSt.} TAX {inkl. Steuern} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}",alternativePriceAriaLabel:"Alternativ: {alternativePrice}",strikethroughAriaLabel:"Regul\xE4r: {strikethroughPrice}"},{lang:"en",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mo} YEAR {/yr} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per month} YEAR {per year} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per license} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per license} other {}}",freeLabel:"Free",freeAriaLabel:"Free",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Alternatively at {alternativePrice}",strikethroughAriaLabel:"Regularly at {strikethroughPrice}"},{lang:"et",recurrenceLabel:"{recurrenceTerm, select, MONTH {kuus} YEAR {aastas} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {kuus} YEAR {aastas} other {}}",perUnitLabel:"{perUnit, select, LICENSE {litsentsi kohta} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {litsentsi kohta} other {}}",freeLabel:"Tasuta",freeAriaLabel:"Tasuta",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Teise v\xF5imalusena hinnaga {alternativePrice}",strikethroughAriaLabel:"Tavahind {strikethroughPrice}"},{lang:"fi",recurrenceLabel:"{recurrenceTerm, select, MONTH {/kk} YEAR {/v} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {kuukausittain} YEAR {vuosittain} other {}}",perUnitLabel:"{perUnit, select, LICENSE {k\xE4ytt\xF6oikeutta kohti} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {k\xE4ytt\xF6oikeutta kohti} other {}}",freeLabel:"Maksuton",freeAriaLabel:"Maksuton",taxExclusiveLabel:"{taxTerm, select, GST {ilman GST:t\xE4} VAT {ilman ALV:t\xE4} TAX {ilman veroja} IVA {ilman IVA:ta} SST {ilman SST:t\xE4} KDV {ilman KDV:t\xE4} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {sis. GST:n} VAT {sis. ALV:n} TAX {sis. verot} IVA {sis. IVA:n} SST {sis. SST:n} KDV {sis. KDV:n} other {}}",alternativePriceAriaLabel:"Vaihtoehtoisesti hintaan {alternativePrice}",strikethroughAriaLabel:"S\xE4\xE4nn\xF6llisesti hintaan {strikethroughPrice}"},{lang:"fr",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mois} YEAR {/an} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {par mois} YEAR {par an} other {}}",perUnitLabel:"{perUnit, select, LICENSE {par licence} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {par licence} other {}}",freeLabel:"Gratuit",freeAriaLabel:"Gratuit",taxExclusiveLabel:"{taxTerm, select, GST {hors TPS} VAT {hors TVA} TAX {hors taxes} IVA {hors IVA} SST {hors SST} KDV {hors KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {TPS comprise} VAT {TVA comprise} TAX {taxes comprises} IVA {IVA comprise} SST {SST comprise} KDV {KDV comprise} other {}}",alternativePriceAriaLabel:"Autre prix {alternativePrice}",strikethroughAriaLabel:"Prix habituel {strikethroughPrice}"},{lang:"he",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u05D7\u05D5\u05D3\u05E9} YEAR {/\u05E9\u05E0\u05D4} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u05DC\u05D7\u05D5\u05D3\u05E9} YEAR {\u05DC\u05E9\u05E0\u05D4} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}",freeLabel:"\u05D7\u05D9\u05E0\u05DD",freeAriaLabel:"\u05D7\u05D9\u05E0\u05DD",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"\u05DC\u05D7\u05DC\u05D5\u05E4\u05D9\u05DF \u05D1-{alternativePrice}",strikethroughAriaLabel:"\u05D1\u05D0\u05D5\u05E4\u05DF \u05E7\u05D1\u05D5\u05E2 \u05D1-{strikethroughPrice}"},{lang:"hu",recurrenceLabel:"{recurrenceTerm, select, MONTH {/h\xF3} YEAR {/\xE9v} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {havonta} YEAR {\xE9vente} other {}}",perUnitLabel:"{perUnit, select, LICENSE {licencenk\xE9nt} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {licencenk\xE9nt} other {}}",freeLabel:"Ingyenes",freeAriaLabel:"Ingyenes",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"M\xE1sik lehet\u0151s\xE9g: {alternativePrice}",strikethroughAriaLabel:"\xC1ltal\xE1ban {strikethroughPrice} \xE1ron"},{lang:"it",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mese} YEAR {/anno} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {al mese} YEAR {all'anno} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per licenza} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per licenza} other {}}",freeLabel:"Gratuito",freeAriaLabel:"Gratuito",taxExclusiveLabel:"{taxTerm, select, GST {escl. GST} VAT {escl. IVA.} TAX {escl. imposte} IVA {escl. IVA} SST {escl. SST} KDV {escl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. IVA} TAX {incl. imposte} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"In alternativa a {alternativePrice}",strikethroughAriaLabel:"Regolarmente a {strikethroughPrice}"},{lang:"ja",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u6708} YEAR {/\u5E74} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u6BCE\u6708} YEAR {\u6BCE\u5E74} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u30E9\u30A4\u30BB\u30F3\u30B9\u3054\u3068} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u30E9\u30A4\u30BB\u30F3\u30B9\u3054\u3068} other {}}",freeLabel:"\u7121\u6599",freeAriaLabel:"\u7121\u6599",taxExclusiveLabel:"{taxTerm, select, GST {GST \u5225} VAT {VAT \u5225} TAX {\u7A0E\u5225} IVA {IVA \u5225} SST {SST \u5225} KDV {KDV \u5225} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {GST \u8FBC} VAT {VAT \u8FBC} TAX {\u7A0E\u8FBC} IVA {IVA \u8FBC} SST {SST \u8FBC} KDV {KDV \u8FBC} other {}}",alternativePriceAriaLabel:"\u7279\u5225\u4FA1\u683C : {alternativePrice}",strikethroughAriaLabel:"\u901A\u5E38\u4FA1\u683C : {strikethroughPrice}"},{lang:"ko",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\uC6D4} YEAR {/\uB144} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\uC6D4\uAC04} YEAR {\uC5F0\uAC04} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\uB77C\uC774\uC120\uC2A4\uB2F9} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\uB77C\uC774\uC120\uC2A4\uB2F9} other {}}",freeLabel:"\uBB34\uB8CC",freeAriaLabel:"\uBB34\uB8CC",taxExclusiveLabel:"{taxTerm, select, GST {GST \uC81C\uC678} VAT {VAT \uC81C\uC678} TAX {\uC138\uAE08 \uC81C\uC678} IVA {IVA \uC81C\uC678} SST {SST \uC81C\uC678} KDV {KDV \uC81C\uC678} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {GST \uD3EC\uD568} VAT {VAT \uD3EC\uD568} TAX {\uC138\uAE08 \uD3EC\uD568} IVA {IVA \uD3EC\uD568} SST {SST \uD3EC\uD568} KDV {KDV \uD3EC\uD568} other {}}",alternativePriceAriaLabel:"\uB610\uB294 {alternativePrice}\uC5D0",strikethroughAriaLabel:"\uB610\uB294 {alternativePrice}\uC5D0"},{lang:"lt",recurrenceLabel:"{recurrenceTerm, select, MONTH { per m\u0117n.} YEAR { per metus} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per m\u0117n.} YEAR {per metus} other {}}",perUnitLabel:"{perUnit, select, LICENSE {u\u017E licencij\u0105} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {u\u017E licencij\u0105} other {}}",freeLabel:"Nemokamai",freeAriaLabel:"Nemokamai",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Arba u\u017E {alternativePrice}",strikethroughAriaLabel:"Normaliai u\u017E {strikethroughPrice}"},{lang:"lv",recurrenceLabel:"{recurrenceTerm, select, MONTH {m\u0113nes\u012B} YEAR {gad\u0101} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {m\u0113nes\u012B} YEAR {gad\u0101} other {}}",perUnitLabel:"{perUnit, select, LICENSE {vienai licencei} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {vienai licencei} other {}}",freeLabel:"Bezmaksas",freeAriaLabel:"Bezmaksas",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Alternat\u012Bvi par {alternativePrice}",strikethroughAriaLabel:"Regul\u0101ri par {strikethroughPrice}"},{lang:"nb",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mnd.} YEAR {/\xE5r} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per m\xE5ned} YEAR {per \xE5r} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per lisens} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per lisens} other {}}",freeLabel:"Fri",freeAriaLabel:"Fri",taxExclusiveLabel:"{taxTerm, select, GST {ekskl. GST} VAT {ekskl. moms} TAX {ekskl. avgift} IVA {ekskl. IVA} SST {ekskl. SST} KDV {ekskl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {inkl. GST} VAT {inkl. moms} TAX {inkl. avgift} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}",alternativePriceAriaLabel:"Alternativt til {alternativePrice}",strikethroughAriaLabel:"Regelmessig til {strikethroughPrice}"},{lang:"nl",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mnd} YEAR {/jr} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per maand} YEAR {per jaar} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per licentie} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per licentie} other {}}",freeLabel:"Gratis",freeAriaLabel:"Gratis",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. btw} TAX {excl. belasting} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. btw} TAX {incl. belasting} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Nu {alternativePrice}",strikethroughAriaLabel:"Normaal {strikethroughPrice}"},{lang:"pl",recurrenceLabel:"{recurrenceTerm, select, MONTH { / mies.} YEAR { / rok} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH { / miesi\u0105c} YEAR { / rok} other {}}",perUnitLabel:"{perUnit, select, LICENSE {za licencj\u0119} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {za licencj\u0119} other {}}",freeLabel:"Bezp\u0142atne",freeAriaLabel:"Bezp\u0142atne",taxExclusiveLabel:"{taxTerm, select, GST {bez GST} VAT {bez VAT} TAX {netto} IVA {bez IVA} SST {bez SST} KDV {bez KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {z GST} VAT {z VAT} TAX {brutto} IVA {z IVA} SST {z SST} KDV {z KDV} other {}}",alternativePriceAriaLabel:"Lub za {alternativePrice}",strikethroughAriaLabel:"Cena zwyk\u0142a: {strikethroughPrice}"},{lang:"pt",recurrenceLabel:"{recurrenceTerm, select, MONTH {/m\xEAs} YEAR {/ano} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {por m\xEAs} YEAR {por ano} other {}}",perUnitLabel:"{perUnit, select, LICENSE {por licen\xE7a} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {por licen\xE7a} other {}}",freeLabel:"Gratuito",freeAriaLabel:"Gratuito",taxExclusiveLabel:"{taxTerm, select, GST {ICMS n\xE3o incluso} VAT {IVA n\xE3o incluso} TAX {impostos n\xE3o inclusos} IVA {IVA n\xE3o incluso} SST { SST n\xE3o incluso} KDV {KDV n\xE3o incluso} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {ICMS incluso} VAT {IVA incluso} TAX {impostos inclusos} IVA {IVA incluso} SST {SST incluso} KDV {KDV incluso} other {}}",alternativePriceAriaLabel:"Ou a {alternativePrice}",strikethroughAriaLabel:"Pre\xE7o normal: {strikethroughPrice}"},{lang:"ro",recurrenceLabel:"{recurrenceTerm, select, MONTH {/lun\u0103} YEAR {/an} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {pe lun\u0103} YEAR {pe an} other {}}",perUnitLabel:"{perUnit, select, LICENSE {pe licen\u021B\u0103} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {pe licen\u021B\u0103} other {}}",freeLabel:"Gratuit",freeAriaLabel:"Gratuit",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Alternativ, la {alternativePrice}",strikethroughAriaLabel:"\xCEn mod normal, la {strikethroughPrice}"},{lang:"ru",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u043C\u0435\u0441.} YEAR {/\u0433.} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u0432 \u043C\u0435\u0441\u044F\u0446} YEAR {\u0432 \u0433\u043E\u0434} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u044E} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u044E} other {}}",freeLabel:"\u0411\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E",freeAriaLabel:"\u0411\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E",taxExclusiveLabel:"{taxTerm, select, GST {\u0438\u0441\u043A\u043B. \u043D\u0430\u043B\u043E\u0433 \u043D\u0430 \u0442\u043E\u0432\u0430\u0440\u044B \u0438 \u0443\u0441\u043B\u0443\u0433\u0438} VAT {\u0438\u0441\u043A\u043B. \u041D\u0414\u0421} TAX {\u0438\u0441\u043A\u043B. \u043D\u0430\u043B\u043E\u0433} IVA {\u0438\u0441\u043A\u043B. \u0418\u0412\u0410} SST {\u0438\u0441\u043A\u043B. SST} KDV {\u0438\u0441\u043A\u043B. \u041A\u0414\u0412} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {\u0432\u043A\u043B. \u043D\u0430\u043B\u043E\u0433 \u043D\u0430 \u0442\u043E\u0432\u0430\u0440\u044B \u0438 \u0443\u0441\u043B\u0443\u0433\u0438} VAT {\u0432\u043A\u043B. \u041D\u0414\u0421} TAX {\u0432\u043A\u043B. \u043D\u0430\u043B\u043E\u0433} IVA {\u0432\u043A\u043B. \u0418\u0412\u0410} SST {\u0432\u043A\u043B. SST} KDV {\u0432\u043A\u043B. \u041A\u0414\u0412} other {}}",alternativePriceAriaLabel:"\u0410\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0437\u0430 {alternativePrice}",strikethroughAriaLabel:"\u0420\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u043E \u043F\u043E \u0446\u0435\u043D\u0435 {strikethroughPrice}"},{lang:"sk",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mesiac} YEAR {/rok} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {za mesiac} YEAR {za rok} other {}}",perUnitLabel:"{perUnit, select, LICENSE {za licenciu} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {za licenciu} other {}}",freeLabel:"Zadarmo",freeAriaLabel:"Zadarmo",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Pr\xEDpadne za {alternativePrice}",strikethroughAriaLabel:"Pravidelne za {strikethroughPrice}"},{lang:"sl",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mesec} YEAR {/leto} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {na mesec} YEAR {na leto} other {}}",perUnitLabel:"{perUnit, select, LICENSE {na licenco} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {na licenco} other {}}",freeLabel:"Brezpla\u010Dno",freeAriaLabel:"Brezpla\u010Dno",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Druga mo\u017Enost je: {alternativePrice}",strikethroughAriaLabel:"Redno po {strikethroughPrice}"},{lang:"sv",recurrenceLabel:"{recurrenceTerm, select, MONTH {/m\xE5n} YEAR {/\xE5r} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per m\xE5nad} YEAR {per \xE5r} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per licens} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per licens} other {}}",freeLabel:"Kostnadsfritt",freeAriaLabel:"Kostnadsfritt",taxExclusiveLabel:"{taxTerm, select, GST {exkl. GST} VAT {exkl. moms} TAX {exkl. skatt} IVA {exkl. IVA} SST {exkl. SST} KDV {exkl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {inkl. GST} VAT {inkl. moms} TAX {inkl. skatt} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}",alternativePriceAriaLabel:"Alternativt f\xF6r {alternativePrice}",strikethroughAriaLabel:"Normalpris {strikethroughPrice}"},{lang:"tr",recurrenceLabel:"{recurrenceTerm, select, MONTH {/ay} YEAR {/y\u0131l} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {(ayl\u0131k)} YEAR {(y\u0131ll\u0131k)} other {}}",perUnitLabel:"{perUnit, select, LICENSE {(lisans ba\u015F\u0131na)} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {(lisans ba\u015F\u0131na)} other {}}",freeLabel:"\xDCcretsiz",freeAriaLabel:"\xDCcretsiz",taxExclusiveLabel:"{taxTerm, select, GST {GST hari\xE7} VAT {KDV hari\xE7} TAX {vergi hari\xE7} IVA {IVA hari\xE7} SST {SST hari\xE7} KDV {KDV hari\xE7} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {GST dahil} VAT {KDV dahil} TAX {vergi dahil} IVA {IVA dahil} SST {SST dahil} KDV {KDV dahil} other {}}",alternativePriceAriaLabel:"Ya da {alternativePrice}",strikethroughAriaLabel:"Standart fiyat: {strikethroughPrice}"},{lang:"uk",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u043C\u0456\u0441.} YEAR {/\u0440\u0456\u043A} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u043D\u0430 \u043C\u0456\u0441\u044F\u0446\u044C} YEAR {\u043D\u0430 \u0440\u0456\u043A} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0456\u0446\u0435\u043D\u0437\u0456\u044E} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0456\u0446\u0435\u043D\u0437\u0456\u044E} other {}}",freeLabel:"\u0411\u0435\u0437\u043A\u043E\u0448\u0442\u043E\u0432\u043D\u043E",freeAriaLabel:"\u0411\u0435\u0437\u043A\u043E\u0448\u0442\u043E\u0432\u043D\u043E",taxExclusiveLabel:"{taxTerm, select, GST {\u0431\u0435\u0437 GST} VAT {\u0431\u0435\u0437 \u041F\u0414\u0412} TAX {\u0431\u0435\u0437 \u043F\u043E\u0434\u0430\u0442\u043A\u0443} IVA {\u0431\u0435\u0437 IVA} SST {\u0431\u0435\u0437 SST} KDV {\u0431\u0435\u0437 KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 GST} VAT {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 \u041F\u0414\u0412} TAX {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 \u043F\u043E\u0434\u0430\u0442\u043A\u043E\u043C} IVA {\u0440\u0430\u0437\u043E\u043C \u0437 IVA} SST {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 SST} KDV {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 KDV} other {}}",alternativePriceAriaLabel:"\u0410\u0431\u043E \u0437\u0430 {alternativePrice}",strikethroughAriaLabel:"\u0417\u0432\u0438\u0447\u0430\u0439\u043D\u0430 \u0446\u0456\u043D\u0430 {strikethroughPrice}"},{lang:"zh-hans",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u6708} YEAR {/\u5E74} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u6BCF\u6708} YEAR {\u6BCF\u5E74} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u6BCF\u4E2A\u8BB8\u53EF\u8BC1} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u6BCF\u4E2A\u8BB8\u53EF\u8BC1} other {}}",freeLabel:"\u514D\u8D39",freeAriaLabel:"\u514D\u8D39",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"\u6216\u5B9A\u4EF7 {alternativePrice}",strikethroughAriaLabel:"\u6B63\u5E38\u4EF7 {strikethroughPrice}"},{lang:"zh-hant",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u6708} YEAR {/\u5E74} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u6BCF\u6708} YEAR {\u6BCF\u5E74} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u6BCF\u500B\u6388\u6B0A} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u6BCF\u500B\u6388\u6B0A} other {}}",freeLabel:"\u514D\u8CBB",freeAriaLabel:"\u514D\u8CBB",taxExclusiveLabel:"{taxTerm, select, GST {\u4E0D\u542B GST} VAT {\u4E0D\u542B VAT} TAX {\u4E0D\u542B\u7A05} IVA {\u4E0D\u542B IVA} SST {\u4E0D\u542B SST} KDV {\u4E0D\u542B KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {\u542B GST} VAT {\u542B VAT} TAX {\u542B\u7A05} IVA {\u542B IVA} SST {\u542B SST} KDV {\u542B KDV} other {}}",alternativePriceAriaLabel:"\u6216\u8005\u5728 {alternativePrice}",strikethroughAriaLabel:"\u6A19\u6E96\u50F9\u683C\u70BA {strikethroughPrice}"},{lang:"es",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mes} YEAR {/a\xF1o} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {al mes} YEAR {al a\xF1o} other {}}",perUnitLabel:"{perUnit, select, LICENSE {por licencia} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {por licencia} other {}}",freeLabel:"Gratuito",freeAriaLabel:"Gratuito",taxExclusiveLabel:"{taxTerm, select, GST {GST no incluido} VAT {IVA no incluido} TAX {Impuestos no incluidos} IVA {IVA no incluido} SST {SST no incluido} KDV {KDV no incluido} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {GST incluido} VAT {IVA incluido} TAX {Impuestos incluidos} IVA {IVA incluido} SST {SST incluido} KDV {KDV incluido} other {}}",alternativePriceAriaLabel:"Alternativamente por {alternativePrice}",strikethroughAriaLabel:"Normalmente a {strikethroughPrice}"},{lang:"in",recurrenceLabel:"{recurrenceTerm, select, MONTH {/bulan} YEAR {/tahun} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per bulan} YEAR {per tahun} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per lisensi} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per lisensi} other {}}",freeLabel:"Gratis",freeAriaLabel:"Gratis",taxExclusiveLabel:"{taxTerm, select, GST {tidak termasuk PBJ} VAT {tidak termasuk PPN} TAX {tidak termasuk pajak} IVA {tidak termasuk IVA} SST {tidak termasuk SST} KDV {tidak termasuk KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {termasuk PBJ} VAT {termasuk PPN} TAX {termasuk pajak} IVA {termasuk IVA} SST {termasuk SST} KDV {termasuk KDV} other {}}",alternativePriceAriaLabel:"Atau seharga {alternativePrice}",strikethroughAriaLabel:"Normalnya seharga {strikethroughPrice}"},{lang:"vi",recurrenceLabel:"{recurrenceTerm, select, MONTH {/th\xE1ng} YEAR {/n\u0103m} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {m\u1ED7i th\xE1ng} YEAR {m\u1ED7i n\u0103m} other {}}",perUnitLabel:"{perUnit, select, LICENSE {m\u1ED7i gi\u1EA5y ph\xE9p} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {m\u1ED7i gi\u1EA5y ph\xE9p} other {}}",freeLabel:"Mi\u1EC5n ph\xED",freeAriaLabel:"Mi\u1EC5n ph\xED",taxExclusiveLabel:"{taxTerm, select, GST {ch\u01B0a bao g\u1ED3m thu\u1EBF h\xE0ng h\xF3a v\xE0 d\u1ECBch v\u1EE5} VAT {ch\u01B0a bao g\u1ED3m thu\u1EBF GTGT} TAX {ch\u01B0a bao g\u1ED3m thu\u1EBF} IVA {ch\u01B0a bao g\u1ED3m IVA} SST {ch\u01B0a bao g\u1ED3m SST} KDV {ch\u01B0a bao g\u1ED3m KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {(\u0111\xE3 bao g\u1ED3m thu\u1EBF h\xE0ng h\xF3a v\xE0 d\u1ECBch v\u1EE5)} VAT {(\u0111\xE3 bao g\u1ED3m thu\u1EBF GTGT)} TAX {(\u0111\xE3 bao g\u1ED3m thu\u1EBF)} IVA {(\u0111\xE3 bao g\u1ED3m IVA)} SST {(\u0111\xE3 bao g\u1ED3m SST)} KDV {(\u0111\xE3 bao g\u1ED3m KDV)} other {}}",alternativePriceAriaLabel:"Gi\xE1 \u01B0u \u0111\xE3i {alternativePrice}",strikethroughAriaLabel:"Gi\xE1 th\xF4ng th\u01B0\u1EDDng {strikethroughPrice}"},{lang:"th",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u0E40\u0E14\u0E37\u0E2D\u0E19} YEAR {/\u0E1B\u0E35} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u0E15\u0E48\u0E2D\u0E40\u0E14\u0E37\u0E2D\u0E19} YEAR {\u0E15\u0E48\u0E2D\u0E1B\u0E35} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u0E15\u0E48\u0E2D\u0E2A\u0E34\u0E17\u0E18\u0E34\u0E4C\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u0E15\u0E48\u0E2D\u0E2A\u0E34\u0E17\u0E18\u0E34\u0E4C\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19} other {}}",freeLabel:"\u0E1F\u0E23\u0E35",freeAriaLabel:"\u0E1F\u0E23\u0E35",taxExclusiveLabel:"{taxTerm, select, GST {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35 GST} VAT {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 VAT} TAX {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35} IVA {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 IVA} SST {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 SST} KDV {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35 GST} VAT {\u0E23\u0E27\u0E21 VAT} TAX {\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35} IVA {\u0E23\u0E27\u0E21 IVA} SST {\u0E23\u0E27\u0E21 SST} KDV {\u0E23\u0E27\u0E21 KDV} other {}}",alternativePriceAriaLabel:"\u0E23\u0E32\u0E04\u0E32\u0E1E\u0E34\u0E40\u0E28\u0E29 {alternativePrice}",strikethroughAriaLabel:"\u0E23\u0E32\u0E04\u0E32\u0E1B\u0E01\u0E15\u0E34 {strikethroughPrice}"},{lang:"el",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u03BC\u03AE\u03BD\u03B1} YEAR {/\u03AD\u03C4\u03BF\u03C2} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u03BA\u03AC\u03B8\u03B5 \u03BC\u03AE\u03BD\u03B1} YEAR {\u03B1\u03BD\u03AC \u03AD\u03C4\u03BF\u03C2} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u03B1\u03BD\u03AC \u03AC\u03B4\u03B5\u03B9\u03B1 \u03C7\u03C1\u03AE\u03C3\u03B7\u03C2} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u03B1\u03BD\u03AC \u03AC\u03B4\u03B5\u03B9\u03B1 \u03C7\u03C1\u03AE\u03C3\u03B7\u03C2} other {}}",freeLabel:"\u0394\u03C9\u03C1\u03B5\u03AC\u03BD",freeAriaLabel:"\u0394\u03C9\u03C1\u03B5\u03AC\u03BD",taxExclusiveLabel:"{taxTerm, select, GST {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 GST)} VAT {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03A6\u03A0\u0391)} TAX {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C6\u03CC\u03C1\u03BF)} IVA {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 IVA)} SST {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 SST)} KDV {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 KDV)} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 GST)} VAT {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03A6\u03A0\u0391)} TAX {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 \u03C6\u03CC\u03C1\u03BF\u03C5)} IVA {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 IVA)} SST {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 SST)} KDV {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 KDV)} other {}}",alternativePriceAriaLabel:"\u0394\u03B9\u03B1\u03C6\u03BF\u03C1\u03B5\u03C4\u03B9\u03BA\u03AC, {alternativePrice}",strikethroughAriaLabel:"\u039A\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03AE \u03C4\u03B9\u03BC\u03AE {strikethroughPrice}"},{lang:"fil",recurrenceLabel:"{recurrenceTerm, select, MONTH {/buwan} YEAR {/taon} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per buwan} YEAR {per taon} other {}}",perUnitLabel:"{perUnit, select, LICENSE {kada lisensya} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {kada lisensya} other {}}",freeLabel:"Libre",freeAriaLabel:"Libre",taxExclusiveLabel:"{taxTerm, select, GST {hindi kasama ang GST} VAT {hindi kasama ang VAT} TAX {hindi kasama ang Buwis} IVA {hindi kasama ang IVA} SST {hindi kasama ang SST} KDV {hindi kasama ang KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {kasama ang GST} VAT {kasama ang VAT} TAX {kasama ang Buwis} IVA {kasama ang IVA} SST {kasama ang SST} KDV {kasama ang KDV} other {}}",alternativePriceAriaLabel:"Alternatibong nasa halagang {alternativePrice}",strikethroughAriaLabel:"Regular na nasa halagang {strikethroughPrice}"},{lang:"ms",recurrenceLabel:"{recurrenceTerm, select, MONTH {/bulan} YEAR {/tahun} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per bulan} YEAR {per tahun} other {}}",perUnitLabel:"{perUnit, select, LICENSE {setiap lesen} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {setiap lesen} other {}}",freeLabel:"Percuma",freeAriaLabel:"Percuma",taxExclusiveLabel:"{taxTerm, select, GST {kecuali GST} VAT {kecuali VAT} TAX {kecuali Cukai} IVA {kecuali IVA} SST {kecuali SST} KDV {kecuali KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {termasuk GST} VAT {termasuk VAT} TAX {termasuk Cukai} IVA {termasuk IVA} SST {termasuk SST} KDV {termasuk KDV} other {}}",alternativePriceAriaLabel:"Secara alternatif pada {alternativePrice}",strikethroughAriaLabel:"Biasanya pada {strikethroughPrice}"},{lang:"hi",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u092E\u093E\u0939} YEAR {/\u0935\u0930\u094D\u0937} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per \u092E\u093E\u0939} YEAR {per \u0935\u0930\u094D\u0937} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u092A\u094D\u0930\u0924\u093F \u0932\u093E\u0907\u0938\u0947\u0902\u0938} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u092A\u094D\u0930\u0924\u093F \u0932\u093E\u0907\u0938\u0947\u0902\u0938} other {}}",freeLabel:"\u092B\u093C\u094D\u0930\u0940",freeAriaLabel:"\u092B\u093C\u094D\u0930\u0940",taxExclusiveLabel:"{taxTerm, select, GST {GST \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} VAT {VAT \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} TAX {\u0915\u0930 \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} IVA {IVA \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} SST {SST \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} KDV {KDV \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {GST \u0938\u0939\u093F\u0924} VAT {VAT \u0938\u0939\u093F\u0924} TAX {\u0915\u0930 \u0938\u0939\u093F\u0924} IVA {IVA \u0938\u0939\u093F\u0924} SST {SST \u0938\u0939\u093F\u0924} KDV {KDV \u0938\u0939\u093F\u0924} other {}}",alternativePriceAriaLabel:"\u0935\u0948\u0915\u0932\u094D\u092A\u093F\u0915 \u0930\u0942\u092A \u0938\u0947 \u0907\u0938 \u092A\u0930 {alternativePrice}",strikethroughAriaLabel:"\u0928\u093F\u092F\u092E\u093F\u0924 \u0930\u0942\u092A \u0938\u0947 \u0907\u0938 \u092A\u0930 {strikethroughPrice}"},{lang:"iw",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u05D7\u05D5\u05D3\u05E9} YEAR {/\u05E9\u05E0\u05D4} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u05DC\u05D7\u05D5\u05D3\u05E9} YEAR {\u05DC\u05E9\u05E0\u05D4} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}",freeLabel:"\u05D7\u05D9\u05E0\u05DD",freeAriaLabel:"\u05D7\u05D9\u05E0\u05DD",taxExclusiveLabel:'{taxTerm, select, GST {\u05DC\u05DC\u05D0 GST} VAT {\u05DC\u05DC\u05D0 \u05DE\u05E2"\u05DE} TAX {\u05DC\u05DC\u05D0 \u05DE\u05E1} IVA {\u05DC\u05DC\u05D0 IVA} SST {\u05DC\u05DC\u05D0 SST} KDV {\u05DC\u05DC\u05D0 KDV} other {}}',taxInclusiveLabel:'{taxTerm, select, GST {\u05DB\u05D5\u05DC\u05DC GST} VAT {\u05DB\u05D5\u05DC\u05DC \u05DE\u05E2"\u05DE} TAX {\u05DB\u05D5\u05DC\u05DC \u05DE\u05E1} IVA {\u05DB\u05D5\u05DC\u05DC IVA} SST {\u05DB\u05D5\u05DC\u05DC SST} KDV {\u05DB\u05D5\u05DC\u05DC KDV} other {}}',alternativePriceAriaLabel:"\u05DC\u05D7\u05DC\u05D5\u05E4\u05D9\u05DF \u05D1-{alternativePrice}",strikethroughAriaLabel:"\u05D1\u05D0\u05D5\u05E4\u05DF \u05E7\u05D1\u05D5\u05E2 \u05D1-{strikethroughPrice}"}],":type":"sheet"}});var vt;(function(e){e.STAGE="STAGE",e.PRODUCTION="PRODUCTION",e.LOCAL="LOCAL"})(vt||(vt={}));var jr;(function(e){e.STAGE="STAGE",e.PRODUCTION="PROD",e.LOCAL="LOCAL"})(jr||(jr={}));var bt;(function(e){e.DRAFT="DRAFT",e.PUBLISHED="PUBLISHED"})(bt||(bt={}));var ye;(function(e){e.V2="UCv2",e.V3="UCv3"})(ye||(ye={}));var q;(function(e){e.CHECKOUT="checkout",e.CHECKOUT_EMAIL="checkout/email",e.SEGMENTATION="segmentation",e.BUNDLE="bundle",e.COMMITMENT="commitment",e.RECOMMENDATION="recommendation",e.EMAIL="email",e.PAYMENT="payment",e.CHANGE_PLAN_TEAM_PLANS="change-plan/team-upgrade/plans",e.CHANGE_PLAN_TEAM_PAYMENT="change-plan/team-upgrade/payment"})(q||(q={}));var Br=function(e){var t;return(t=gs.get(e))!==null&&t!==void 0?t:e},gs=new Map([["countrySpecific","cs"],["quantity","q"],["authCode","code"],["checkoutPromoCode","apc"],["rurl","rUrl"],["curl","cUrl"],["ctxrturl","ctxRtUrl"],["country","co"],["language","lang"],["clientId","cli"],["context","ctx"],["productArrangementCode","pa"],["offerType","ot"],["marketSegment","ms"]]);var ki=function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},Oi=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),i,o=[],a;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)o.push(i.value)}catch(s){a={error:s}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(a)throw a.error}}return o};function Fe(e,t,r){var n,i;try{for(var o=ki(Object.entries(e)),a=o.next();!a.done;a=o.next()){var s=Oi(a.value,2),c=s[0],h=s[1],l=Br(c);h!=null&&r.has(l)&&t.set(l,h)}}catch(u){n={error:u}}finally{try{a&&!a.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}}function Yt(e){switch(e){case vt.PRODUCTION:return"https://commerce.adobe.com";default:return"https://commerce-stg.adobe.com"}}function Xt(e,t){var r,n;for(var i in e){var o=e[i];try{for(var a=(r=void 0,ki(Object.entries(o))),s=a.next();!s.done;s=a.next()){var c=Oi(s.value,2),h=c[0],l=c[1];if(l!=null){var u=Br(h);t.set("items["+i+"]["+u+"]",l)}}}catch(d){r={error:d}}finally{try{s&&!s.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}}}var xs=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};function Vi(e){Ss(e);var t=e.env,r=e.items,n=e.workflowStep,i=xs(e,["env","items","workflowStep"]),o=new URL(Yt(t));return o.pathname=n+"/",Xt(r,o.searchParams),Fe(i,o.searchParams,bs),o.toString()}var bs=new Set(["cli","co","lang","ctx","cUrl","mv","nglwfdata","otac","promoid","rUrl","sdid","spint","trackingid","code","campaignid","appctxid"]),As=["env","workflowStep","clientId","country","items"];function Ss(e){var t,r;try{for(var n=vs(As),i=n.next();!i.done;i=n.next()){var o=i.value;if(!e[o])throw new Error('Argument "checkoutData" is not valid, missing: '+o)}}catch(a){t={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}return!0}var Es=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},ys="p_draft_landscape",_s="/store/";function Xr(e){ws(e);var t=e.env,r=e.items,n=e.workflowStep,i=e.ms,o=e.marketSegment,a=e.ot,s=e.offerType,c=e.pa,h=e.productArrangementCode,l=e.landscape,u=Es(e,["env","items","workflowStep","ms","marketSegment","ot","offerType","pa","productArrangementCode","landscape"]),d={marketSegment:o??i,offerType:s??a,productArrangementCode:h??c},m=new URL(Yt(t));return m.pathname=""+_s+n,n!==q.SEGMENTATION&&n!==q.CHANGE_PLAN_TEAM_PLANS&&Xt(r,m.searchParams),n===q.SEGMENTATION&&Fe(d,m.searchParams,Yr),Fe(u,m.searchParams,Yr),l===bt.DRAFT&&Fe({af:ys},m.searchParams,Yr),m.toString()}var Yr=new Set(["af","ai","apc","appctxid","cli","co","csm","ctx","ctxRtUrl","DCWATC","dp","fr","gsp","ijt","lang","lo","mal","ms","mv","mv2","nglwfdata","ot","otac","pa","pcid","promoid","q","rf","sc","scl","sdid","sid","spint","svar","th","thm","trackingid","usid","workflowid","context.guid","so.ca","so.su","so.tr","so.va"]),Ls=["env","workflowStep","clientId","country"];function ws(e){var t,r;try{for(var n=Ts(Ls),i=n.next();!i.done;i=n.next()){var o=i.value;if(!e[o])throw new Error('Argument "checkoutData" is not valid, missing: '+o)}}catch(a){t={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}if(e.workflowStep!==q.SEGMENTATION&&e.workflowStep!==q.CHANGE_PLAN_TEAM_PLANS&&!e.items)throw new Error('Argument "checkoutData" is not valid, missing: items');return!0}function Wr(e,t){switch(e){case ye.V2:return Vi(t);case ye.V3:return Xr(t);default:return console.warn("Unsupported CheckoutType, will use UCv3 as default. Given type: "+e),Xr(t)}}var qr;(function(e){e.BASE="BASE",e.TRIAL="TRIAL",e.PROMOTION="PROMOTION"})(qr||(qr={}));var M;(function(e){e.MONTH="MONTH",e.YEAR="YEAR",e.TWO_YEARS="TWO_YEARS",e.THREE_YEARS="THREE_YEARS",e.PERPETUAL="PERPETUAL",e.TERM_LICENSE="TERM_LICENSE",e.ACCESS_PASS="ACCESS_PASS",e.THREE_MONTHS="THREE_MONTHS",e.SIX_MONTHS="SIX_MONTHS"})(M||(M={}));var V;(function(e){e.ANNUAL="ANNUAL",e.MONTHLY="MONTHLY",e.TWO_YEARS="TWO_YEARS",e.THREE_YEARS="THREE_YEARS",e.P1D="P1D",e.P1Y="P1Y",e.P3Y="P3Y",e.P10Y="P10Y",e.P15Y="P15Y",e.P3D="P3D",e.P7D="P7D",e.P30D="P30D",e.HALF_YEARLY="HALF_YEARLY",e.QUARTERLY="QUARTERLY"})(V||(V={}));var Zr;(function(e){e.INDIVIDUAL="INDIVIDUAL",e.TEAM="TEAM",e.ENTERPRISE="ENTERPRISE"})(Zr||(Zr={}));var Jr;(function(e){e.COM="COM",e.EDU="EDU",e.GOV="GOV"})(Jr||(Jr={}));var Qr;(function(e){e.DIRECT="DIRECT",e.INDIRECT="INDIRECT"})(Qr||(Qr={}));var en;(function(e){e.ENTERPRISE_PRODUCT="ENTERPRISE_PRODUCT",e.ETLA="ETLA",e.RETAIL="RETAIL",e.VIP="VIP",e.VIPMP="VIPMP",e.FREE="FREE"})(en||(en={}));var Ri="tacocat.js";var Wt=(e,t)=>String(e??"").toLowerCase()==String(t??"").toLowerCase(),$i=e=>`${e??""}`.replace(/[&<>'"]/g,t=>({"&":"&","<":"<",">":">","'":"'",'"':"""})[t]??t)??"";function R(e,t={},{metadata:r=!0,search:n=!0,storage:i=!0}={}){let o;if(n&&o==null){let a=new URLSearchParams(window.location.search),s=Ke(n)?n:e;o=a.get(s)}if(i&&o==null){let a=Ke(i)?i:e;o=window.sessionStorage.getItem(a)??window.localStorage.getItem(a)}if(r&&o==null){let a=Ps(Ke(r)?r:e);o=document.documentElement.querySelector(`meta[name="${a}"]`)?.content}return o??t[e]}var je=()=>{};var Ui=e=>typeof e=="boolean",de=e=>typeof e=="function",qt=e=>typeof e=="number",Mi=e=>e!=null&&typeof e=="object";var Ke=e=>typeof e=="string",tn=e=>Ke(e)&&e,Be=e=>qt(e)&&Number.isFinite(e)&&e>0;function Ye(e,t=r=>r==null||r===""){return e!=null&&Object.entries(e).forEach(([r,n])=>{t(n)&&delete e[r]}),e}function y(e,t){if(Ui(e))return e;let r=String(e);return r==="1"||r==="true"?!0:r==="0"||r==="false"?!1:t}function me(e,t,r){let n=Object.values(t);return n.find(i=>Wt(i,e))??r??n[0]}function Ps(e=""){return String(e).replace(/(\p{Lowercase_Letter})(\p{Uppercase_Letter})/gu,(t,r,n)=>`${r}-${n}`).replace(/\W+/gu,"-").toLowerCase()}function Xe(e,t=1){return qt(e)||(e=Number.parseInt(e,10)),!Number.isNaN(e)&&e>0&&Number.isFinite(e)?e:t}var Cs=Date.now(),rn=()=>`(+${Date.now()-Cs}ms)`,Zt=new Set,Is=y(R("tacocat.debug",{},{metadata:!1}),typeof process<"u"&&process.env?.DEBUG);function Di(e){let t=`[${Ri}/${e}]`,r=(a,s,...c)=>a?!0:(i(s,...c),!1),n=Is?(a,...s)=>{console.debug(`${t} ${a}`,...s,rn())}:()=>{},i=(a,...s)=>{let c=`${t} ${a}`;Zt.forEach(([h])=>h(c,...s))};return{assert:r,debug:n,error:i,warn:(a,...s)=>{let c=`${t} ${a}`;Zt.forEach(([,h])=>h(c,...s))}}}function Ns(e,t){let r=[e,t];return Zt.add(r),()=>{Zt.delete(r)}}Ns((e,...t)=>{console.error(e,...t,rn())},(e,...t)=>{console.warn(e,...t,rn())});var ks="no promo",Gi="promo-tag",Os="yellow",Vs="neutral",Rs=(e,t,r)=>{let n=o=>o||ks,i=r?` (was "${n(t)}")`:"";return`${n(e)}${i}`},$s="cancel-context",At=(e,t)=>{let r=e===$s,n=!r&&e?.length>0,i=(n||r)&&(t&&t!=e||!t&&!r),o=i&&n||!i&&!!t,a=o?e||t:void 0;return{effectivePromoCode:a,overridenPromoCode:e,className:o?Gi:`${Gi} no-promo`,text:Rs(a,t,i),variant:o?Os:Vs,isOverriden:i}};var nn="ABM",on="PUF",an="M2M",sn="PERPETUAL",cn="P3Y",Us="TAX_INCLUSIVE_DETAILS",Ms="TAX_EXCLUSIVE",Hi={ABM:nn,PUF:on,M2M:an,PERPETUAL:sn,P3Y:cn},dh={[nn]:{commitment:M.YEAR,term:V.MONTHLY},[on]:{commitment:M.YEAR,term:V.ANNUAL},[an]:{commitment:M.MONTH,term:V.MONTHLY},[sn]:{commitment:M.PERPETUAL,term:void 0},[cn]:{commitment:M.THREE_MONTHS,term:V.P3Y}},zi="Value is not an offer",ln=e=>{if(typeof e!="object")return zi;let{commitment:t,term:r}=e,n=Ds(t,r);return{...e,planType:n}};var Ds=(e,t)=>{switch(e){case void 0:return zi;case"":return"";case M.YEAR:return t===V.MONTHLY?nn:t===V.ANNUAL?on:"";case M.MONTH:return t===V.MONTHLY?an:"";case M.PERPETUAL:return sn;case M.TERM_LICENSE:return t===V.P3Y?cn:"";default:return""}};function hn(e){let{priceDetails:t}=e,{price:r,priceWithoutDiscount:n,priceWithoutTax:i,priceWithoutDiscountAndTax:o,taxDisplay:a}=t;if(a!==Us)return e;let s={...e,priceDetails:{...t,price:i??r,priceWithoutDiscount:o??n,taxDisplay:Ms}};return s.offerType==="TRIAL"&&s.priceDetails.price===0&&(s.priceDetails.price=s.priceDetails.priceWithoutDiscount),s}var un=function(e,t){return un=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[i]=n[i])},un(e,t)};function St(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");un(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var S=function(){return S=Object.assign||function(t){for(var r,n=1,i=arguments.length;n0}),r=[],n=0,i=t;n1)throw new RangeError("integer-width stems only accept a single optional option");i.options[0].replace(zs,function(s,c,h,l,u,d){if(c)t.minimumIntegerDigits=h.length;else{if(l&&u)throw new Error("We currently do not support maximum integer digits");if(d)throw new Error("We currently do not support exact integer digits")}return""});continue}if(Ji.test(i.stem)){t.minimumIntegerDigits=i.stem.length;continue}if(Yi.test(i.stem)){if(i.options.length>1)throw new RangeError("Fraction-precision stems only accept a single optional option");i.stem.replace(Yi,function(s,c,h,l,u,d){return h==="*"?t.minimumFractionDigits=c.length:l&&l[0]==="#"?t.maximumFractionDigits=l.length:u&&d?(t.minimumFractionDigits=u.length,t.maximumFractionDigits=u.length+d.length):(t.minimumFractionDigits=c.length,t.maximumFractionDigits=c.length),""}),i.options.length&&(t=S(S({},t),Xi(i.options[0])));continue}if(Zi.test(i.stem)){t=S(S({},t),Xi(i.stem));continue}var o=Qi(i.stem);o&&(t=S(S({},t),o));var a=Fs(i.stem);a&&(t=S(S({},t),a))}return t}var pn,Ks=new RegExp("^"+mn.source+"*"),js=new RegExp(mn.source+"*$");function A(e,t){return{start:e,end:t}}var Bs=!!String.prototype.startsWith,Ys=!!String.fromCodePoint,Xs=!!Object.fromEntries,Ws=!!String.prototype.codePointAt,qs=!!String.prototype.trimStart,Zs=!!String.prototype.trimEnd,Js=!!Number.isSafeInteger,Qs=Js?Number.isSafeInteger:function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e&&Math.abs(e)<=9007199254740991},gn=!0;try{to=oo("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu"),gn=((pn=to.exec("a"))===null||pn===void 0?void 0:pn[0])==="a"}catch{gn=!1}var to,ro=Bs?function(t,r,n){return t.startsWith(r,n)}:function(t,r,n){return t.slice(n,n+r.length)===r},xn=Ys?String.fromCodePoint:function(){for(var t=[],r=0;ro;){if(a=t[o++],a>1114111)throw RangeError(a+" is not a valid code point");n+=a<65536?String.fromCharCode(a):String.fromCharCode(((a-=65536)>>10)+55296,a%1024+56320)}return n},no=Xs?Object.fromEntries:function(t){for(var r={},n=0,i=t;n=n)){var i=t.charCodeAt(r),o;return i<55296||i>56319||r+1===n||(o=t.charCodeAt(r+1))<56320||o>57343?i:(i-55296<<10)+(o-56320)+65536}},ec=qs?function(t){return t.trimStart()}:function(t){return t.replace(Ks,"")},tc=Zs?function(t){return t.trimEnd()}:function(t){return t.replace(js,"")};function oo(e,t){return new RegExp(e,t)}var vn;gn?(fn=oo("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu"),vn=function(t,r){var n;fn.lastIndex=r;var i=fn.exec(t);return(n=i[1])!==null&&n!==void 0?n:""}):vn=function(t,r){for(var n=[];;){var i=io(t,r);if(i===void 0||so(i)||ic(i))break;n.push(i),r+=i>=65536?2:1}return xn.apply(void 0,n)};var fn,ao=function(){function e(t,r){r===void 0&&(r={}),this.message=t,this.position={offset:0,line:1,column:1},this.ignoreTag=!!r.ignoreTag,this.requiresOtherClause=!!r.requiresOtherClause,this.shouldParseSkeletons=!!r.shouldParseSkeletons}return e.prototype.parse=function(){if(this.offset()!==0)throw Error("parser can only be used once");return this.parseMessage(0,"",!1)},e.prototype.parseMessage=function(t,r,n){for(var i=[];!this.isEOF();){var o=this.char();if(o===123){var a=this.parseArgument(t,n);if(a.err)return a;i.push(a.val)}else{if(o===125&&t>0)break;if(o===35&&(r==="plural"||r==="selectordinal")){var s=this.clonePosition();this.bump(),i.push({type:w.pound,location:A(s,this.clonePosition())})}else if(o===60&&!this.ignoreTag&&this.peek()===47){if(n)break;return this.error(b.UNMATCHED_CLOSING_TAG,A(this.clonePosition(),this.clonePosition()))}else if(o===60&&!this.ignoreTag&&bn(this.peek()||0)){var a=this.parseTag(t,r);if(a.err)return a;i.push(a.val)}else{var a=this.parseLiteral(t,r);if(a.err)return a;i.push(a.val)}}}return{val:i,err:null}},e.prototype.parseTag=function(t,r){var n=this.clonePosition();this.bump();var i=this.parseTagName();if(this.bumpSpace(),this.bumpIf("/>"))return{val:{type:w.literal,value:"<"+i+"/>",location:A(n,this.clonePosition())},err:null};if(this.bumpIf(">")){var o=this.parseMessage(t+1,r,!0);if(o.err)return o;var a=o.val,s=this.clonePosition();if(this.bumpIf("")?{val:{type:w.tag,value:i,children:a,location:A(n,this.clonePosition())},err:null}:this.error(b.INVALID_TAG,A(s,this.clonePosition())))}else return this.error(b.UNCLOSED_TAG,A(n,this.clonePosition()))}else return this.error(b.INVALID_TAG,A(n,this.clonePosition()))},e.prototype.parseTagName=function(){var t=this.offset();for(this.bump();!this.isEOF()&&nc(this.char());)this.bump();return this.message.slice(t,this.offset())},e.prototype.parseLiteral=function(t,r){for(var n=this.clonePosition(),i="";;){var o=this.tryParseQuote(r);if(o){i+=o;continue}var a=this.tryParseUnquoted(t,r);if(a){i+=a;continue}var s=this.tryParseLeftAngleBracket();if(s){i+=s;continue}break}var c=A(n,this.clonePosition());return{val:{type:w.literal,value:i,location:c},err:null}},e.prototype.tryParseLeftAngleBracket=function(){return!this.isEOF()&&this.char()===60&&(this.ignoreTag||!rc(this.peek()||0))?(this.bump(),"<"):null},e.prototype.tryParseQuote=function(t){if(this.isEOF()||this.char()!==39)return null;switch(this.peek()){case 39:return this.bump(),this.bump(),"'";case 123:case 60:case 62:case 125:break;case 35:if(t==="plural"||t==="selectordinal")break;return null;default:return null}this.bump();var r=[this.char()];for(this.bump();!this.isEOF();){var n=this.char();if(n===39)if(this.peek()===39)r.push(39),this.bump();else{this.bump();break}else r.push(n);this.bump()}return xn.apply(void 0,r)},e.prototype.tryParseUnquoted=function(t,r){if(this.isEOF())return null;var n=this.char();return n===60||n===123||n===35&&(r==="plural"||r==="selectordinal")||n===125&&t>0?null:(this.bump(),xn(n))},e.prototype.parseArgument=function(t,r){var n=this.clonePosition();if(this.bump(),this.bumpSpace(),this.isEOF())return this.error(b.EXPECT_ARGUMENT_CLOSING_BRACE,A(n,this.clonePosition()));if(this.char()===125)return this.bump(),this.error(b.EMPTY_ARGUMENT,A(n,this.clonePosition()));var i=this.parseIdentifierIfPossible().value;if(!i)return this.error(b.MALFORMED_ARGUMENT,A(n,this.clonePosition()));if(this.bumpSpace(),this.isEOF())return this.error(b.EXPECT_ARGUMENT_CLOSING_BRACE,A(n,this.clonePosition()));switch(this.char()){case 125:return this.bump(),{val:{type:w.argument,value:i,location:A(n,this.clonePosition())},err:null};case 44:return this.bump(),this.bumpSpace(),this.isEOF()?this.error(b.EXPECT_ARGUMENT_CLOSING_BRACE,A(n,this.clonePosition())):this.parseArgumentOptions(t,r,i,n);default:return this.error(b.MALFORMED_ARGUMENT,A(n,this.clonePosition()))}},e.prototype.parseIdentifierIfPossible=function(){var t=this.clonePosition(),r=this.offset(),n=vn(this.message,r),i=r+n.length;this.bumpTo(i);var o=this.clonePosition(),a=A(t,o);return{value:n,location:a}},e.prototype.parseArgumentOptions=function(t,r,n,i){var o,a=this.clonePosition(),s=this.parseIdentifierIfPossible().value,c=this.clonePosition();switch(s){case"":return this.error(b.EXPECT_ARGUMENT_TYPE,A(a,c));case"number":case"date":case"time":{this.bumpSpace();var h=null;if(this.bumpIf(",")){this.bumpSpace();var l=this.clonePosition(),u=this.parseSimpleArgStyleIfPossible();if(u.err)return u;var d=tc(u.val);if(d.length===0)return this.error(b.EXPECT_ARGUMENT_STYLE,A(this.clonePosition(),this.clonePosition()));var m=A(l,this.clonePosition());h={style:d,styleLocation:m}}var f=this.tryParseArgumentClose(i);if(f.err)return f;var v=A(i,this.clonePosition());if(h&&ro(h?.style,"::",0)){var T=ec(h.style.slice(2));if(s==="number"){var u=this.parseNumberSkeletonFromString(T,h.styleLocation);return u.err?u:{val:{type:w.number,value:n,location:v,style:u.val},err:null}}else{if(T.length===0)return this.error(b.EXPECT_DATE_TIME_SKELETON,v);var d={type:_e.dateTime,pattern:T,location:h.styleLocation,parsedOptions:this.shouldParseSkeletons?ji(T):{}},P=s==="date"?w.date:w.time;return{val:{type:P,value:n,location:v,style:d},err:null}}}return{val:{type:s==="number"?w.number:s==="date"?w.date:w.time,value:n,location:v,style:(o=h?.style)!==null&&o!==void 0?o:null},err:null}}case"plural":case"selectordinal":case"select":{var C=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(","))return this.error(b.EXPECT_SELECT_ARGUMENT_OPTIONS,A(C,S({},C)));this.bumpSpace();var _=this.parseIdentifierIfPossible(),U=0;if(s!=="select"&&_.value==="offset"){if(!this.bumpIf(":"))return this.error(b.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,A(this.clonePosition(),this.clonePosition()));this.bumpSpace();var u=this.tryParseDecimalInteger(b.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,b.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);if(u.err)return u;this.bumpSpace(),_=this.parseIdentifierIfPossible(),U=u.val}var L=this.tryParsePluralOrSelectOptions(t,s,r,_);if(L.err)return L;var f=this.tryParseArgumentClose(i);if(f.err)return f;var I=A(i,this.clonePosition());return s==="select"?{val:{type:w.select,value:n,options:no(L.val),location:I},err:null}:{val:{type:w.plural,value:n,options:no(L.val),offset:U,pluralType:s==="plural"?"cardinal":"ordinal",location:I},err:null}}default:return this.error(b.INVALID_ARGUMENT_TYPE,A(a,c))}},e.prototype.tryParseArgumentClose=function(t){return this.isEOF()||this.char()!==125?this.error(b.EXPECT_ARGUMENT_CLOSING_BRACE,A(t,this.clonePosition())):(this.bump(),{val:!0,err:null})},e.prototype.parseSimpleArgStyleIfPossible=function(){for(var t=0,r=this.clonePosition();!this.isEOF();){var n=this.char();switch(n){case 39:{this.bump();var i=this.clonePosition();if(!this.bumpUntil("'"))return this.error(b.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE,A(i,this.clonePosition()));this.bump();break}case 123:{t+=1,this.bump();break}case 125:{if(t>0)t-=1;else return{val:this.message.slice(r.offset,this.offset()),err:null};break}default:this.bump();break}}return{val:this.message.slice(r.offset,this.offset()),err:null}},e.prototype.parseNumberSkeletonFromString=function(t,r){var n=[];try{n=qi(t)}catch{return this.error(b.INVALID_NUMBER_SKELETON,r)}return{val:{type:_e.number,tokens:n,location:r,parsedOptions:this.shouldParseSkeletons?eo(n):{}},err:null}},e.prototype.tryParsePluralOrSelectOptions=function(t,r,n,i){for(var o,a=!1,s=[],c=new Set,h=i.value,l=i.location;;){if(h.length===0){var u=this.clonePosition();if(r!=="select"&&this.bumpIf("=")){var d=this.tryParseDecimalInteger(b.EXPECT_PLURAL_ARGUMENT_SELECTOR,b.INVALID_PLURAL_ARGUMENT_SELECTOR);if(d.err)return d;l=A(u,this.clonePosition()),h=this.message.slice(u.offset,this.offset())}else break}if(c.has(h))return this.error(r==="select"?b.DUPLICATE_SELECT_ARGUMENT_SELECTOR:b.DUPLICATE_PLURAL_ARGUMENT_SELECTOR,l);h==="other"&&(a=!0),this.bumpSpace();var m=this.clonePosition();if(!this.bumpIf("{"))return this.error(r==="select"?b.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT:b.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT,A(this.clonePosition(),this.clonePosition()));var f=this.parseMessage(t+1,r,n);if(f.err)return f;var v=this.tryParseArgumentClose(m);if(v.err)return v;s.push([h,{value:f.val,location:A(m,this.clonePosition())}]),c.add(h),this.bumpSpace(),o=this.parseIdentifierIfPossible(),h=o.value,l=o.location}return s.length===0?this.error(r==="select"?b.EXPECT_SELECT_ARGUMENT_SELECTOR:b.EXPECT_PLURAL_ARGUMENT_SELECTOR,A(this.clonePosition(),this.clonePosition())):this.requiresOtherClause&&!a?this.error(b.MISSING_OTHER_CLAUSE,A(this.clonePosition(),this.clonePosition())):{val:s,err:null}},e.prototype.tryParseDecimalInteger=function(t,r){var n=1,i=this.clonePosition();this.bumpIf("+")||this.bumpIf("-")&&(n=-1);for(var o=!1,a=0;!this.isEOF();){var s=this.char();if(s>=48&&s<=57)o=!0,a=a*10+(s-48),this.bump();else break}var c=A(i,this.clonePosition());return o?(a*=n,Qs(a)?{val:a,err:null}:this.error(r,c)):this.error(t,c)},e.prototype.offset=function(){return this.position.offset},e.prototype.isEOF=function(){return this.offset()===this.message.length},e.prototype.clonePosition=function(){return{offset:this.position.offset,line:this.position.line,column:this.position.column}},e.prototype.char=function(){var t=this.position.offset;if(t>=this.message.length)throw Error("out of bound");var r=io(this.message,t);if(r===void 0)throw Error("Offset "+t+" is at invalid UTF-16 code unit boundary");return r},e.prototype.error=function(t,r){return{val:null,err:{kind:t,message:this.message,location:r}}},e.prototype.bump=function(){if(!this.isEOF()){var t=this.char();t===10?(this.position.line+=1,this.position.column=1,this.position.offset+=1):(this.position.column+=1,this.position.offset+=t<65536?1:2)}},e.prototype.bumpIf=function(t){if(ro(this.message,t,this.offset())){for(var r=0;r=0?(this.bumpTo(n),!0):(this.bumpTo(this.message.length),!1)},e.prototype.bumpTo=function(t){if(this.offset()>t)throw Error("targetOffset "+t+" must be greater than or equal to the current offset "+this.offset());for(t=Math.min(t,this.message.length);;){var r=this.offset();if(r===t)break;if(r>t)throw Error("targetOffset "+t+" is at invalid UTF-16 code unit boundary");if(this.bump(),this.isEOF())break}},e.prototype.bumpSpace=function(){for(;!this.isEOF()&&so(this.char());)this.bump()},e.prototype.peek=function(){if(this.isEOF())return null;var t=this.char(),r=this.offset(),n=this.message.charCodeAt(r+(t>=65536?2:1));return n??null},e}();function bn(e){return e>=97&&e<=122||e>=65&&e<=90}function rc(e){return bn(e)||e===47}function nc(e){return e===45||e===46||e>=48&&e<=57||e===95||e>=97&&e<=122||e>=65&&e<=90||e==183||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8255&&e<=8256||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}function so(e){return e>=9&&e<=13||e===32||e===133||e>=8206&&e<=8207||e===8232||e===8233}function ic(e){return e>=33&&e<=35||e===36||e>=37&&e<=39||e===40||e===41||e===42||e===43||e===44||e===45||e>=46&&e<=47||e>=58&&e<=59||e>=60&&e<=62||e>=63&&e<=64||e===91||e===92||e===93||e===94||e===96||e===123||e===124||e===125||e===126||e===161||e>=162&&e<=165||e===166||e===167||e===169||e===171||e===172||e===174||e===176||e===177||e===182||e===187||e===191||e===215||e===247||e>=8208&&e<=8213||e>=8214&&e<=8215||e===8216||e===8217||e===8218||e>=8219&&e<=8220||e===8221||e===8222||e===8223||e>=8224&&e<=8231||e>=8240&&e<=8248||e===8249||e===8250||e>=8251&&e<=8254||e>=8257&&e<=8259||e===8260||e===8261||e===8262||e>=8263&&e<=8273||e===8274||e===8275||e>=8277&&e<=8286||e>=8592&&e<=8596||e>=8597&&e<=8601||e>=8602&&e<=8603||e>=8604&&e<=8607||e===8608||e>=8609&&e<=8610||e===8611||e>=8612&&e<=8613||e===8614||e>=8615&&e<=8621||e===8622||e>=8623&&e<=8653||e>=8654&&e<=8655||e>=8656&&e<=8657||e===8658||e===8659||e===8660||e>=8661&&e<=8691||e>=8692&&e<=8959||e>=8960&&e<=8967||e===8968||e===8969||e===8970||e===8971||e>=8972&&e<=8991||e>=8992&&e<=8993||e>=8994&&e<=9e3||e===9001||e===9002||e>=9003&&e<=9083||e===9084||e>=9085&&e<=9114||e>=9115&&e<=9139||e>=9140&&e<=9179||e>=9180&&e<=9185||e>=9186&&e<=9254||e>=9255&&e<=9279||e>=9280&&e<=9290||e>=9291&&e<=9311||e>=9472&&e<=9654||e===9655||e>=9656&&e<=9664||e===9665||e>=9666&&e<=9719||e>=9720&&e<=9727||e>=9728&&e<=9838||e===9839||e>=9840&&e<=10087||e===10088||e===10089||e===10090||e===10091||e===10092||e===10093||e===10094||e===10095||e===10096||e===10097||e===10098||e===10099||e===10100||e===10101||e>=10132&&e<=10175||e>=10176&&e<=10180||e===10181||e===10182||e>=10183&&e<=10213||e===10214||e===10215||e===10216||e===10217||e===10218||e===10219||e===10220||e===10221||e===10222||e===10223||e>=10224&&e<=10239||e>=10240&&e<=10495||e>=10496&&e<=10626||e===10627||e===10628||e===10629||e===10630||e===10631||e===10632||e===10633||e===10634||e===10635||e===10636||e===10637||e===10638||e===10639||e===10640||e===10641||e===10642||e===10643||e===10644||e===10645||e===10646||e===10647||e===10648||e>=10649&&e<=10711||e===10712||e===10713||e===10714||e===10715||e>=10716&&e<=10747||e===10748||e===10749||e>=10750&&e<=11007||e>=11008&&e<=11055||e>=11056&&e<=11076||e>=11077&&e<=11078||e>=11079&&e<=11084||e>=11085&&e<=11123||e>=11124&&e<=11125||e>=11126&&e<=11157||e===11158||e>=11159&&e<=11263||e>=11776&&e<=11777||e===11778||e===11779||e===11780||e===11781||e>=11782&&e<=11784||e===11785||e===11786||e===11787||e===11788||e===11789||e>=11790&&e<=11798||e===11799||e>=11800&&e<=11801||e===11802||e===11803||e===11804||e===11805||e>=11806&&e<=11807||e===11808||e===11809||e===11810||e===11811||e===11812||e===11813||e===11814||e===11815||e===11816||e===11817||e>=11818&&e<=11822||e===11823||e>=11824&&e<=11833||e>=11834&&e<=11835||e>=11836&&e<=11839||e===11840||e===11841||e===11842||e>=11843&&e<=11855||e>=11856&&e<=11857||e===11858||e>=11859&&e<=11903||e>=12289&&e<=12291||e===12296||e===12297||e===12298||e===12299||e===12300||e===12301||e===12302||e===12303||e===12304||e===12305||e>=12306&&e<=12307||e===12308||e===12309||e===12310||e===12311||e===12312||e===12313||e===12314||e===12315||e===12316||e===12317||e>=12318&&e<=12319||e===12320||e===12336||e===64830||e===64831||e>=65093&&e<=65094}function An(e){e.forEach(function(t){if(delete t.location,rr(t)||nr(t))for(var r in t.options)delete t.options[r].location,An(t.options[r].value);else Qt(t)&&or(t.style)||(er(t)||tr(t))&&Et(t.style)?delete t.style.location:ir(t)&&An(t.children)})}function co(e,t){t===void 0&&(t={}),t=S({shouldParseSkeletons:!0,requiresOtherClause:!0},t);var r=new ao(e,t).parse();if(r.err){var n=SyntaxError(b[r.err.kind]);throw n.location=r.err.location,n.originalMessage=r.err.message,n}return t?.captureLocation||An(r.val),r.val}function Tt(e,t){var r=t&&t.cache?t.cache:hc,n=t&&t.serializer?t.serializer:lc,i=t&&t.strategy?t.strategy:ac;return i(e,{cache:r,serializer:n})}function oc(e){return e==null||typeof e=="number"||typeof e=="boolean"}function lo(e,t,r,n){var i=oc(n)?n:r(n),o=t.get(i);return typeof o>"u"&&(o=e.call(this,n),t.set(i,o)),o}function ho(e,t,r){var n=Array.prototype.slice.call(arguments,3),i=r(n),o=t.get(i);return typeof o>"u"&&(o=e.apply(this,n),t.set(i,o)),o}function Sn(e,t,r,n,i){return r.bind(t,e,n,i)}function ac(e,t){var r=e.length===1?lo:ho;return Sn(e,this,r,t.cache.create(),t.serializer)}function sc(e,t){return Sn(e,this,ho,t.cache.create(),t.serializer)}function cc(e,t){return Sn(e,this,lo,t.cache.create(),t.serializer)}var lc=function(){return JSON.stringify(arguments)};function En(){this.cache=Object.create(null)}En.prototype.get=function(e){return this.cache[e]};En.prototype.set=function(e,t){this.cache[e]=t};var hc={create:function(){return new En}},ar={variadic:sc,monadic:cc};var Le;(function(e){e.MISSING_VALUE="MISSING_VALUE",e.INVALID_VALUE="INVALID_VALUE",e.MISSING_INTL_API="MISSING_INTL_API"})(Le||(Le={}));var yt=function(e){St(t,e);function t(r,n,i){var o=e.call(this,r)||this;return o.code=n,o.originalMessage=i,o}return t.prototype.toString=function(){return"[formatjs Error: "+this.code+"] "+this.message},t}(Error);var Tn=function(e){St(t,e);function t(r,n,i,o){return e.call(this,'Invalid values for "'+r+'": "'+n+'". Options are "'+Object.keys(i).join('", "')+'"',Le.INVALID_VALUE,o)||this}return t}(yt);var uo=function(e){St(t,e);function t(r,n,i){return e.call(this,'Value for "'+r+'" must be of type '+n,Le.INVALID_VALUE,i)||this}return t}(yt);var mo=function(e){St(t,e);function t(r,n){return e.call(this,'The intl string context variable "'+r+'" was not provided to the string "'+n+'"',Le.MISSING_VALUE,n)||this}return t}(yt);var z;(function(e){e[e.literal=0]="literal",e[e.object=1]="object"})(z||(z={}));function uc(e){return e.length<2?e:e.reduce(function(t,r){var n=t[t.length-1];return!n||n.type!==z.literal||r.type!==z.literal?t.push(r):n.value+=r.value,t},[])}function dc(e){return typeof e=="function"}function _t(e,t,r,n,i,o,a){if(e.length===1&&dn(e[0]))return[{type:z.literal,value:e[0].value}];for(var s=[],c=0,h=e;c{throw TypeError(e)};var us=(e,t,r)=>t in e?Xt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var ds=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ms=(e,t)=>{for(var r in t)Xt(e,r,{get:t[r],enumerable:!0})},ps=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of cs(t))!hs.call(e,i)&&i!==r&&Xt(e,i,{get:()=>t[i],enumerable:!(n=ss(t,i))||n.enumerable});return e};var fs=(e,t,r)=>(r=e!=null?as(ls(e)):{},ps(t||!e||!e.__esModule?Xt(r,"default",{value:e,enumerable:!0}):r,e));var p=(e,t,r)=>us(e,typeof t!="symbol"?t+"":t,r),Ur=(e,t,r)=>t.has(e)||Vi("Cannot "+r);var B=(e,t,r)=>(Ur(e,t,"read from private field"),r?r.call(e):t.get(e)),J=(e,t,r)=>t.has(e)?Vi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),xt=(e,t,r,n)=>(Ur(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),He=(e,t,r)=>(Ur(e,t,"access private method"),r);var Ko=ds((Xu,sl)=>{sl.exports={total:38,offset:0,limit:38,data:[{lang:"ar",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u0627\u0644\u0634\u0647\u0631} YEAR {/\u0627\u0644\u0639\u0627\u0645} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u0643\u0644 \u0634\u0647\u0631} YEAR {\u0643\u0644 \u0639\u0627\u0645} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u0644\u0643\u0644 \u062A\u0631\u062E\u064A\u0635} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u0644\u0643\u0644 \u062A\u0631\u062E\u064A\u0635} other {}}",freeLabel:"\u0645\u062C\u0627\u0646\u064B\u0627",freeAriaLabel:"\u0645\u062C\u0627\u0646\u064B\u0627",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"\u0623\u0648 \u0628\u062F\u0644\u0627\u064B \u0645\u0646 \u0630\u0644\u0643 \u0628\u0642\u064A\u0645\u0629 {alternativePrice}",strikethroughAriaLabel:"\u0628\u0634\u0643\u0644 \u0645\u0646\u062A\u0638\u0645 \u0628\u0642\u064A\u0645\u0629 {strikethroughPrice}"},{lang:"bg",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u043C\u0435\u0441.} YEAR {/\u0433\u043E\u0434.} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u043D\u0430 \u043C\u0435\u0441\u0435\u0446} YEAR {\u043D\u0430 \u0433\u043E\u0434\u0438\u043D\u0430} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u043D\u0430 \u043B\u0438\u0446\u0435\u043D\u0437} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u043D\u0430 \u043B\u0438\u0446\u0435\u043D\u0437} other {}}",freeLabel:"\u0411\u0435\u0437\u043F\u043B\u0430\u0442\u043D\u043E",freeAriaLabel:"\u0411\u0435\u0437\u043F\u043B\u0430\u0442\u043D\u043E",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"\u0410\u043B\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u043E \u043D\u0430 {alternativePrice}",strikethroughAriaLabel:"\u0420\u0435\u0434\u043E\u0432\u043D\u043E \u043D\u0430 {strikethroughPrice}"},{lang:"cs",recurrenceLabel:"{recurrenceTerm, select, MONTH {/m\u011Bs\xEDc} YEAR {/rok} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {za m\u011Bs\xEDc} YEAR {za rok} other {}}",perUnitLabel:"{perUnit, select, LICENSE {za licenci} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {za licenci} other {}}",freeLabel:"Zdarma",freeAriaLabel:"Zdarma",taxExclusiveLabel:"{taxTerm, select, GST {bez dan\u011B ze zbo\u017E\xED a slu\u017Eeb} VAT {bez DPH} TAX {bez dan\u011B} IVA {bez IVA} SST {bez SST} KDV {bez KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {v\u010Detn\u011B dan\u011B ze zbo\u017E\xED a slu\u017Eeb} VAT {v\u010Detn\u011B DPH} TAX {v\u010Detn\u011B dan\u011B} IVA {v\u010Detn\u011B IVA} SST {v\u010Detn\u011B SST} KDV {v\u010Detn\u011B KDV} other {}}",alternativePriceAriaLabel:"P\u0159\xEDpadn\u011B za {alternativePrice}",strikethroughAriaLabel:"Pravideln\u011B za {strikethroughPrice}"},{lang:"da",recurrenceLabel:"{recurrenceTerm, select, MONTH {/md} YEAR {/\xE5r} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {pr. m\xE5ned} YEAR {pr. \xE5r} other {}}",perUnitLabel:"{perUnit, select, LICENSE {pr. licens} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {pr. licens} other {}}",freeLabel:"Gratis",freeAriaLabel:"Gratis",taxExclusiveLabel:"{taxTerm, select, GST {ekskl. GST} VAT {ekskl. moms} TAX {ekskl. skat} IVA {ekskl. IVA} SST {ekskl. SST} KDV {ekskl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {inkl. GST} VAT {inkl. moms} TAX {inkl. skat} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}",alternativePriceAriaLabel:"Alternativt til {alternativePrice}",strikethroughAriaLabel:"Normalpris {strikethroughPrice}"},{lang:"de",recurrenceLabel:"{recurrenceTerm, select, MONTH {/Monat} YEAR {/Jahr} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {pro Monat} YEAR {pro Jahr} other {}}",perUnitLabel:"{perUnit, select, LICENSE {pro Lizenz} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {pro Lizenz} other {}}",freeLabel:"Kostenlos",freeAriaLabel:"Kostenlos",taxExclusiveLabel:"{taxTerm, select, GST {zzgl. GST} VAT {zzgl. MwSt.} TAX {zzgl. Steuern} IVA {zzgl. IVA} SST {zzgl. SST} KDV {zzgl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {inkl. GST} VAT {inkl. MwSt.} TAX {inkl. Steuern} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}",alternativePriceAriaLabel:"Alternativ: {alternativePrice}",strikethroughAriaLabel:"Regul\xE4r: {strikethroughPrice}"},{lang:"en",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mo} YEAR {/yr} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per month} YEAR {per year} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per license} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per license} other {}}",freeLabel:"Free",freeAriaLabel:"Free",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Alternatively at {alternativePrice}",strikethroughAriaLabel:"Regularly at {strikethroughPrice}"},{lang:"et",recurrenceLabel:"{recurrenceTerm, select, MONTH {kuus} YEAR {aastas} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {kuus} YEAR {aastas} other {}}",perUnitLabel:"{perUnit, select, LICENSE {litsentsi kohta} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {litsentsi kohta} other {}}",freeLabel:"Tasuta",freeAriaLabel:"Tasuta",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Teise v\xF5imalusena hinnaga {alternativePrice}",strikethroughAriaLabel:"Tavahind {strikethroughPrice}"},{lang:"fi",recurrenceLabel:"{recurrenceTerm, select, MONTH {/kk} YEAR {/v} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {kuukausittain} YEAR {vuosittain} other {}}",perUnitLabel:"{perUnit, select, LICENSE {k\xE4ytt\xF6oikeutta kohti} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {k\xE4ytt\xF6oikeutta kohti} other {}}",freeLabel:"Maksuton",freeAriaLabel:"Maksuton",taxExclusiveLabel:"{taxTerm, select, GST {ilman GST:t\xE4} VAT {ilman ALV:t\xE4} TAX {ilman veroja} IVA {ilman IVA:ta} SST {ilman SST:t\xE4} KDV {ilman KDV:t\xE4} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {sis. GST:n} VAT {sis. ALV:n} TAX {sis. verot} IVA {sis. IVA:n} SST {sis. SST:n} KDV {sis. KDV:n} other {}}",alternativePriceAriaLabel:"Vaihtoehtoisesti hintaan {alternativePrice}",strikethroughAriaLabel:"S\xE4\xE4nn\xF6llisesti hintaan {strikethroughPrice}"},{lang:"fr",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mois} YEAR {/an} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {par mois} YEAR {par an} other {}}",perUnitLabel:"{perUnit, select, LICENSE {par licence} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {par licence} other {}}",freeLabel:"Gratuit",freeAriaLabel:"Gratuit",taxExclusiveLabel:"{taxTerm, select, GST {hors TPS} VAT {hors TVA} TAX {hors taxes} IVA {hors IVA} SST {hors SST} KDV {hors KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {TPS comprise} VAT {TVA comprise} TAX {taxes comprises} IVA {IVA comprise} SST {SST comprise} KDV {KDV comprise} other {}}",alternativePriceAriaLabel:"Autre prix {alternativePrice}",strikethroughAriaLabel:"Prix habituel {strikethroughPrice}"},{lang:"he",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u05D7\u05D5\u05D3\u05E9} YEAR {/\u05E9\u05E0\u05D4} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u05DC\u05D7\u05D5\u05D3\u05E9} YEAR {\u05DC\u05E9\u05E0\u05D4} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}",freeLabel:"\u05D7\u05D9\u05E0\u05DD",freeAriaLabel:"\u05D7\u05D9\u05E0\u05DD",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"\u05DC\u05D7\u05DC\u05D5\u05E4\u05D9\u05DF \u05D1-{alternativePrice}",strikethroughAriaLabel:"\u05D1\u05D0\u05D5\u05E4\u05DF \u05E7\u05D1\u05D5\u05E2 \u05D1-{strikethroughPrice}"},{lang:"hu",recurrenceLabel:"{recurrenceTerm, select, MONTH {/h\xF3} YEAR {/\xE9v} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {havonta} YEAR {\xE9vente} other {}}",perUnitLabel:"{perUnit, select, LICENSE {licencenk\xE9nt} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {licencenk\xE9nt} other {}}",freeLabel:"Ingyenes",freeAriaLabel:"Ingyenes",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"M\xE1sik lehet\u0151s\xE9g: {alternativePrice}",strikethroughAriaLabel:"\xC1ltal\xE1ban {strikethroughPrice} \xE1ron"},{lang:"it",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mese} YEAR {/anno} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {al mese} YEAR {all'anno} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per licenza} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per licenza} other {}}",freeLabel:"Gratuito",freeAriaLabel:"Gratuito",taxExclusiveLabel:"{taxTerm, select, GST {escl. GST} VAT {escl. IVA.} TAX {escl. imposte} IVA {escl. IVA} SST {escl. SST} KDV {escl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. IVA} TAX {incl. imposte} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"In alternativa a {alternativePrice}",strikethroughAriaLabel:"Regolarmente a {strikethroughPrice}"},{lang:"ja",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u6708} YEAR {/\u5E74} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u6BCE\u6708} YEAR {\u6BCE\u5E74} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u30E9\u30A4\u30BB\u30F3\u30B9\u3054\u3068} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u30E9\u30A4\u30BB\u30F3\u30B9\u3054\u3068} other {}}",freeLabel:"\u7121\u6599",freeAriaLabel:"\u7121\u6599",taxExclusiveLabel:"{taxTerm, select, GST {GST \u5225} VAT {VAT \u5225} TAX {\u7A0E\u5225} IVA {IVA \u5225} SST {SST \u5225} KDV {KDV \u5225} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {GST \u8FBC} VAT {VAT \u8FBC} TAX {\u7A0E\u8FBC} IVA {IVA \u8FBC} SST {SST \u8FBC} KDV {KDV \u8FBC} other {}}",alternativePriceAriaLabel:"\u7279\u5225\u4FA1\u683C : {alternativePrice}",strikethroughAriaLabel:"\u901A\u5E38\u4FA1\u683C : {strikethroughPrice}"},{lang:"ko",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\uC6D4} YEAR {/\uB144} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\uC6D4\uAC04} YEAR {\uC5F0\uAC04} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\uB77C\uC774\uC120\uC2A4\uB2F9} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\uB77C\uC774\uC120\uC2A4\uB2F9} other {}}",freeLabel:"\uBB34\uB8CC",freeAriaLabel:"\uBB34\uB8CC",taxExclusiveLabel:"{taxTerm, select, GST {GST \uC81C\uC678} VAT {VAT \uC81C\uC678} TAX {\uC138\uAE08 \uC81C\uC678} IVA {IVA \uC81C\uC678} SST {SST \uC81C\uC678} KDV {KDV \uC81C\uC678} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {GST \uD3EC\uD568} VAT {VAT \uD3EC\uD568} TAX {\uC138\uAE08 \uD3EC\uD568} IVA {IVA \uD3EC\uD568} SST {SST \uD3EC\uD568} KDV {KDV \uD3EC\uD568} other {}}",alternativePriceAriaLabel:"\uB610\uB294 {alternativePrice}\uC5D0",strikethroughAriaLabel:"\uB610\uB294 {alternativePrice}\uC5D0"},{lang:"lt",recurrenceLabel:"{recurrenceTerm, select, MONTH { per m\u0117n.} YEAR { per metus} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per m\u0117n.} YEAR {per metus} other {}}",perUnitLabel:"{perUnit, select, LICENSE {u\u017E licencij\u0105} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {u\u017E licencij\u0105} other {}}",freeLabel:"Nemokamai",freeAriaLabel:"Nemokamai",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Arba u\u017E {alternativePrice}",strikethroughAriaLabel:"Normaliai u\u017E {strikethroughPrice}"},{lang:"lv",recurrenceLabel:"{recurrenceTerm, select, MONTH {m\u0113nes\u012B} YEAR {gad\u0101} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {m\u0113nes\u012B} YEAR {gad\u0101} other {}}",perUnitLabel:"{perUnit, select, LICENSE {vienai licencei} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {vienai licencei} other {}}",freeLabel:"Bezmaksas",freeAriaLabel:"Bezmaksas",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Alternat\u012Bvi par {alternativePrice}",strikethroughAriaLabel:"Regul\u0101ri par {strikethroughPrice}"},{lang:"nb",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mnd.} YEAR {/\xE5r} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per m\xE5ned} YEAR {per \xE5r} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per lisens} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per lisens} other {}}",freeLabel:"Fri",freeAriaLabel:"Fri",taxExclusiveLabel:"{taxTerm, select, GST {ekskl. GST} VAT {ekskl. moms} TAX {ekskl. avgift} IVA {ekskl. IVA} SST {ekskl. SST} KDV {ekskl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {inkl. GST} VAT {inkl. moms} TAX {inkl. avgift} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}",alternativePriceAriaLabel:"Alternativt til {alternativePrice}",strikethroughAriaLabel:"Regelmessig til {strikethroughPrice}"},{lang:"nl",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mnd} YEAR {/jr} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per maand} YEAR {per jaar} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per licentie} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per licentie} other {}}",freeLabel:"Gratis",freeAriaLabel:"Gratis",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. btw} TAX {excl. belasting} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. btw} TAX {incl. belasting} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Nu {alternativePrice}",strikethroughAriaLabel:"Normaal {strikethroughPrice}"},{lang:"pl",recurrenceLabel:"{recurrenceTerm, select, MONTH { / mies.} YEAR { / rok} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH { / miesi\u0105c} YEAR { / rok} other {}}",perUnitLabel:"{perUnit, select, LICENSE {za licencj\u0119} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {za licencj\u0119} other {}}",freeLabel:"Bezp\u0142atne",freeAriaLabel:"Bezp\u0142atne",taxExclusiveLabel:"{taxTerm, select, GST {bez GST} VAT {bez VAT} TAX {netto} IVA {bez IVA} SST {bez SST} KDV {bez KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {z GST} VAT {z VAT} TAX {brutto} IVA {z IVA} SST {z SST} KDV {z KDV} other {}}",alternativePriceAriaLabel:"Lub za {alternativePrice}",strikethroughAriaLabel:"Cena zwyk\u0142a: {strikethroughPrice}"},{lang:"pt",recurrenceLabel:"{recurrenceTerm, select, MONTH {/m\xEAs} YEAR {/ano} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {por m\xEAs} YEAR {por ano} other {}}",perUnitLabel:"{perUnit, select, LICENSE {por licen\xE7a} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {por licen\xE7a} other {}}",freeLabel:"Gratuito",freeAriaLabel:"Gratuito",taxExclusiveLabel:"{taxTerm, select, GST {ICMS n\xE3o incluso} VAT {IVA n\xE3o incluso} TAX {impostos n\xE3o inclusos} IVA {IVA n\xE3o incluso} SST { SST n\xE3o incluso} KDV {KDV n\xE3o incluso} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {ICMS incluso} VAT {IVA incluso} TAX {impostos inclusos} IVA {IVA incluso} SST {SST incluso} KDV {KDV incluso} other {}}",alternativePriceAriaLabel:"Ou a {alternativePrice}",strikethroughAriaLabel:"Pre\xE7o normal: {strikethroughPrice}"},{lang:"ro",recurrenceLabel:"{recurrenceTerm, select, MONTH {/lun\u0103} YEAR {/an} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {pe lun\u0103} YEAR {pe an} other {}}",perUnitLabel:"{perUnit, select, LICENSE {pe licen\u021B\u0103} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {pe licen\u021B\u0103} other {}}",freeLabel:"Gratuit",freeAriaLabel:"Gratuit",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Alternativ, la {alternativePrice}",strikethroughAriaLabel:"\xCEn mod normal, la {strikethroughPrice}"},{lang:"ru",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u043C\u0435\u0441.} YEAR {/\u0433.} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u0432 \u043C\u0435\u0441\u044F\u0446} YEAR {\u0432 \u0433\u043E\u0434} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u044E} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u044E} other {}}",freeLabel:"\u0411\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E",freeAriaLabel:"\u0411\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E",taxExclusiveLabel:"{taxTerm, select, GST {\u0438\u0441\u043A\u043B. \u043D\u0430\u043B\u043E\u0433 \u043D\u0430 \u0442\u043E\u0432\u0430\u0440\u044B \u0438 \u0443\u0441\u043B\u0443\u0433\u0438} VAT {\u0438\u0441\u043A\u043B. \u041D\u0414\u0421} TAX {\u0438\u0441\u043A\u043B. \u043D\u0430\u043B\u043E\u0433} IVA {\u0438\u0441\u043A\u043B. \u0418\u0412\u0410} SST {\u0438\u0441\u043A\u043B. SST} KDV {\u0438\u0441\u043A\u043B. \u041A\u0414\u0412} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {\u0432\u043A\u043B. \u043D\u0430\u043B\u043E\u0433 \u043D\u0430 \u0442\u043E\u0432\u0430\u0440\u044B \u0438 \u0443\u0441\u043B\u0443\u0433\u0438} VAT {\u0432\u043A\u043B. \u041D\u0414\u0421} TAX {\u0432\u043A\u043B. \u043D\u0430\u043B\u043E\u0433} IVA {\u0432\u043A\u043B. \u0418\u0412\u0410} SST {\u0432\u043A\u043B. SST} KDV {\u0432\u043A\u043B. \u041A\u0414\u0412} other {}}",alternativePriceAriaLabel:"\u0410\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0437\u0430 {alternativePrice}",strikethroughAriaLabel:"\u0420\u0435\u0433\u0443\u043B\u044F\u0440\u043D\u043E \u043F\u043E \u0446\u0435\u043D\u0435 {strikethroughPrice}"},{lang:"sk",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mesiac} YEAR {/rok} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {za mesiac} YEAR {za rok} other {}}",perUnitLabel:"{perUnit, select, LICENSE {za licenciu} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {za licenciu} other {}}",freeLabel:"Zadarmo",freeAriaLabel:"Zadarmo",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Pr\xEDpadne za {alternativePrice}",strikethroughAriaLabel:"Pravidelne za {strikethroughPrice}"},{lang:"sl",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mesec} YEAR {/leto} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {na mesec} YEAR {na leto} other {}}",perUnitLabel:"{perUnit, select, LICENSE {na licenco} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {na licenco} other {}}",freeLabel:"Brezpla\u010Dno",freeAriaLabel:"Brezpla\u010Dno",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Druga mo\u017Enost je: {alternativePrice}",strikethroughAriaLabel:"Redno po {strikethroughPrice}"},{lang:"sv",recurrenceLabel:"{recurrenceTerm, select, MONTH {/m\xE5n} YEAR {/\xE5r} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per m\xE5nad} YEAR {per \xE5r} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per licens} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per licens} other {}}",freeLabel:"Kostnadsfritt",freeAriaLabel:"Kostnadsfritt",taxExclusiveLabel:"{taxTerm, select, GST {exkl. GST} VAT {exkl. moms} TAX {exkl. skatt} IVA {exkl. IVA} SST {exkl. SST} KDV {exkl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {inkl. GST} VAT {inkl. moms} TAX {inkl. skatt} IVA {inkl. IVA} SST {inkl. SST} KDV {inkl. KDV} other {}}",alternativePriceAriaLabel:"Alternativt f\xF6r {alternativePrice}",strikethroughAriaLabel:"Normalpris {strikethroughPrice}"},{lang:"tr",recurrenceLabel:"{recurrenceTerm, select, MONTH {/ay} YEAR {/y\u0131l} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {(ayl\u0131k)} YEAR {(y\u0131ll\u0131k)} other {}}",perUnitLabel:"{perUnit, select, LICENSE {(lisans ba\u015F\u0131na)} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {(lisans ba\u015F\u0131na)} other {}}",freeLabel:"\xDCcretsiz",freeAriaLabel:"\xDCcretsiz",taxExclusiveLabel:"{taxTerm, select, GST {GST hari\xE7} VAT {KDV hari\xE7} TAX {vergi hari\xE7} IVA {IVA hari\xE7} SST {SST hari\xE7} KDV {KDV hari\xE7} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {GST dahil} VAT {KDV dahil} TAX {vergi dahil} IVA {IVA dahil} SST {SST dahil} KDV {KDV dahil} other {}}",alternativePriceAriaLabel:"Ya da {alternativePrice}",strikethroughAriaLabel:"Standart fiyat: {strikethroughPrice}"},{lang:"uk",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u043C\u0456\u0441.} YEAR {/\u0440\u0456\u043A} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u043D\u0430 \u043C\u0456\u0441\u044F\u0446\u044C} YEAR {\u043D\u0430 \u0440\u0456\u043A} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0456\u0446\u0435\u043D\u0437\u0456\u044E} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u0437\u0430 \u043B\u0456\u0446\u0435\u043D\u0437\u0456\u044E} other {}}",freeLabel:"\u0411\u0435\u0437\u043A\u043E\u0448\u0442\u043E\u0432\u043D\u043E",freeAriaLabel:"\u0411\u0435\u0437\u043A\u043E\u0448\u0442\u043E\u0432\u043D\u043E",taxExclusiveLabel:"{taxTerm, select, GST {\u0431\u0435\u0437 GST} VAT {\u0431\u0435\u0437 \u041F\u0414\u0412} TAX {\u0431\u0435\u0437 \u043F\u043E\u0434\u0430\u0442\u043A\u0443} IVA {\u0431\u0435\u0437 IVA} SST {\u0431\u0435\u0437 SST} KDV {\u0431\u0435\u0437 KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 GST} VAT {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 \u041F\u0414\u0412} TAX {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 \u043F\u043E\u0434\u0430\u0442\u043A\u043E\u043C} IVA {\u0440\u0430\u0437\u043E\u043C \u0437 IVA} SST {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 SST} KDV {\u0440\u0430\u0437\u043E\u043C \u0456\u0437 KDV} other {}}",alternativePriceAriaLabel:"\u0410\u0431\u043E \u0437\u0430 {alternativePrice}",strikethroughAriaLabel:"\u0417\u0432\u0438\u0447\u0430\u0439\u043D\u0430 \u0446\u0456\u043D\u0430 {strikethroughPrice}"},{lang:"zh-hans",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u6708} YEAR {/\u5E74} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u6BCF\u6708} YEAR {\u6BCF\u5E74} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u6BCF\u4E2A\u8BB8\u53EF\u8BC1} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u6BCF\u4E2A\u8BB8\u53EF\u8BC1} other {}}",freeLabel:"\u514D\u8D39",freeAriaLabel:"\u514D\u8D39",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"\u6216\u5B9A\u4EF7 {alternativePrice}",strikethroughAriaLabel:"\u6B63\u5E38\u4EF7 {strikethroughPrice}"},{lang:"zh-hant",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u6708} YEAR {/\u5E74} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u6BCF\u6708} YEAR {\u6BCF\u5E74} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u6BCF\u500B\u6388\u6B0A} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u6BCF\u500B\u6388\u6B0A} other {}}",freeLabel:"\u514D\u8CBB",freeAriaLabel:"\u514D\u8CBB",taxExclusiveLabel:"{taxTerm, select, GST {\u4E0D\u542B GST} VAT {\u4E0D\u542B VAT} TAX {\u4E0D\u542B\u7A05} IVA {\u4E0D\u542B IVA} SST {\u4E0D\u542B SST} KDV {\u4E0D\u542B KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {\u542B GST} VAT {\u542B VAT} TAX {\u542B\u7A05} IVA {\u542B IVA} SST {\u542B SST} KDV {\u542B KDV} other {}}",alternativePriceAriaLabel:"\u6216\u8005\u5728 {alternativePrice}",strikethroughAriaLabel:"\u6A19\u6E96\u50F9\u683C\u70BA {strikethroughPrice}"},{lang:"es",recurrenceLabel:"{recurrenceTerm, select, MONTH {/mes} YEAR {/a\xF1o} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {al mes} YEAR {al a\xF1o} other {}}",perUnitLabel:"{perUnit, select, LICENSE {por licencia} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {por licencia} other {}}",freeLabel:"Gratuito",freeAriaLabel:"Gratuito",taxExclusiveLabel:"{taxTerm, select, GST {GST no incluido} VAT {IVA no incluido} TAX {Impuestos no incluidos} IVA {IVA no incluido} SST {SST no incluido} KDV {KDV no incluido} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {GST incluido} VAT {IVA incluido} TAX {Impuestos incluidos} IVA {IVA incluido} SST {SST incluido} KDV {KDV incluido} other {}}",alternativePriceAriaLabel:"Alternativamente por {alternativePrice}",strikethroughAriaLabel:"Normalmente a {strikethroughPrice}"},{lang:"in",recurrenceLabel:"{recurrenceTerm, select, MONTH {/bulan} YEAR {/tahun} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per bulan} YEAR {per tahun} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per lisensi} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per lisensi} other {}}",freeLabel:"Gratis",freeAriaLabel:"Gratis",taxExclusiveLabel:"{taxTerm, select, GST {tidak termasuk PBJ} VAT {tidak termasuk PPN} TAX {tidak termasuk pajak} IVA {tidak termasuk IVA} SST {tidak termasuk SST} KDV {tidak termasuk KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {termasuk PBJ} VAT {termasuk PPN} TAX {termasuk pajak} IVA {termasuk IVA} SST {termasuk SST} KDV {termasuk KDV} other {}}",alternativePriceAriaLabel:"Atau seharga {alternativePrice}",strikethroughAriaLabel:"Normalnya seharga {strikethroughPrice}"},{lang:"vi",recurrenceLabel:"{recurrenceTerm, select, MONTH {/th\xE1ng} YEAR {/n\u0103m} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {m\u1ED7i th\xE1ng} YEAR {m\u1ED7i n\u0103m} other {}}",perUnitLabel:"{perUnit, select, LICENSE {m\u1ED7i gi\u1EA5y ph\xE9p} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {m\u1ED7i gi\u1EA5y ph\xE9p} other {}}",freeLabel:"Mi\u1EC5n ph\xED",freeAriaLabel:"Mi\u1EC5n ph\xED",taxExclusiveLabel:"{taxTerm, select, GST {ch\u01B0a bao g\u1ED3m thu\u1EBF h\xE0ng h\xF3a v\xE0 d\u1ECBch v\u1EE5} VAT {ch\u01B0a bao g\u1ED3m thu\u1EBF GTGT} TAX {ch\u01B0a bao g\u1ED3m thu\u1EBF} IVA {ch\u01B0a bao g\u1ED3m IVA} SST {ch\u01B0a bao g\u1ED3m SST} KDV {ch\u01B0a bao g\u1ED3m KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {(\u0111\xE3 bao g\u1ED3m thu\u1EBF h\xE0ng h\xF3a v\xE0 d\u1ECBch v\u1EE5)} VAT {(\u0111\xE3 bao g\u1ED3m thu\u1EBF GTGT)} TAX {(\u0111\xE3 bao g\u1ED3m thu\u1EBF)} IVA {(\u0111\xE3 bao g\u1ED3m IVA)} SST {(\u0111\xE3 bao g\u1ED3m SST)} KDV {(\u0111\xE3 bao g\u1ED3m KDV)} other {}}",alternativePriceAriaLabel:"Gi\xE1 \u01B0u \u0111\xE3i {alternativePrice}",strikethroughAriaLabel:"Gi\xE1 th\xF4ng th\u01B0\u1EDDng {strikethroughPrice}"},{lang:"th",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u0E40\u0E14\u0E37\u0E2D\u0E19} YEAR {/\u0E1B\u0E35} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u0E15\u0E48\u0E2D\u0E40\u0E14\u0E37\u0E2D\u0E19} YEAR {\u0E15\u0E48\u0E2D\u0E1B\u0E35} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u0E15\u0E48\u0E2D\u0E2A\u0E34\u0E17\u0E18\u0E34\u0E4C\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u0E15\u0E48\u0E2D\u0E2A\u0E34\u0E17\u0E18\u0E34\u0E4C\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19} other {}}",freeLabel:"\u0E1F\u0E23\u0E35",freeAriaLabel:"\u0E1F\u0E23\u0E35",taxExclusiveLabel:"{taxTerm, select, GST {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35 GST} VAT {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 VAT} TAX {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35} IVA {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 IVA} SST {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 SST} KDV {\u0E44\u0E21\u0E48\u0E23\u0E27\u0E21 KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35 GST} VAT {\u0E23\u0E27\u0E21 VAT} TAX {\u0E23\u0E27\u0E21\u0E20\u0E32\u0E29\u0E35} IVA {\u0E23\u0E27\u0E21 IVA} SST {\u0E23\u0E27\u0E21 SST} KDV {\u0E23\u0E27\u0E21 KDV} other {}}",alternativePriceAriaLabel:"\u0E23\u0E32\u0E04\u0E32\u0E1E\u0E34\u0E40\u0E28\u0E29 {alternativePrice}",strikethroughAriaLabel:"\u0E23\u0E32\u0E04\u0E32\u0E1B\u0E01\u0E15\u0E34 {strikethroughPrice}"},{lang:"el",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u03BC\u03AE\u03BD\u03B1} YEAR {/\u03AD\u03C4\u03BF\u03C2} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u03BA\u03AC\u03B8\u03B5 \u03BC\u03AE\u03BD\u03B1} YEAR {\u03B1\u03BD\u03AC \u03AD\u03C4\u03BF\u03C2} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u03B1\u03BD\u03AC \u03AC\u03B4\u03B5\u03B9\u03B1 \u03C7\u03C1\u03AE\u03C3\u03B7\u03C2} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u03B1\u03BD\u03AC \u03AC\u03B4\u03B5\u03B9\u03B1 \u03C7\u03C1\u03AE\u03C3\u03B7\u03C2} other {}}",freeLabel:"\u0394\u03C9\u03C1\u03B5\u03AC\u03BD",freeAriaLabel:"\u0394\u03C9\u03C1\u03B5\u03AC\u03BD",taxExclusiveLabel:"{taxTerm, select, GST {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 GST)} VAT {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03A6\u03A0\u0391)} TAX {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C6\u03CC\u03C1\u03BF)} IVA {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 IVA)} SST {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 SST)} KDV {(\u03BC\u03B7 \u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 KDV)} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 GST)} VAT {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03A6\u03A0\u0391)} TAX {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 \u03C6\u03CC\u03C1\u03BF\u03C5)} IVA {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 IVA)} SST {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 SST)} KDV {(\u03C3\u03C5\u03BC\u03C0\u03B5\u03C1\u03B9\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C4\u03BF\u03C5 KDV)} other {}}",alternativePriceAriaLabel:"\u0394\u03B9\u03B1\u03C6\u03BF\u03C1\u03B5\u03C4\u03B9\u03BA\u03AC, {alternativePrice}",strikethroughAriaLabel:"\u039A\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03AE \u03C4\u03B9\u03BC\u03AE {strikethroughPrice}"},{lang:"fil",recurrenceLabel:"{recurrenceTerm, select, MONTH {/buwan} YEAR {/taon} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per buwan} YEAR {per taon} other {}}",perUnitLabel:"{perUnit, select, LICENSE {kada lisensya} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {kada lisensya} other {}}",freeLabel:"Libre",freeAriaLabel:"Libre",taxExclusiveLabel:"{taxTerm, select, GST {hindi kasama ang GST} VAT {hindi kasama ang VAT} TAX {hindi kasama ang Buwis} IVA {hindi kasama ang IVA} SST {hindi kasama ang SST} KDV {hindi kasama ang KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {kasama ang GST} VAT {kasama ang VAT} TAX {kasama ang Buwis} IVA {kasama ang IVA} SST {kasama ang SST} KDV {kasama ang KDV} other {}}",alternativePriceAriaLabel:"Alternatibong nasa halagang {alternativePrice}",strikethroughAriaLabel:"Regular na nasa halagang {strikethroughPrice}"},{lang:"ms",recurrenceLabel:"{recurrenceTerm, select, MONTH {/bulan} YEAR {/tahun} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per bulan} YEAR {per tahun} other {}}",perUnitLabel:"{perUnit, select, LICENSE {setiap lesen} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {setiap lesen} other {}}",freeLabel:"Percuma",freeAriaLabel:"Percuma",taxExclusiveLabel:"{taxTerm, select, GST {kecuali GST} VAT {kecuali VAT} TAX {kecuali Cukai} IVA {kecuali IVA} SST {kecuali SST} KDV {kecuali KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {termasuk GST} VAT {termasuk VAT} TAX {termasuk Cukai} IVA {termasuk IVA} SST {termasuk SST} KDV {termasuk KDV} other {}}",alternativePriceAriaLabel:"Secara alternatif pada {alternativePrice}",strikethroughAriaLabel:"Biasanya pada {strikethroughPrice}"},{lang:"hi",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u092E\u093E\u0939} YEAR {/\u0935\u0930\u094D\u0937} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per \u092E\u093E\u0939} YEAR {per \u0935\u0930\u094D\u0937} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u092A\u094D\u0930\u0924\u093F \u0932\u093E\u0907\u0938\u0947\u0902\u0938} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u092A\u094D\u0930\u0924\u093F \u0932\u093E\u0907\u0938\u0947\u0902\u0938} other {}}",freeLabel:"\u092B\u093C\u094D\u0930\u0940",freeAriaLabel:"\u092B\u093C\u094D\u0930\u0940",taxExclusiveLabel:"{taxTerm, select, GST {GST \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} VAT {VAT \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} TAX {\u0915\u0930 \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} IVA {IVA \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} SST {SST \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} KDV {KDV \u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {GST \u0938\u0939\u093F\u0924} VAT {VAT \u0938\u0939\u093F\u0924} TAX {\u0915\u0930 \u0938\u0939\u093F\u0924} IVA {IVA \u0938\u0939\u093F\u0924} SST {SST \u0938\u0939\u093F\u0924} KDV {KDV \u0938\u0939\u093F\u0924} other {}}",alternativePriceAriaLabel:"\u0935\u0948\u0915\u0932\u094D\u092A\u093F\u0915 \u0930\u0942\u092A \u0938\u0947 \u0907\u0938 \u092A\u0930 {alternativePrice}",strikethroughAriaLabel:"\u0928\u093F\u092F\u092E\u093F\u0924 \u0930\u0942\u092A \u0938\u0947 \u0907\u0938 \u092A\u0930 {strikethroughPrice}"},{lang:"iw",recurrenceLabel:"{recurrenceTerm, select, MONTH {/\u05D7\u05D5\u05D3\u05E9} YEAR {/\u05E9\u05E0\u05D4} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {\u05DC\u05D7\u05D5\u05D3\u05E9} YEAR {\u05DC\u05E9\u05E0\u05D4} other {}}",perUnitLabel:"{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {\u05DC\u05E8\u05D9\u05E9\u05D9\u05D5\u05DF} other {}}",freeLabel:"\u05D7\u05D9\u05E0\u05DD",freeAriaLabel:"\u05D7\u05D9\u05E0\u05DD",taxExclusiveLabel:'{taxTerm, select, GST {\u05DC\u05DC\u05D0 GST} VAT {\u05DC\u05DC\u05D0 \u05DE\u05E2"\u05DE} TAX {\u05DC\u05DC\u05D0 \u05DE\u05E1} IVA {\u05DC\u05DC\u05D0 IVA} SST {\u05DC\u05DC\u05D0 SST} KDV {\u05DC\u05DC\u05D0 KDV} other {}}',taxInclusiveLabel:'{taxTerm, select, GST {\u05DB\u05D5\u05DC\u05DC GST} VAT {\u05DB\u05D5\u05DC\u05DC \u05DE\u05E2"\u05DE} TAX {\u05DB\u05D5\u05DC\u05DC \u05DE\u05E1} IVA {\u05DB\u05D5\u05DC\u05DC IVA} SST {\u05DB\u05D5\u05DC\u05DC SST} KDV {\u05DB\u05D5\u05DC\u05DC KDV} other {}}',alternativePriceAriaLabel:"\u05DC\u05D7\u05DC\u05D5\u05E4\u05D9\u05DF \u05D1-{alternativePrice}",strikethroughAriaLabel:"\u05D1\u05D0\u05D5\u05E4\u05DF \u05E7\u05D1\u05D5\u05E2 \u05D1-{strikethroughPrice}"}],":type":"sheet"}});var vt;(function(e){e.STAGE="STAGE",e.PRODUCTION="PRODUCTION",e.LOCAL="LOCAL"})(vt||(vt={}));var Dr;(function(e){e.STAGE="STAGE",e.PRODUCTION="PROD",e.LOCAL="LOCAL"})(Dr||(Dr={}));var bt;(function(e){e.DRAFT="DRAFT",e.PUBLISHED="PUBLISHED"})(bt||(bt={}));var Ee;(function(e){e.V2="UCv2",e.V3="UCv3"})(Ee||(Ee={}));var Y;(function(e){e.CHECKOUT="checkout",e.CHECKOUT_EMAIL="checkout/email",e.SEGMENTATION="segmentation",e.BUNDLE="bundle",e.COMMITMENT="commitment",e.RECOMMENDATION="recommendation",e.EMAIL="email",e.PAYMENT="payment",e.CHANGE_PLAN_TEAM_PLANS="change-plan/team-upgrade/plans",e.CHANGE_PLAN_TEAM_PAYMENT="change-plan/team-upgrade/payment"})(Y||(Y={}));var Gr=function(e){var t;return(t=gs.get(e))!==null&&t!==void 0?t:e},gs=new Map([["countrySpecific","cs"],["quantity","q"],["authCode","code"],["checkoutPromoCode","apc"],["rurl","rUrl"],["curl","cUrl"],["ctxrturl","ctxRtUrl"],["country","co"],["language","lang"],["clientId","cli"],["context","ctx"],["productArrangementCode","pa"],["offerType","ot"],["marketSegment","ms"]]);var Ri=function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},$i=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),i,o=[],a;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)o.push(i.value)}catch(s){a={error:s}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(a)throw a.error}}return o};function ze(e,t,r){var n,i;try{for(var o=Ri(Object.entries(e)),a=o.next();!a.done;a=o.next()){var s=$i(a.value,2),c=s[0],l=s[1],h=Gr(c);l!=null&&r.has(h)&&t.set(h,l)}}catch(u){n={error:u}}finally{try{a&&!a.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}}function Wt(e){switch(e){case vt.PRODUCTION:return"https://commerce.adobe.com";default:return"https://commerce-stg.adobe.com"}}function qt(e,t){var r,n;for(var i in e){var o=e[i];try{for(var a=(r=void 0,Ri(Object.entries(o))),s=a.next();!s.done;s=a.next()){var c=$i(s.value,2),l=c[0],h=c[1];if(h!=null){var u=Gr(l);t.set("items["+i+"]["+u+"]",h)}}}catch(d){r={error:d}}finally{try{s&&!s.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}}}var xs=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};function Mi(e){Es(e);var t=e.env,r=e.items,n=e.workflowStep,i=xs(e,["env","items","workflowStep"]),o=new URL(Wt(t));return o.pathname=n+"/",qt(r,o.searchParams),ze(i,o.searchParams,bs),o.toString()}var bs=new Set(["cli","co","lang","ctx","cUrl","mv","nglwfdata","otac","promoid","rUrl","sdid","spint","trackingid","code","campaignid","appctxid"]),As=["env","workflowStep","clientId","country","items"];function Es(e){var t,r;try{for(var n=vs(As),i=n.next();!i.done;i=n.next()){var o=i.value;if(!e[o])throw new Error('Argument "checkoutData" is not valid, missing: '+o)}}catch(a){t={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}return!0}var Ss=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},ys="p_draft_landscape",_s="/store/";function zr(e){ws(e);var t=e.env,r=e.items,n=e.workflowStep,i=e.ms,o=e.marketSegment,a=e.ot,s=e.offerType,c=e.pa,l=e.productArrangementCode,h=e.landscape,u=Ss(e,["env","items","workflowStep","ms","marketSegment","ot","offerType","pa","productArrangementCode","landscape"]),d={marketSegment:o??i,offerType:s??a,productArrangementCode:l??c},m=new URL(Wt(t));return m.pathname=""+_s+n,n!==Y.SEGMENTATION&&n!==Y.CHANGE_PLAN_TEAM_PLANS&&qt(r,m.searchParams),n===Y.SEGMENTATION&&ze(d,m.searchParams,Hr),ze(u,m.searchParams,Hr),h===bt.DRAFT&&ze({af:ys},m.searchParams,Hr),m.toString()}var Hr=new Set(["af","ai","apc","appctxid","cli","co","csm","ctx","ctxRtUrl","DCWATC","dp","fr","gsp","ijt","lang","lo","mal","ms","mv","mv2","nglwfdata","ot","otac","pa","pcid","promoid","q","rf","sc","scl","sdid","sid","spint","svar","th","thm","trackingid","usid","workflowid","context.guid","so.ca","so.su","so.tr","so.va"]),Ls=["env","workflowStep","clientId","country"];function ws(e){var t,r;try{for(var n=Ts(Ls),i=n.next();!i.done;i=n.next()){var o=i.value;if(!e[o])throw new Error('Argument "checkoutData" is not valid, missing: '+o)}}catch(a){t={error:a}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}if(e.workflowStep!==Y.SEGMENTATION&&e.workflowStep!==Y.CHANGE_PLAN_TEAM_PLANS&&!e.items)throw new Error('Argument "checkoutData" is not valid, missing: items');return!0}function Fr(e,t){switch(e){case Ee.V2:return Mi(t);case Ee.V3:return zr(t);default:return console.warn("Unsupported CheckoutType, will use UCv3 as default. Given type: "+e),zr(t)}}var Kr;(function(e){e.BASE="BASE",e.TRIAL="TRIAL",e.PROMOTION="PROMOTION"})(Kr||(Kr={}));var $;(function(e){e.MONTH="MONTH",e.YEAR="YEAR",e.TWO_YEARS="TWO_YEARS",e.THREE_YEARS="THREE_YEARS",e.PERPETUAL="PERPETUAL",e.TERM_LICENSE="TERM_LICENSE",e.ACCESS_PASS="ACCESS_PASS",e.THREE_MONTHS="THREE_MONTHS",e.SIX_MONTHS="SIX_MONTHS"})($||($={}));var k;(function(e){e.ANNUAL="ANNUAL",e.MONTHLY="MONTHLY",e.TWO_YEARS="TWO_YEARS",e.THREE_YEARS="THREE_YEARS",e.P1D="P1D",e.P1Y="P1Y",e.P3Y="P3Y",e.P10Y="P10Y",e.P15Y="P15Y",e.P3D="P3D",e.P7D="P7D",e.P30D="P30D",e.HALF_YEARLY="HALF_YEARLY",e.QUARTERLY="QUARTERLY"})(k||(k={}));var Br;(function(e){e.INDIVIDUAL="INDIVIDUAL",e.TEAM="TEAM",e.ENTERPRISE="ENTERPRISE"})(Br||(Br={}));var jr;(function(e){e.COM="COM",e.EDU="EDU",e.GOV="GOV"})(jr||(jr={}));var Yr;(function(e){e.DIRECT="DIRECT",e.INDIRECT="INDIRECT"})(Yr||(Yr={}));var Xr;(function(e){e.ENTERPRISE_PRODUCT="ENTERPRISE_PRODUCT",e.ETLA="ETLA",e.RETAIL="RETAIL",e.VIP="VIP",e.VIPMP="VIPMP",e.FREE="FREE"})(Xr||(Xr={}));var Ui="tacocat.js";var Zt=(e,t)=>String(e??"").toLowerCase()==String(t??"").toLowerCase(),Di=e=>`${e??""}`.replace(/[&<>'"]/g,t=>({"&":"&","<":"<",">":">","'":"'",'"':"""})[t]??t)??"";function O(e,t={},{metadata:r=!0,search:n=!0,storage:i=!0}={}){let o;if(n&&o==null){let a=new URLSearchParams(window.location.search),s=Fe(n)?n:e;o=a.get(s)}if(i&&o==null){let a=Fe(i)?i:e;o=window.sessionStorage.getItem(a)??window.localStorage.getItem(a)}if(r&&o==null){let a=Ps(Fe(r)?r:e);o=document.documentElement.querySelector(`meta[name="${a}"]`)?.content}return o??t[e]}var Ke=()=>{};var Gi=e=>typeof e=="boolean",At=e=>typeof e=="function",Jt=e=>typeof e=="number",Hi=e=>e!=null&&typeof e=="object";var Fe=e=>typeof e=="string",Wr=e=>Fe(e)&&e,Be=e=>Jt(e)&&Number.isFinite(e)&&e>0;function je(e,t=r=>r==null||r===""){return e!=null&&Object.entries(e).forEach(([r,n])=>{t(n)&&delete e[r]}),e}function T(e,t){if(Gi(e))return e;let r=String(e);return r==="1"||r==="true"?!0:r==="0"||r==="false"?!1:t}function de(e,t,r){let n=Object.values(t);return n.find(i=>Zt(i,e))??r??n[0]}function Ps(e=""){return String(e).replace(/(\p{Lowercase_Letter})(\p{Uppercase_Letter})/gu,(t,r,n)=>`${r}-${n}`).replace(/\W+/gu,"-").toLowerCase()}function Ye(e,t=1){return Jt(e)||(e=Number.parseInt(e,10)),!Number.isNaN(e)&&e>0&&Number.isFinite(e)?e:t}var Cs=Date.now(),qr=()=>`(+${Date.now()-Cs}ms)`,Qt=new Set,Ns=T(O("tacocat.debug",{},{metadata:!1}),typeof process<"u"&&process.env?.DEBUG);function zi(e){let t=`[${Ui}/${e}]`,r=(a,s,...c)=>a?!0:(i(s,...c),!1),n=Ns?(a,...s)=>{console.debug(`${t} ${a}`,...s,qr())}:()=>{},i=(a,...s)=>{let c=`${t} ${a}`;Qt.forEach(([l])=>l(c,...s))};return{assert:r,debug:n,error:i,warn:(a,...s)=>{let c=`${t} ${a}`;Qt.forEach(([,l])=>l(c,...s))}}}function Is(e,t){let r=[e,t];return Qt.add(r),()=>{Qt.delete(r)}}Is((e,...t)=>{console.error(e,...t,qr())},(e,...t)=>{console.warn(e,...t,qr())});var ks="no promo",Fi="promo-tag",Os="yellow",Vs="neutral",Rs=(e,t,r)=>{let n=o=>o||ks,i=r?` (was "${n(t)}")`:"";return`${n(e)}${i}`},$s="cancel-context",Et=(e,t)=>{let r=e===$s,n=!r&&e?.length>0,i=(n||r)&&(t&&t!=e||!t&&!r),o=i&&n||!i&&!!t,a=o?e||t:void 0;return{effectivePromoCode:a,overridenPromoCode:e,className:o?Fi:`${Fi} no-promo`,text:Rs(a,t,i),variant:o?Os:Vs,isOverriden:i}};var Zr="ABM",Jr="PUF",Qr="M2M",en="PERPETUAL",tn="P3Y",Ms="TAX_INCLUSIVE_DETAILS",Us="TAX_EXCLUSIVE",Ki={ABM:Zr,PUF:Jr,M2M:Qr,PERPETUAL:en,P3Y:tn},oh={[Zr]:{commitment:$.YEAR,term:k.MONTHLY},[Jr]:{commitment:$.YEAR,term:k.ANNUAL},[Qr]:{commitment:$.MONTH,term:k.MONTHLY},[en]:{commitment:$.PERPETUAL,term:void 0},[tn]:{commitment:$.THREE_MONTHS,term:k.P3Y}},Bi="Value is not an offer",er=e=>{if(typeof e!="object")return Bi;let{commitment:t,term:r}=e,n=Ds(t,r);return{...e,planType:n}};var Ds=(e,t)=>{switch(e){case void 0:return Bi;case"":return"";case $.YEAR:return t===k.MONTHLY?Zr:t===k.ANNUAL?Jr:"";case $.MONTH:return t===k.MONTHLY?Qr:"";case $.PERPETUAL:return en;case $.TERM_LICENSE:return t===k.P3Y?tn:"";default:return""}};function rn(e){let{priceDetails:t}=e,{price:r,priceWithoutDiscount:n,priceWithoutTax:i,priceWithoutDiscountAndTax:o,taxDisplay:a}=t;if(a!==Ms)return e;let s={...e,priceDetails:{...t,price:i??r,priceWithoutDiscount:o??n,taxDisplay:Us}};return s.offerType==="TRIAL"&&s.priceDetails.price===0&&(s.priceDetails.price=s.priceDetails.priceWithoutDiscount),s}var nn=function(e,t){return nn=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[i]=n[i])},nn(e,t)};function St(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");nn(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var E=function(){return E=Object.assign||function(t){for(var r,n=1,i=arguments.length;n0}),r=[],n=0,i=t;n1)throw new RangeError("integer-width stems only accept a single optional option");i.options[0].replace(zs,function(s,c,l,h,u,d){if(c)t.minimumIntegerDigits=l.length;else{if(h&&u)throw new Error("We currently do not support maximum integer digits");if(d)throw new Error("We currently do not support exact integer digits")}return""});continue}if(to.test(i.stem)){t.minimumIntegerDigits=i.stem.length;continue}if(qi.test(i.stem)){if(i.options.length>1)throw new RangeError("Fraction-precision stems only accept a single optional option");i.stem.replace(qi,function(s,c,l,h,u,d){return l==="*"?t.minimumFractionDigits=c.length:h&&h[0]==="#"?t.maximumFractionDigits=h.length:u&&d?(t.minimumFractionDigits=u.length,t.maximumFractionDigits=u.length+d.length):(t.minimumFractionDigits=c.length,t.maximumFractionDigits=c.length),""}),i.options.length&&(t=E(E({},t),Zi(i.options[0])));continue}if(eo.test(i.stem)){t=E(E({},t),Zi(i.stem));continue}var o=ro(i.stem);o&&(t=E(E({},t),o));var a=Fs(i.stem);a&&(t=E(E({},t),a))}return t}var sn,Ks=new RegExp("^"+an.source+"*"),Bs=new RegExp(an.source+"*$");function b(e,t){return{start:e,end:t}}var js=!!String.prototype.startsWith,Ys=!!String.fromCodePoint,Xs=!!Object.fromEntries,Ws=!!String.prototype.codePointAt,qs=!!String.prototype.trimStart,Zs=!!String.prototype.trimEnd,Js=!!Number.isSafeInteger,Qs=Js?Number.isSafeInteger:function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e&&Math.abs(e)<=9007199254740991},ln=!0;try{io=co("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu"),ln=((sn=io.exec("a"))===null||sn===void 0?void 0:sn[0])==="a"}catch{ln=!1}var io,oo=js?function(t,r,n){return t.startsWith(r,n)}:function(t,r,n){return t.slice(n,n+r.length)===r},hn=Ys?String.fromCodePoint:function(){for(var t=[],r=0;ro;){if(a=t[o++],a>1114111)throw RangeError(a+" is not a valid code point");n+=a<65536?String.fromCharCode(a):String.fromCharCode(((a-=65536)>>10)+55296,a%1024+56320)}return n},ao=Xs?Object.fromEntries:function(t){for(var r={},n=0,i=t;n=n)){var i=t.charCodeAt(r),o;return i<55296||i>56319||r+1===n||(o=t.charCodeAt(r+1))<56320||o>57343?i:(i-55296<<10)+(o-56320)+65536}},ec=qs?function(t){return t.trimStart()}:function(t){return t.replace(Ks,"")},tc=Zs?function(t){return t.trimEnd()}:function(t){return t.replace(Bs,"")};function co(e,t){return new RegExp(e,t)}var un;ln?(cn=co("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu"),un=function(t,r){var n;cn.lastIndex=r;var i=cn.exec(t);return(n=i[1])!==null&&n!==void 0?n:""}):un=function(t,r){for(var n=[];;){var i=so(t,r);if(i===void 0||ho(i)||ic(i))break;n.push(i),r+=i>=65536?2:1}return hn.apply(void 0,n)};var cn,lo=function(){function e(t,r){r===void 0&&(r={}),this.message=t,this.position={offset:0,line:1,column:1},this.ignoreTag=!!r.ignoreTag,this.requiresOtherClause=!!r.requiresOtherClause,this.shouldParseSkeletons=!!r.shouldParseSkeletons}return e.prototype.parse=function(){if(this.offset()!==0)throw Error("parser can only be used once");return this.parseMessage(0,"",!1)},e.prototype.parseMessage=function(t,r,n){for(var i=[];!this.isEOF();){var o=this.char();if(o===123){var a=this.parseArgument(t,n);if(a.err)return a;i.push(a.val)}else{if(o===125&&t>0)break;if(o===35&&(r==="plural"||r==="selectordinal")){var s=this.clonePosition();this.bump(),i.push({type:N.pound,location:b(s,this.clonePosition())})}else if(o===60&&!this.ignoreTag&&this.peek()===47){if(n)break;return this.error(v.UNMATCHED_CLOSING_TAG,b(this.clonePosition(),this.clonePosition()))}else if(o===60&&!this.ignoreTag&&dn(this.peek()||0)){var a=this.parseTag(t,r);if(a.err)return a;i.push(a.val)}else{var a=this.parseLiteral(t,r);if(a.err)return a;i.push(a.val)}}}return{val:i,err:null}},e.prototype.parseTag=function(t,r){var n=this.clonePosition();this.bump();var i=this.parseTagName();if(this.bumpSpace(),this.bumpIf("/>"))return{val:{type:N.literal,value:"<"+i+"/>",location:b(n,this.clonePosition())},err:null};if(this.bumpIf(">")){var o=this.parseMessage(t+1,r,!0);if(o.err)return o;var a=o.val,s=this.clonePosition();if(this.bumpIf("")?{val:{type:N.tag,value:i,children:a,location:b(n,this.clonePosition())},err:null}:this.error(v.INVALID_TAG,b(s,this.clonePosition())))}else return this.error(v.UNCLOSED_TAG,b(n,this.clonePosition()))}else return this.error(v.INVALID_TAG,b(n,this.clonePosition()))},e.prototype.parseTagName=function(){var t=this.offset();for(this.bump();!this.isEOF()&&nc(this.char());)this.bump();return this.message.slice(t,this.offset())},e.prototype.parseLiteral=function(t,r){for(var n=this.clonePosition(),i="";;){var o=this.tryParseQuote(r);if(o){i+=o;continue}var a=this.tryParseUnquoted(t,r);if(a){i+=a;continue}var s=this.tryParseLeftAngleBracket();if(s){i+=s;continue}break}var c=b(n,this.clonePosition());return{val:{type:N.literal,value:i,location:c},err:null}},e.prototype.tryParseLeftAngleBracket=function(){return!this.isEOF()&&this.char()===60&&(this.ignoreTag||!rc(this.peek()||0))?(this.bump(),"<"):null},e.prototype.tryParseQuote=function(t){if(this.isEOF()||this.char()!==39)return null;switch(this.peek()){case 39:return this.bump(),this.bump(),"'";case 123:case 60:case 62:case 125:break;case 35:if(t==="plural"||t==="selectordinal")break;return null;default:return null}this.bump();var r=[this.char()];for(this.bump();!this.isEOF();){var n=this.char();if(n===39)if(this.peek()===39)r.push(39),this.bump();else{this.bump();break}else r.push(n);this.bump()}return hn.apply(void 0,r)},e.prototype.tryParseUnquoted=function(t,r){if(this.isEOF())return null;var n=this.char();return n===60||n===123||n===35&&(r==="plural"||r==="selectordinal")||n===125&&t>0?null:(this.bump(),hn(n))},e.prototype.parseArgument=function(t,r){var n=this.clonePosition();if(this.bump(),this.bumpSpace(),this.isEOF())return this.error(v.EXPECT_ARGUMENT_CLOSING_BRACE,b(n,this.clonePosition()));if(this.char()===125)return this.bump(),this.error(v.EMPTY_ARGUMENT,b(n,this.clonePosition()));var i=this.parseIdentifierIfPossible().value;if(!i)return this.error(v.MALFORMED_ARGUMENT,b(n,this.clonePosition()));if(this.bumpSpace(),this.isEOF())return this.error(v.EXPECT_ARGUMENT_CLOSING_BRACE,b(n,this.clonePosition()));switch(this.char()){case 125:return this.bump(),{val:{type:N.argument,value:i,location:b(n,this.clonePosition())},err:null};case 44:return this.bump(),this.bumpSpace(),this.isEOF()?this.error(v.EXPECT_ARGUMENT_CLOSING_BRACE,b(n,this.clonePosition())):this.parseArgumentOptions(t,r,i,n);default:return this.error(v.MALFORMED_ARGUMENT,b(n,this.clonePosition()))}},e.prototype.parseIdentifierIfPossible=function(){var t=this.clonePosition(),r=this.offset(),n=un(this.message,r),i=r+n.length;this.bumpTo(i);var o=this.clonePosition(),a=b(t,o);return{value:n,location:a}},e.prototype.parseArgumentOptions=function(t,r,n,i){var o,a=this.clonePosition(),s=this.parseIdentifierIfPossible().value,c=this.clonePosition();switch(s){case"":return this.error(v.EXPECT_ARGUMENT_TYPE,b(a,c));case"number":case"date":case"time":{this.bumpSpace();var l=null;if(this.bumpIf(",")){this.bumpSpace();var h=this.clonePosition(),u=this.parseSimpleArgStyleIfPossible();if(u.err)return u;var d=tc(u.val);if(d.length===0)return this.error(v.EXPECT_ARGUMENT_STYLE,b(this.clonePosition(),this.clonePosition()));var m=b(h,this.clonePosition());l={style:d,styleLocation:m}}var x=this.tryParseArgumentClose(i);if(x.err)return x;var f=b(i,this.clonePosition());if(l&&oo(l?.style,"::",0)){var S=ec(l.style.slice(2));if(s==="number"){var u=this.parseNumberSkeletonFromString(S,l.styleLocation);return u.err?u:{val:{type:N.number,value:n,location:f,style:u.val},err:null}}else{if(S.length===0)return this.error(v.EXPECT_DATE_TIME_SKELETON,f);var d={type:Se.dateTime,pattern:S,location:l.styleLocation,parsedOptions:this.shouldParseSkeletons?Xi(S):{}},C=s==="date"?N.date:N.time;return{val:{type:C,value:n,location:f,style:d},err:null}}}return{val:{type:s==="number"?N.number:s==="date"?N.date:N.time,value:n,location:f,style:(o=l?.style)!==null&&o!==void 0?o:null},err:null}}case"plural":case"selectordinal":case"select":{var _=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(","))return this.error(v.EXPECT_SELECT_ARGUMENT_OPTIONS,b(_,E({},_)));this.bumpSpace();var L=this.parseIdentifierIfPossible(),V=0;if(s!=="select"&&L.value==="offset"){if(!this.bumpIf(":"))return this.error(v.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,b(this.clonePosition(),this.clonePosition()));this.bumpSpace();var u=this.tryParseDecimalInteger(v.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,v.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);if(u.err)return u;this.bumpSpace(),L=this.parseIdentifierIfPossible(),V=u.val}var A=this.tryParsePluralOrSelectOptions(t,s,r,L);if(A.err)return A;var x=this.tryParseArgumentClose(i);if(x.err)return x;var M=b(i,this.clonePosition());return s==="select"?{val:{type:N.select,value:n,options:ao(A.val),location:M},err:null}:{val:{type:N.plural,value:n,options:ao(A.val),offset:V,pluralType:s==="plural"?"cardinal":"ordinal",location:M},err:null}}default:return this.error(v.INVALID_ARGUMENT_TYPE,b(a,c))}},e.prototype.tryParseArgumentClose=function(t){return this.isEOF()||this.char()!==125?this.error(v.EXPECT_ARGUMENT_CLOSING_BRACE,b(t,this.clonePosition())):(this.bump(),{val:!0,err:null})},e.prototype.parseSimpleArgStyleIfPossible=function(){for(var t=0,r=this.clonePosition();!this.isEOF();){var n=this.char();switch(n){case 39:{this.bump();var i=this.clonePosition();if(!this.bumpUntil("'"))return this.error(v.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE,b(i,this.clonePosition()));this.bump();break}case 123:{t+=1,this.bump();break}case 125:{if(t>0)t-=1;else return{val:this.message.slice(r.offset,this.offset()),err:null};break}default:this.bump();break}}return{val:this.message.slice(r.offset,this.offset()),err:null}},e.prototype.parseNumberSkeletonFromString=function(t,r){var n=[];try{n=Qi(t)}catch{return this.error(v.INVALID_NUMBER_SKELETON,r)}return{val:{type:Se.number,tokens:n,location:r,parsedOptions:this.shouldParseSkeletons?no(n):{}},err:null}},e.prototype.tryParsePluralOrSelectOptions=function(t,r,n,i){for(var o,a=!1,s=[],c=new Set,l=i.value,h=i.location;;){if(l.length===0){var u=this.clonePosition();if(r!=="select"&&this.bumpIf("=")){var d=this.tryParseDecimalInteger(v.EXPECT_PLURAL_ARGUMENT_SELECTOR,v.INVALID_PLURAL_ARGUMENT_SELECTOR);if(d.err)return d;h=b(u,this.clonePosition()),l=this.message.slice(u.offset,this.offset())}else break}if(c.has(l))return this.error(r==="select"?v.DUPLICATE_SELECT_ARGUMENT_SELECTOR:v.DUPLICATE_PLURAL_ARGUMENT_SELECTOR,h);l==="other"&&(a=!0),this.bumpSpace();var m=this.clonePosition();if(!this.bumpIf("{"))return this.error(r==="select"?v.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT:v.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT,b(this.clonePosition(),this.clonePosition()));var x=this.parseMessage(t+1,r,n);if(x.err)return x;var f=this.tryParseArgumentClose(m);if(f.err)return f;s.push([l,{value:x.val,location:b(m,this.clonePosition())}]),c.add(l),this.bumpSpace(),o=this.parseIdentifierIfPossible(),l=o.value,h=o.location}return s.length===0?this.error(r==="select"?v.EXPECT_SELECT_ARGUMENT_SELECTOR:v.EXPECT_PLURAL_ARGUMENT_SELECTOR,b(this.clonePosition(),this.clonePosition())):this.requiresOtherClause&&!a?this.error(v.MISSING_OTHER_CLAUSE,b(this.clonePosition(),this.clonePosition())):{val:s,err:null}},e.prototype.tryParseDecimalInteger=function(t,r){var n=1,i=this.clonePosition();this.bumpIf("+")||this.bumpIf("-")&&(n=-1);for(var o=!1,a=0;!this.isEOF();){var s=this.char();if(s>=48&&s<=57)o=!0,a=a*10+(s-48),this.bump();else break}var c=b(i,this.clonePosition());return o?(a*=n,Qs(a)?{val:a,err:null}:this.error(r,c)):this.error(t,c)},e.prototype.offset=function(){return this.position.offset},e.prototype.isEOF=function(){return this.offset()===this.message.length},e.prototype.clonePosition=function(){return{offset:this.position.offset,line:this.position.line,column:this.position.column}},e.prototype.char=function(){var t=this.position.offset;if(t>=this.message.length)throw Error("out of bound");var r=so(this.message,t);if(r===void 0)throw Error("Offset "+t+" is at invalid UTF-16 code unit boundary");return r},e.prototype.error=function(t,r){return{val:null,err:{kind:t,message:this.message,location:r}}},e.prototype.bump=function(){if(!this.isEOF()){var t=this.char();t===10?(this.position.line+=1,this.position.column=1,this.position.offset+=1):(this.position.column+=1,this.position.offset+=t<65536?1:2)}},e.prototype.bumpIf=function(t){if(oo(this.message,t,this.offset())){for(var r=0;r=0?(this.bumpTo(n),!0):(this.bumpTo(this.message.length),!1)},e.prototype.bumpTo=function(t){if(this.offset()>t)throw Error("targetOffset "+t+" must be greater than or equal to the current offset "+this.offset());for(t=Math.min(t,this.message.length);;){var r=this.offset();if(r===t)break;if(r>t)throw Error("targetOffset "+t+" is at invalid UTF-16 code unit boundary");if(this.bump(),this.isEOF())break}},e.prototype.bumpSpace=function(){for(;!this.isEOF()&&ho(this.char());)this.bump()},e.prototype.peek=function(){if(this.isEOF())return null;var t=this.char(),r=this.offset(),n=this.message.charCodeAt(r+(t>=65536?2:1));return n??null},e}();function dn(e){return e>=97&&e<=122||e>=65&&e<=90}function rc(e){return dn(e)||e===47}function nc(e){return e===45||e===46||e>=48&&e<=57||e===95||e>=97&&e<=122||e>=65&&e<=90||e==183||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8255&&e<=8256||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}function ho(e){return e>=9&&e<=13||e===32||e===133||e>=8206&&e<=8207||e===8232||e===8233}function ic(e){return e>=33&&e<=35||e===36||e>=37&&e<=39||e===40||e===41||e===42||e===43||e===44||e===45||e>=46&&e<=47||e>=58&&e<=59||e>=60&&e<=62||e>=63&&e<=64||e===91||e===92||e===93||e===94||e===96||e===123||e===124||e===125||e===126||e===161||e>=162&&e<=165||e===166||e===167||e===169||e===171||e===172||e===174||e===176||e===177||e===182||e===187||e===191||e===215||e===247||e>=8208&&e<=8213||e>=8214&&e<=8215||e===8216||e===8217||e===8218||e>=8219&&e<=8220||e===8221||e===8222||e===8223||e>=8224&&e<=8231||e>=8240&&e<=8248||e===8249||e===8250||e>=8251&&e<=8254||e>=8257&&e<=8259||e===8260||e===8261||e===8262||e>=8263&&e<=8273||e===8274||e===8275||e>=8277&&e<=8286||e>=8592&&e<=8596||e>=8597&&e<=8601||e>=8602&&e<=8603||e>=8604&&e<=8607||e===8608||e>=8609&&e<=8610||e===8611||e>=8612&&e<=8613||e===8614||e>=8615&&e<=8621||e===8622||e>=8623&&e<=8653||e>=8654&&e<=8655||e>=8656&&e<=8657||e===8658||e===8659||e===8660||e>=8661&&e<=8691||e>=8692&&e<=8959||e>=8960&&e<=8967||e===8968||e===8969||e===8970||e===8971||e>=8972&&e<=8991||e>=8992&&e<=8993||e>=8994&&e<=9e3||e===9001||e===9002||e>=9003&&e<=9083||e===9084||e>=9085&&e<=9114||e>=9115&&e<=9139||e>=9140&&e<=9179||e>=9180&&e<=9185||e>=9186&&e<=9254||e>=9255&&e<=9279||e>=9280&&e<=9290||e>=9291&&e<=9311||e>=9472&&e<=9654||e===9655||e>=9656&&e<=9664||e===9665||e>=9666&&e<=9719||e>=9720&&e<=9727||e>=9728&&e<=9838||e===9839||e>=9840&&e<=10087||e===10088||e===10089||e===10090||e===10091||e===10092||e===10093||e===10094||e===10095||e===10096||e===10097||e===10098||e===10099||e===10100||e===10101||e>=10132&&e<=10175||e>=10176&&e<=10180||e===10181||e===10182||e>=10183&&e<=10213||e===10214||e===10215||e===10216||e===10217||e===10218||e===10219||e===10220||e===10221||e===10222||e===10223||e>=10224&&e<=10239||e>=10240&&e<=10495||e>=10496&&e<=10626||e===10627||e===10628||e===10629||e===10630||e===10631||e===10632||e===10633||e===10634||e===10635||e===10636||e===10637||e===10638||e===10639||e===10640||e===10641||e===10642||e===10643||e===10644||e===10645||e===10646||e===10647||e===10648||e>=10649&&e<=10711||e===10712||e===10713||e===10714||e===10715||e>=10716&&e<=10747||e===10748||e===10749||e>=10750&&e<=11007||e>=11008&&e<=11055||e>=11056&&e<=11076||e>=11077&&e<=11078||e>=11079&&e<=11084||e>=11085&&e<=11123||e>=11124&&e<=11125||e>=11126&&e<=11157||e===11158||e>=11159&&e<=11263||e>=11776&&e<=11777||e===11778||e===11779||e===11780||e===11781||e>=11782&&e<=11784||e===11785||e===11786||e===11787||e===11788||e===11789||e>=11790&&e<=11798||e===11799||e>=11800&&e<=11801||e===11802||e===11803||e===11804||e===11805||e>=11806&&e<=11807||e===11808||e===11809||e===11810||e===11811||e===11812||e===11813||e===11814||e===11815||e===11816||e===11817||e>=11818&&e<=11822||e===11823||e>=11824&&e<=11833||e>=11834&&e<=11835||e>=11836&&e<=11839||e===11840||e===11841||e===11842||e>=11843&&e<=11855||e>=11856&&e<=11857||e===11858||e>=11859&&e<=11903||e>=12289&&e<=12291||e===12296||e===12297||e===12298||e===12299||e===12300||e===12301||e===12302||e===12303||e===12304||e===12305||e>=12306&&e<=12307||e===12308||e===12309||e===12310||e===12311||e===12312||e===12313||e===12314||e===12315||e===12316||e===12317||e>=12318&&e<=12319||e===12320||e===12336||e===64830||e===64831||e>=65093&&e<=65094}function mn(e){e.forEach(function(t){if(delete t.location,or(t)||ar(t))for(var r in t.options)delete t.options[r].location,mn(t.options[r].value);else rr(t)&&cr(t.style)||(nr(t)||ir(t))&&Tt(t.style)?delete t.style.location:sr(t)&&mn(t.children)})}function uo(e,t){t===void 0&&(t={}),t=E({shouldParseSkeletons:!0,requiresOtherClause:!0},t);var r=new lo(e,t).parse();if(r.err){var n=SyntaxError(v[r.err.kind]);throw n.location=r.err.location,n.originalMessage=r.err.message,n}return t?.captureLocation||mn(r.val),r.val}function yt(e,t){var r=t&&t.cache?t.cache:hc,n=t&&t.serializer?t.serializer:lc,i=t&&t.strategy?t.strategy:ac;return i(e,{cache:r,serializer:n})}function oc(e){return e==null||typeof e=="number"||typeof e=="boolean"}function mo(e,t,r,n){var i=oc(n)?n:r(n),o=t.get(i);return typeof o>"u"&&(o=e.call(this,n),t.set(i,o)),o}function po(e,t,r){var n=Array.prototype.slice.call(arguments,3),i=r(n),o=t.get(i);return typeof o>"u"&&(o=e.apply(this,n),t.set(i,o)),o}function pn(e,t,r,n,i){return r.bind(t,e,n,i)}function ac(e,t){var r=e.length===1?mo:po;return pn(e,this,r,t.cache.create(),t.serializer)}function sc(e,t){return pn(e,this,po,t.cache.create(),t.serializer)}function cc(e,t){return pn(e,this,mo,t.cache.create(),t.serializer)}var lc=function(){return JSON.stringify(arguments)};function fn(){this.cache=Object.create(null)}fn.prototype.get=function(e){return this.cache[e]};fn.prototype.set=function(e,t){this.cache[e]=t};var hc={create:function(){return new fn}},lr={variadic:sc,monadic:cc};var Te;(function(e){e.MISSING_VALUE="MISSING_VALUE",e.INVALID_VALUE="INVALID_VALUE",e.MISSING_INTL_API="MISSING_INTL_API"})(Te||(Te={}));var _t=function(e){St(t,e);function t(r,n,i){var o=e.call(this,r)||this;return o.code=n,o.originalMessage=i,o}return t.prototype.toString=function(){return"[formatjs Error: "+this.code+"] "+this.message},t}(Error);var gn=function(e){St(t,e);function t(r,n,i,o){return e.call(this,'Invalid values for "'+r+'": "'+n+'". Options are "'+Object.keys(i).join('", "')+'"',Te.INVALID_VALUE,o)||this}return t}(_t);var fo=function(e){St(t,e);function t(r,n,i){return e.call(this,'Value for "'+r+'" must be of type '+n,Te.INVALID_VALUE,i)||this}return t}(_t);var go=function(e){St(t,e);function t(r,n){return e.call(this,'The intl string context variable "'+r+'" was not provided to the string "'+n+'"',Te.MISSING_VALUE,n)||this}return t}(_t);var z;(function(e){e[e.literal=0]="literal",e[e.object=1]="object"})(z||(z={}));function uc(e){return e.length<2?e:e.reduce(function(t,r){var n=t[t.length-1];return!n||n.type!==z.literal||r.type!==z.literal?t.push(r):n.value+=r.value,t},[])}function dc(e){return typeof e=="function"}function Lt(e,t,r,n,i,o,a){if(e.length===1&&on(e[0]))return[{type:z.literal,value:e[0].value}];for(var s=[],c=0,l=e;c0?e.substring(0,n):"";let i=go(e.split("").reverse().join("")),o=r-i,a=e.substring(o,o+1),s=o+(a==="."||a===","?1:0);t.suffix=i>0?e.substring(s,r):"",t.mask=e.substring(n,s),t.maskHasNegativeSign=t.mask.charAt(0)==="-",t.maskHasPositiveSign=t.mask.charAt(0)==="+";let c=t.mask.match(xc);return t.decimal=c&&c[c.length-1]||".",t.separator=c&&c[1]&&c[0]||",",c=t.mask.split(t.decimal),t.integer=c[0],t.fraction=c[1],t}function bc(e,t,r){let n=!1,i={value:e};e<0&&(n=!0,i.value=-i.value),i.sign=n?"-":"",i.value=Number(i.value).toFixed(t.fraction&&t.fraction.length),i.value=Number(i.value).toString();let o=t.fraction&&t.fraction.lastIndexOf("0"),[a="0",s=""]=i.value.split(".");return(!s||s&&s.length<=o)&&(s=o<0?"":(+("0."+s)).toFixed(o+1).replace("0.","")),i.integer=a,i.fraction=s,Ac(i,t),(i.result==="0"||i.result==="")&&(n=!1,i.sign=""),!n&&t.maskHasPositiveSign?i.sign="+":n&&t.maskHasPositiveSign?i.sign="-":n&&(i.sign=r&&r.enforceMaskSign&&!t.maskHasNegativeSign?"":"-"),i}function Ac(e,t){e.result="";let r=t.integer.split(t.separator),n=r.join(""),i=n&&n.indexOf("0");if(i>-1)for(;e.integer.lengthMath.round(e*20)/20},_n=(e,t)=>({accept:e,round:t}),_c=[_n(({divisor:e,price:t})=>t%e==0,({divisor:e,price:t})=>t/e),_n(({usePrecision:e})=>e,({divisor:e,price:t})=>Math.ceil(Math.floor(t*1e4/e)/100)/100),_n(()=>!0,({divisor:e,price:t})=>Math.ceil(Math.floor(t*100/e)/100))],Ln={[M.YEAR]:{[V.MONTHLY]:Lt.MONTH,[V.ANNUAL]:Lt.YEAR},[M.MONTH]:{[V.MONTHLY]:Lt.MONTH}},Lc=(e,t)=>e.indexOf(`'${t}'`)===0,wc=(e,t=!0)=>{let r=e.replace(/'.*?'/,"").trim(),n=To(r);return!!n?t||(r=r.replace(/[,\.]0+/,n)):r=r.replace(/\s?(#.*0)(?!\s)?/,"$&"+Cc(e)),r},Pc=e=>{let t=Ic(e),r=Lc(e,t),n=e.replace(/'.*?'/,""),i=Ao.test(n)||So.test(n);return{currencySymbol:t,isCurrencyFirst:r,hasCurrencySpace:i}},Eo=e=>e.replace(Ao,bo).replace(So,bo),Cc=e=>e.match(/#(.?)#/)?.[1]===vo?Ec:vo,Ic=e=>e.match(/'(.*?)'/)?.[1]??"",To=e=>e.match(/0(.?)0/)?.[1]??"";function sr({formatString:e,price:t,usePrecision:r,isIndianPrice:n=!1},i,o=a=>a){let{currencySymbol:a,isCurrencyFirst:s,hasCurrencySpace:c}=Pc(e),h=r?To(e):"",l=wc(e,r),u=r?2:0,d=o(t,{currencySymbol:a}),m=n?d.toLocaleString("hi-IN",{minimumFractionDigits:u,maximumFractionDigits:u}):xo(l,d),f=r?m.lastIndexOf(h):m.length,v=m.substring(0,f),T=m.substring(f+1);return{accessiblePrice:e.replace(/'.*?'/,"SYMBOL").replace(/#.*0/,m).replace(/SYMBOL/,a),currencySymbol:a,decimals:T,decimalsDelimiter:h,hasCurrencySpace:c,integer:v,isCurrencyFirst:s,recurrenceTerm:i}}var yo=e=>{let{commitment:t,term:r,usePrecision:n}=e,i=Tc[r]??1;return sr(e,i>1?Lt.MONTH:Ln[t]?.[r],(o,{currencySymbol:a})=>{let s={divisor:i,price:o,usePrecision:n},{round:c}=_c.find(({accept:l})=>l(s));if(!c)throw new Error(`Missing rounding rule for: ${JSON.stringify(s)}`);return(yc[a]??(l=>l))(c(s))})},_o=({commitment:e,term:t,...r})=>sr(r,Ln[e]?.[t]),Lo=e=>{let{commitment:t,term:r}=e;return t===M.YEAR&&r===V.MONTHLY?sr(e,Lt.YEAR,n=>n*12):sr(e,Ln[t]?.[r])};var Nc={recurrenceLabel:"{recurrenceTerm, select, MONTH {/mo} YEAR {/yr} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per month} YEAR {per year} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per license} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per license} other {}}",freeLabel:"Free",freeAriaLabel:"Free",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Alternatively at {alternativePrice}",strikethroughAriaLabel:"Regularly at {strikethroughPrice}"},kc=Di("ConsonantTemplates/price"),Oc=/<.+?>/g,X={container:"price",containerOptical:"price-optical",containerStrikethrough:"price-strikethrough",containerAnnual:"price-annual",disabled:"disabled",currencySpace:"price-currency-space",currencySymbol:"price-currency-symbol",decimals:"price-decimals",decimalsDelimiter:"price-decimals-delimiter",integer:"price-integer",recurrence:"price-recurrence",taxInclusivity:"price-tax-inclusivity",unitType:"price-unit-type"},we={perUnitLabel:"perUnitLabel",perUnitAriaLabel:"perUnitAriaLabel",recurrenceLabel:"recurrenceLabel",recurrenceAriaLabel:"recurrenceAriaLabel",taxExclusiveLabel:"taxExclusiveLabel",taxInclusiveLabel:"taxInclusiveLabel",strikethroughAriaLabel:"strikethroughAriaLabel"},Vc="TAX_EXCLUSIVE",Rc=e=>Mi(e)?Object.entries(e).filter(([,t])=>Ke(t)||qt(t)||t===!0).reduce((t,[r,n])=>t+` ${r}${n===!0?"":'="'+$i(n)+'"'}`,""):"",ee=(e,t,r,n=!1)=>`${n?Eo(t):t??""}`;function $c(e,{accessibleLabel:t,currencySymbol:r,decimals:n,decimalsDelimiter:i,hasCurrencySpace:o,integer:a,isCurrencyFirst:s,recurrenceLabel:c,perUnitLabel:h,taxInclusivityLabel:l},u={}){let d=ee(X.currencySymbol,r),m=ee(X.currencySpace,o?" ":""),f="";return s&&(f+=d+m),f+=ee(X.integer,a),f+=ee(X.decimalsDelimiter,i),f+=ee(X.decimals,n),s||(f+=m+d),f+=ee(X.recurrence,c,null,!0),f+=ee(X.unitType,h,null,!0),f+=ee(X.taxInclusivity,l,!0),ee(e,f,{...u,"aria-label":t})}var Pe=({displayOptical:e=!1,displayStrikethrough:t=!1,displayAnnual:r=!1}={})=>({country:n,displayFormatted:i=!0,displayRecurrence:o=!0,displayPerUnit:a=!1,displayTax:s=!1,language:c,literals:h={}}={},{commitment:l,formatString:u,price:d,priceWithoutDiscount:m,taxDisplay:f,taxTerm:v,term:T,usePrecision:P}={},C={})=>{Object.entries({country:n,formatString:u,language:c,price:d}).forEach(([se,Fr])=>{if(Fr==null)throw new Error(`Argument "${se}" is missing`)});let _={...Nc,...h},U=`${c.toLowerCase()}-${n.toUpperCase()}`;function L(se,Fr){let Kr=_[se];if(Kr==null)return"";try{return new fo(Kr.replace(Oc,""),U).format(Fr)}catch{return kc.error("Failed to format literal:",Kr),""}}let I=t&&m?m:d,K=e?yo:_o;r&&(K=Lo);let{accessiblePrice:Z,recurrenceTerm:oe,...ue}=K({commitment:l,formatString:u,term:T,price:e?d:I,usePrecision:P,isIndianPrice:n==="IN"}),J=Z,Ee="";if(y(o)&&oe){let se=L(we.recurrenceAriaLabel,{recurrenceTerm:oe});se&&(J+=" "+se),Ee=L(we.recurrenceLabel,{recurrenceTerm:oe})}let Te="";if(y(a)){Te=L(we.perUnitLabel,{perUnit:"LICENSE"});let se=L(we.perUnitAriaLabel,{perUnit:"LICENSE"});se&&(J+=" "+se)}let ae="";y(s)&&v&&(ae=L(f===Vc?we.taxExclusiveLabel:we.taxInclusiveLabel,{taxTerm:v}),ae&&(J+=" "+ae)),t&&(J=L(we.strikethroughAriaLabel,{strikethroughPrice:J}));let Q=X.container;if(e&&(Q+=" "+X.containerOptical),t&&(Q+=" "+X.containerStrikethrough),r&&(Q+=" "+X.containerAnnual),y(i))return $c(Q,{...ue,accessibleLabel:J,recurrenceLabel:Ee,perUnitLabel:Te,taxInclusivityLabel:ae},C);let{currencySymbol:Ge,decimals:Kt,decimalsDelimiter:jt,hasCurrencySpace:gt,integer:zr,isCurrencyFirst:is}=ue,He=[zr,jt,Kt];is?(He.unshift(gt?"\xA0":""),He.unshift(Ge)):(He.push(gt?"\xA0":""),He.push(Ge)),He.push(Ee,Te,ae);let os=He.join("");return ee(Q,os,C)},wo=()=>(e,t,r)=>{let i=(e.displayOldPrice===void 0||y(e.displayOldPrice))&&t.priceWithoutDiscount&&t.priceWithoutDiscount!=t.price;return`${Pe()(e,t,r)}${i?" "+Pe({displayStrikethrough:!0})(e,t,r):""}`};var wn=Pe(),Pn=wo(),Cn=Pe({displayOptical:!0}),In=Pe({displayStrikethrough:!0}),Nn=Pe({displayAnnual:!0});var Uc=(e,t)=>{if(!(!Be(e)||!Be(t)))return Math.floor((t-e)/t*100)},Po=()=>(e,t,r)=>{let{price:n,priceWithoutDiscount:i}=t,o=Uc(n,i);return o===void 0?'':`${o}%`};var kn=Po();var{freeze:wt}=Object,ce=wt({...ye}),le=wt({...q}),Ce={STAGE:"STAGE",PRODUCTION:"PRODUCTION",LOCAL:"LOCAL"},Co=wt({...M}),Io=wt({...Hi}),No=wt({...V});var Dn={};ms(Dn,{CLASS_NAME_FAILED:()=>cr,CLASS_NAME_PENDING:()=>lr,CLASS_NAME_RESOLVED:()=>hr,ERROR_MESSAGE_BAD_REQUEST:()=>ur,ERROR_MESSAGE_MISSING_LITERALS_URL:()=>Mc,ERROR_MESSAGE_OFFER_NOT_FOUND:()=>On,EVENT_TYPE_ERROR:()=>Dc,EVENT_TYPE_FAILED:()=>dr,EVENT_TYPE_PENDING:()=>mr,EVENT_TYPE_READY:()=>We,EVENT_TYPE_RESOLVED:()=>pr,LOG_NAMESPACE:()=>Vn,Landscape:()=>qe,PARAM_AOS_API_KEY:()=>Gc,PARAM_ENV:()=>Rn,PARAM_LANDSCAPE:()=>$n,PARAM_WCS_API_KEY:()=>Hc,STATE_FAILED:()=>te,STATE_PENDING:()=>re,STATE_RESOLVED:()=>ne,TAG_NAME_SERVICE:()=>pe,WCS_PROD_URL:()=>Un,WCS_STAGE_URL:()=>Mn});var cr="placeholder-failed",lr="placeholder-pending",hr="placeholder-resolved",ur="Bad WCS request",On="Commerce offer not found",Mc="Literals URL not provided",Dc="wcms:commerce:error",dr="wcms:placeholder:failed",mr="wcms:placeholder:pending",We="wcms:commerce:ready",pr="wcms:placeholder:resolved",Vn="wcms/commerce",Rn="commerce.env",$n="commerce.landscape",Gc="commerce.aosKey",Hc="commerce.wcsKey",Un="https://www.adobe.com/web_commerce_artifact",Mn="https://www.stage.adobe.com/web_commerce_artifact_stage",te="failed",re="pending",ne="resolved",pe="wcms-commerce",qe={DRAFT:"DRAFT",PUBLISHED:"PUBLISHED"};var Gn={clientId:"merch-at-scale",delimiter:"\xB6",ignoredProperties:["analytics","literals"],serializableTypes:["Array","Object"],sampleRate:30,tags:"consumer=milo/commerce"},ko=new Set,zc=e=>e instanceof Error||typeof e.originatingRequest=="string";function Oo(e){if(e==null)return;let t=typeof e;if(t==="function"){let{name:r}=e;return r?`${t} ${r}`:t}if(t==="object"){if(e instanceof Error)return e.message;if(typeof e.originatingRequest=="string"){let{message:n,originatingRequest:i,status:o}=e;return[n,o,i].filter(a=>a).join(" ")}let r=e[Symbol.toStringTag]??Object.getPrototypeOf(e).constructor.name;if(!Gn.serializableTypes.includes(r))return r}return e}function Fc(e,t){if(!Gn.ignoredProperties.includes(e))return Oo(t)}var Hn={append(e){let{delimiter:t,sampleRate:r,tags:n,clientId:i}=Gn,{message:o,params:a}=e,s=[],c=o,h=[];a.forEach(d=>{d!=null&&(zc(d)?s:h).push(d)}),s.length&&(c+=" ",c+=s.map(Oo).join(" "));let{pathname:l,search:u}=window.location;c+=`${t}page=`,c+=l+u,h.length&&(c+=`${t}facts=`,c+=JSON.stringify(h,Fc)),ko.has(c)||(ko.add(c),window.lana?.log(c,{sampleRate:r,tags:n,clientId:i}))}};var E=Object.freeze({checkoutClientId:"adobe_com",checkoutWorkflow:ce.V3,checkoutWorkflowStep:le.EMAIL,country:"US",displayOldPrice:!0,displayPerUnit:!1,displayRecurrence:!0,displayTax:!1,env:Ce.PRODUCTION,forceTaxExclusive:!1,language:"en",entitlement:!1,extraOptions:{},modal:!1,promotionCode:"",quantity:1,wcsApiKey:"wcms-commerce-ims-ro-user-milo",wcsBufferDelay:1,wcsURL:"https://www.adobe.com/web_commerce_artifact",landscape:qe.PUBLISHED,wcsBufferLimit:1});function Vo(e,{once:t=!1}={}){let r=null;function n(){let i=document.querySelector(pe);i!==r&&(r=i,i&&e(i))}return document.addEventListener(We,n,{once:t}),fe(n),()=>document.removeEventListener(We,n)}function Pt(e,{country:t,forceTaxExclusive:r,perpetual:n}){let i;if(e.length<2)i=e;else{let o=t==="GB"||n?"EN":"MULT",[a,s]=e;i=[a.language===o?a:s]}return r&&(i=i.map(hn)),i}var fe=e=>window.setTimeout(e);function Ze(e,t=1){if(e==null)return[t];let r=(Array.isArray(e)?e:String(e).split(",")).map(Xe).filter(Be);return r.length||(r=[t]),r}function fr(e){return e==null?[]:(Array.isArray(e)?e:String(e).split(",")).filter(tn)}function j(){return window.customElements.get(pe)?.instance}var Kc="en_US",p={ar:"AR_es",be_en:"BE_en",be_fr:"BE_fr",be_nl:"BE_nl",br:"BR_pt",ca:"CA_en",ch_de:"CH_de",ch_fr:"CH_fr",ch_it:"CH_it",cl:"CL_es",co:"CO_es",la:"DO_es",mx:"MX_es",pe:"PE_es",africa:"MU_en",dk:"DK_da",de:"DE_de",ee:"EE_et",eg_ar:"EG_ar",eg_en:"EG_en",es:"ES_es",fr:"FR_fr",gr_el:"GR_el",gr_en:"GR_en",ie:"IE_en",il_he:"IL_iw",it:"IT_it",lv:"LV_lv",lt:"LT_lt",lu_de:"LU_de",lu_en:"LU_en",lu_fr:"LU_fr",my_en:"MY_en",my_ms:"MY_ms",hu:"HU_hu",mt:"MT_en",mena_en:"DZ_en",mena_ar:"DZ_ar",nl:"NL_nl",no:"NO_nb",pl:"PL_pl",pt:"PT_pt",ro:"RO_ro",si:"SI_sl",sk:"SK_sk",fi:"FI_fi",se:"SE_sv",tr:"TR_tr",uk:"GB_en",at:"AT_de",cz:"CZ_cs",bg:"BG_bg",ru:"RU_ru",ua:"UA_uk",au:"AU_en",in_en:"IN_en",in_hi:"IN_hi",id_en:"ID_en",id_id:"ID_in",nz:"NZ_en",sa_ar:"SA_ar",sa_en:"SA_en",sg:"SG_en",cn:"CN_zh-Hans",tw:"TW_zh-Hant",hk_zh:"HK_zh-hant",jp:"JP_ja",kr:"KR_ko",za:"ZA_en",ng:"NG_en",cr:"CR_es",ec:"EC_es",pr:"US_es",gt:"GT_es",cis_en:"AZ_en",cis_ru:"AZ_ru",sea:"SG_en",th_en:"TH_en",th_th:"TH_th"},gr=Object.freeze({LOCAL:"local",PROD:"prod",STAGE:"stage"});function jc({locale:e={}}={}){if(!e.prefix)return{country:E.country,language:E.language,locale:Kc};let t=e.prefix.replace("/","")??"",[r=E.country,n=E.language]=(p[t]??t).split("_",2);return r=r.toUpperCase(),n=n.toLowerCase(),{country:r,language:n,locale:`${n}_${r}`}}function Ro(e={}){let{commerce:t={},locale:r=void 0}=e,n=Ce.PRODUCTION,i=Un,o=["local","stage"].includes(e.env?.name),a=R(Rn,t,{metadata:!1})?.toLowerCase()==="stage";o&&a&&(n=Ce.STAGE,i=Mn);let s=R("checkoutClientId",t)??E.checkoutClientId,c=me(R("checkoutWorkflow",t),ce,E.checkoutWorkflow),h=le.CHECKOUT;c===ce.V3&&(h=me(R("checkoutWorkflowStep",t),le,E.checkoutWorkflowStep));let l=y(R("displayOldPrice",t),E.displayOldPrice),u=y(R("displayPerUnit",t),E.displayPerUnit),d=y(R("displayRecurrence",t),E.displayRecurrence),m=y(R("displayTax",t),E.displayTax),f=y(R("entitlement",t),E.entitlement),v=y(R("modal",t),E.modal),T=y(R("forceTaxExclusive",t),E.forceTaxExclusive),P=R("promotionCode",t)??E.promotionCode,C=Ze(R("quantity",t)),_=R("wcsApiKey",t)??E.wcsApiKey,U=e.env?.name===gr.PROD?qe.PUBLISHED:me(R($n,t),qe,E.landscape),L=Xe(R("wcsBufferDelay",t),E.wcsBufferDelay),I=Xe(R("wcsBufferLimit",t),E.wcsBufferLimit);return{...jc({locale:r}),displayOldPrice:l,checkoutClientId:s,checkoutWorkflow:c,checkoutWorkflowStep:h,displayPerUnit:u,displayRecurrence:d,displayTax:m,entitlement:f,extraOptions:E.extraOptions,modal:v,env:n,forceTaxExclusive:T,promotionCode:P,quantity:C,wcsApiKey:_,wcsBufferDelay:L,wcsBufferLimit:I,wcsURL:i,landscape:U}}var Uo="debug",Bc="error",Yc="info",Xc="warn",Wc=Date.now(),zn=new Set,Fn=new Set,$o=new Map,Ct=Object.freeze({DEBUG:Uo,ERROR:Bc,INFO:Yc,WARN:Xc}),Mo={append({level:e,message:t,params:r,timestamp:n,source:i}){console[e](`${n}ms [${i}] %c${t}`,"font-weight: bold;",...r)}},Do={filter:({level:e})=>e!==Uo},qc={filter:()=>!1};function Zc(e,t,r,n,i){return{level:e,message:t,namespace:r,get params(){if(n.length===1){let[o]=n;de(o)&&(n=o(),Array.isArray(n)||(n=[n]))}return n},source:i,timestamp:Date.now()-Wc}}function Jc(e){[...Fn].every(t=>t(e))&&zn.forEach(t=>t(e))}function Go(e){let t=($o.get(e)??0)+1;$o.set(e,t);let r=`${e} #${t}`,n=o=>(a,...s)=>Jc(Zc(o,a,e,s,r)),i=Object.seal({id:r,namespace:e,module(o){return Go(`${i.namespace}/${o}`)},debug:n(Ct.DEBUG),error:n(Ct.ERROR),info:n(Ct.INFO),warn:n(Ct.WARN)});return i}function xr(...e){e.forEach(t=>{let{append:r,filter:n}=t;de(n)?Fn.add(n):de(r)&&zn.add(r)})}function Qc(e={}){let{name:t}=e,r=y(R("commerce.debug",{search:!0,storage:!0}),t===gr.LOCAL);return xr(r?Mo:Do),t===gr.PROD&&xr(Hn),F}function el(){zn.clear(),Fn.clear()}var F={...Go(Vn),Level:Ct,Plugins:{consoleAppender:Mo,debugFilter:Do,quietFilter:qc,lanaAppender:Hn},init:Qc,reset:el,use:xr};var tl={CLASS_NAME_FAILED:cr,CLASS_NAME_PENDING:lr,CLASS_NAME_RESOLVED:hr,EVENT_TYPE_FAILED:dr,EVENT_TYPE_PENDING:mr,EVENT_TYPE_RESOLVED:pr,STATE_FAILED:te,STATE_PENDING:re,STATE_RESOLVED:ne},rl={[te]:cr,[re]:lr,[ne]:hr},nl={[te]:dr,[re]:mr,[ne]:pr},Ar=new WeakMap;function B(e){if(!Ar.has(e)){let t=F.module(e.constructor.is);Ar.set(e,{changes:new Map,connected:!1,dispose:je,error:void 0,log:t,options:void 0,promises:[],state:re,timer:null,value:void 0,version:0})}return Ar.get(e)}function vr(e){let t=B(e),{error:r,promises:n,state:i}=t;(i===ne||i===te)&&(t.promises=[],i===ne?n.forEach(({resolve:o})=>o(e)):i===te&&n.forEach(({reject:o})=>o(r))),e.dispatchEvent(new CustomEvent(nl[i],{bubbles:!0}))}function br(e){let t=Ar.get(e);[te,re,ne].forEach(r=>{e.classList.toggle(rl[r],r===t.state)})}var il={get error(){return B(this).error},get log(){return B(this).log},get options(){return B(this).options},get state(){return B(this).state},get value(){return B(this).value},attributeChangedCallback(e,t,r){B(this).changes.set(e,r),this.requestUpdate()},connectedCallback(){B(this).dispose=Vo(()=>this.requestUpdate(!0))},disconnectedCallback(){let e=B(this);e.connected&&(e.connected=!1,e.log.debug("Disconnected:",{element:this})),e.dispose(),e.dispose=je},onceSettled(){let{error:e,promises:t,state:r}=B(this);return ne===r?Promise.resolve(this):te===r?Promise.reject(e):new Promise((n,i)=>{t.push({resolve:n,reject:i})})},toggleResolved(e,t,r){let n=B(this);return e!==n.version?!1:(r!==void 0&&(n.options=r),n.state=ne,n.value=t,br(this),this.log.debug("Resolved:",{element:this,value:t}),fe(()=>vr(this)),!0)},toggleFailed(e,t,r){let n=B(this);return e!==n.version?!1:(r!==void 0&&(n.options=r),n.error=t,n.state=te,br(this),n.log.error("Failed:",{element:this,error:t}),fe(()=>vr(this)),!0)},togglePending(e){let t=B(this);return t.version++,e&&(t.options=e),t.state=re,br(this),fe(()=>vr(this)),t.version},requestUpdate(e=!1){if(!this.isConnected||!j())return;let t=B(this);if(t.timer)return;let{error:r,options:n,state:i,value:o,version:a}=t;t.state=re,t.timer=fe(async()=>{t.timer=null;let s=null;if(t.changes.size&&(s=Object.fromEntries(t.changes.entries()),t.changes.clear()),t.connected?t.log.debug("Updated:",{element:this,changes:s}):(t.connected=!0,t.log.debug("Connected:",{element:this,changes:s})),s||e)try{await this.render?.()===!1&&t.state===re&&t.version===a&&(t.state=i,t.error=r,t.value=o,br(this),vr(this))}catch(c){this.toggleFailed(t.version,c,n)}})}};function Ho(e={}){return Object.entries(e).forEach(([t,r])=>{(r==null||r===""||r?.length===0)&&delete e[t]}),e}function Sr(e,t={}){let{tag:r,is:n}=e,i=document.createElement(r,{is:n});return i.setAttribute("is",n),Object.assign(i.dataset,Ho(t)),i}function Er(e){let{tag:t,is:r,prototype:n}=e,i=window.customElements.get(r);return i||(Object.defineProperties(n,Object.getOwnPropertyDescriptors(il)),i=Object.defineProperties(e,Object.getOwnPropertyDescriptors(tl)),window.customElements.define(r,i,{extends:t})),i}function Tr(e,t=document.body){return Array.from(t?.querySelectorAll(`${e.tag}[is="${e.is}"]`)??[])}function yr(e,t={}){return e instanceof HTMLElement?(Object.assign(e.dataset,Ho(t)),e):null}var ol="download",al="upgrade",Ie,Je=class Je extends HTMLAnchorElement{constructor(){super();ze(this,Ie);this.addEventListener("click",this.clickHandler)}static get observedAttributes(){return["data-checkout-workflow","data-checkout-workflow-step","data-extra-options","data-ims-country","data-perpetual","data-promotion-code","data-quantity","data-template","data-wcs-osi","data-entitlement","data-upgrade","data-modal"]}static createCheckoutLink(r={},n=""){let i=j();if(!i)return null;let{checkoutMarketSegment:o,checkoutWorkflow:a,checkoutWorkflowStep:s,entitlement:c,upgrade:h,modal:l,perpetual:u,promotionCode:d,quantity:m,wcsOsi:f,extraOptions:v}=i.collectCheckoutOptions(r),T=Sr(Je,{checkoutMarketSegment:o,checkoutWorkflow:a,checkoutWorkflowStep:s,entitlement:c,upgrade:h,modal:l,perpetual:u,promotionCode:d,quantity:m,wcsOsi:f,extraOptions:v});return n&&(T.innerHTML=`${n}`),T}static getCheckoutLinks(r){return Tr(Je,r)}get isCheckoutLink(){return!0}get placeholder(){return this}clickHandler(r){var n;(n=W(this,Ie))==null||n.call(this,r)}async render(r={}){if(!this.isConnected)return!1;let n=j();if(!n)return!1;this.dataset.imsCountry||n.imsCountryPromise.then(l=>{l&&(this.dataset.imsCountry=l)},je);let i=n.collectCheckoutOptions(r,this.placeholder);if(!i.wcsOsi.length)return!1;let o;try{o=JSON.parse(i.extraOptions??"{}")}catch(l){this.placeholder.log.error("cannot parse exta checkout options",l)}let a=this.placeholder.togglePending(i);this.href="";let s=n.resolveOfferSelectors(i),c=await Promise.all(s);c=c.map(l=>Pt(l,i));let h=await n.buildCheckoutAction(c.flat(),{...o,...i});return this.renderOffers(c.flat(),i,{},h,a)}renderOffers(r,n,i={},o=void 0,a=void 0){if(!this.isConnected)return!1;let s=j();if(!s)return!1;if(n={...JSON.parse(this.placeholder.dataset.extraOptions??"null"),...n,...i},a??(a=this.placeholder.togglePending(n)),W(this,Ie)&&xt(this,Ie,void 0),o){this.classList.remove(ol,al),this.placeholder.toggleResolved(a,r,n);let{url:h,text:l,className:u,handler:d}=o;return h&&(this.href=h),l&&(this.firstElementChild.innerHTML=l),u&&this.classList.add(...u.split(" ")),d&&(this.setAttribute("href","#"),xt(this,Ie,d.bind(this))),!0}else if(r.length){if(this.placeholder.toggleResolved(a,r,n)){let h=s.buildCheckoutURL(r,n);return this.setAttribute("href",h),!0}}else{let h=new Error(`Not provided: ${n?.wcsOsi??"-"}`);if(this.placeholder.toggleFailed(a,h,n))return this.setAttribute("href","#"),!0}return!1}updateOptions(r={}){let n=j();if(!n)return!1;let{checkoutMarketSegment:i,checkoutWorkflow:o,checkoutWorkflowStep:a,entitlement:s,upgrade:c,modal:h,perpetual:l,promotionCode:u,quantity:d,wcsOsi:m}=n.collectCheckoutOptions(r);return yr(this,{checkoutMarketSegment:i,checkoutWorkflow:o,checkoutWorkflowStep:a,entitlement:s,upgrade:c,modal:h,perpetual:l,promotionCode:u,quantity:d,wcsOsi:m}),!0}};Ie=new WeakMap,x(Je,"is","checkout-link"),x(Je,"tag","a");var Kn=Je,jn=Er(Kn);var zo=[p.uk,p.au,p.fr,p.at,p.be_en,p.be_fr,p.be_nl,p.bg,p.ch_de,p.ch_fr,p.ch_it,p.cz,p.de,p.dk,p.ee,p.eg_ar,p.eg_en,p.es,p.fi,p.fr,p.gr_el,p.gr_en,p.hu,p.ie,p.it,p.lu_de,p.lu_en,p.lu_fr,p.nl,p.no,p.pl,p.pt,p.ro,p.se,p.si,p.sk,p.tr,p.ua,p.id_en,p.id_id,p.in_en,p.in_hi,p.jp,p.my_en,p.my_ms,p.nz,p.th_en,p.th_th],sl={INDIVIDUAL_COM:[p.za,p.lt,p.lv,p.ng,p.sa_ar,p.sa_en,p.za,p.sg,p.kr],TEAM_COM:[p.za,p.lt,p.lv,p.ng,p.za,p.co,p.kr],INDIVIDUAL_EDU:[p.lt,p.lv,p.sa_en,p.sea],TEAM_EDU:[p.sea,p.kr]},Qe=class Qe extends HTMLSpanElement{static get observedAttributes(){return["data-display-old-price","data-display-per-unit","data-display-recurrence","data-display-tax","data-perpetual","data-promotion-code","data-tax-exclusive","data-template","data-wcs-osi"]}static createInlinePrice(t){let r=j();if(!r)return null;let{displayOldPrice:n,displayPerUnit:i,displayRecurrence:o,displayTax:a,forceTaxExclusive:s,perpetual:c,promotionCode:h,quantity:l,template:u,wcsOsi:d}=r.collectPriceOptions(t);return Sr(Qe,{displayOldPrice:n,displayPerUnit:i,displayRecurrence:o,displayTax:a,forceTaxExclusive:s,perpetual:c,promotionCode:h,quantity:l,template:u,wcsOsi:d})}static getInlinePrices(t){return Tr(Qe,t)}get isInlinePrice(){return!0}get placeholder(){return this}resolveDisplayTaxForGeoAndSegment(t,r,n,i){let o=`${t}_${r}`;if(zo.includes(t)||zo.includes(o))return!0;let a=sl[`${n}_${i}`];return a?!!(a.includes(t)||a.includes(o)):!1}async resolveDisplayTax(t,r){let[n]=await t.resolveOfferSelectors(r),i=Pt(await n,r);if(i?.length){let{country:o,language:a}=r,s=i[0],[c=""]=s.marketSegments;return this.resolveDisplayTaxForGeoAndSegment(o,a,s.customerSegment,c)}}async render(t={}){if(!this.isConnected)return!1;let r=j();if(!r)return!1;let n=r.collectPriceOptions(t,this.placeholder);if(!n.wcsOsi.length)return!1;let i=this.placeholder.togglePending(n);this.innerHTML="";let[o]=r.resolveOfferSelectors(n);return this.renderOffers(Pt(await o,n),n,i)}renderOffers(t,r={},n=void 0){if(!this.isConnected)return;let i=j();if(!i)return!1;let o=i.collectPriceOptions({...this.dataset,...r});if(n??(n=this.placeholder.togglePending(o)),t.length){if(this.placeholder.toggleResolved(n,t,o))return this.innerHTML=i.buildPriceHTML(t,o),!0}else{let a=new Error(`Not provided: ${o?.wcsOsi??"-"}`);if(this.placeholder.toggleFailed(n,a,o))return this.innerHTML="",!0}return!1}updateOptions(t){let r=j();if(!r)return!1;let{displayOldPrice:n,displayPerUnit:i,displayRecurrence:o,displayTax:a,forceTaxExclusive:s,perpetual:c,promotionCode:h,quantity:l,template:u,wcsOsi:d}=r.collectPriceOptions(t);return yr(this,{displayOldPrice:n,displayPerUnit:i,displayRecurrence:o,displayTax:a,forceTaxExclusive:s,perpetual:c,promotionCode:h,quantity:l,template:u,wcsOsi:d}),!0}};x(Qe,"is","inline-price"),x(Qe,"tag","span");var Bn=Qe,Yn=Er(Bn);function Fo({providers:e,settings:t},r){let n=F.module("checkout");function i(h,l){let{checkoutClientId:u,checkoutWorkflow:d,checkoutWorkflowStep:m,country:f,language:v,promotionCode:T,quantity:P}=t,{checkoutMarketSegment:C,checkoutWorkflow:_=d,checkoutWorkflowStep:U=m,imsCountry:L,country:I=L??f,language:K=v,quantity:Z=P,entitlement:oe,upgrade:ue,modal:J,perpetual:Ee,promotionCode:Te=T,wcsOsi:ae,extraOptions:Q,...Ge}=Object.assign({},l?.dataset??{},h??{}),Kt=me(_,ce,E.checkoutWorkflow),jt=le.CHECKOUT;Kt===ce.V3&&(jt=me(U,le,E.checkoutWorkflowStep));let gt=Ye({...Ge,extraOptions:Q,checkoutClientId:u,checkoutMarketSegment:C,country:I,quantity:Ze(Z,E.quantity),checkoutWorkflow:Kt,checkoutWorkflowStep:jt,language:K,entitlement:y(oe),upgrade:y(ue),modal:y(J),perpetual:y(Ee),promotionCode:At(Te).effectivePromoCode,wcsOsi:fr(ae)});if(l)for(let zr of e.checkout)zr(l,gt);return gt}async function o(h,l){let u=j(),d=await r.getCheckoutAction?.(h,l,u.imsSignedInPromise);return d||null}function a(h,l){if(!Array.isArray(h)||!h.length||!l)return"";let{env:u,landscape:d}=t,{checkoutClientId:m,checkoutMarketSegment:f,checkoutWorkflow:v,checkoutWorkflowStep:T,country:P,promotionCode:C,quantity:_,...U}=i(l),L=window.frameElement?"if":"fp",I={checkoutPromoCode:C,clientId:m,context:L,country:P,env:u,items:[],marketSegment:f,workflowStep:T,landscape:d,...U};if(h.length===1){let[{offerId:K,offerType:Z,productArrangementCode:oe}]=h,{marketSegments:[ue]}=h[0];Object.assign(I,{marketSegment:ue,offerType:Z,productArrangementCode:oe}),I.items.push(_[0]===1?{id:K}:{id:K,quantity:_[0]})}else I.items.push(...h.map(({offerId:K},Z)=>({id:K,quantity:_[Z]??E.quantity})));return Wr(v,I)}let{createCheckoutLink:s,getCheckoutLinks:c}=jn;return{CheckoutLink:jn,CheckoutWorkflow:ce,CheckoutWorkflowStep:le,buildCheckoutAction:o,buildCheckoutURL:a,collectCheckoutOptions:i,createCheckoutLink:s,getCheckoutLinks:c}}function cl({interval:e=200,maxAttempts:t=25}={}){let r=F.module("ims");return new Promise(n=>{r.debug("Waing for IMS to be ready");let i=0;function o(){window.adobeIMS?.initialized?n():++i>t?(r.debug("Timeout"),n()):setTimeout(o,e)}o()})}function ll(e){return e.then(()=>window.adobeIMS?.isSignedInUser()??!1)}function hl(e){let t=F.module("ims");return e.then(r=>r?window.adobeIMS.getProfile().then(({countryCode:n})=>(t.debug("Got user country:",n),n),n=>{t.error("Unable to get user country:",n)}):null)}function Ko({}){let e=cl(),t=ll(e),r=hl(t);return{imsReadyPromise:e,imsSignedInPromise:t,imsCountryPromise:r}}async function Bo(e,t){let{data:r}=t||await Promise.resolve().then(()=>fs(jo(),1));if(Array.isArray(r)){let n=o=>r.find(a=>Wt(a.lang,o)),i=n(e.language)??n(E.language);if(i)return Object.freeze(i)}return{}}function Yo({literals:e,providers:t,settings:r}){function n(s,c){let{country:h,displayOldPrice:l,displayPerUnit:u,displayRecurrence:d,displayTax:m,forceTaxExclusive:f,language:v,promotionCode:T,quantity:P}=r,{displayOldPrice:C=l,displayPerUnit:_=u,displayRecurrence:U=d,displayTax:L=m,forceTaxExclusive:I=f,country:K=h,language:Z=v,perpetual:oe,promotionCode:ue=T,quantity:J=P,template:Ee,wcsOsi:Te,...ae}=Object.assign({},c?.dataset??{},s??{}),Q=Ye({...ae,country:K,displayOldPrice:y(C),displayPerUnit:y(_),displayRecurrence:y(U),displayTax:y(L),forceTaxExclusive:y(I),language:Z,perpetual:y(oe),promotionCode:At(ue).effectivePromoCode,quantity:Ze(J,E.quantity),template:Ee,wcsOsi:fr(Te)});if(c)for(let Ge of t.price)Ge(c,Q);return Q}function i(s,c){if(!Array.isArray(s)||!s.length||!c)return"";let{template:h}=c,l;switch(h){case"discount":l=kn;break;case"strikethrough":l=In;break;case"optical":l=Cn;break;case"annual":l=Nn;break;default:l=c.promotionCode?Pn:wn}let u=n(c);u.literals=Object.assign({},e.price,Ye(c.literals??{}));let[d]=s;return d={...d,...d.priceDetails},l(u,d)}let{createInlinePrice:o,getInlinePrices:a}=Yn;return{InlinePrice:Yn,buildPriceHTML:i,collectPriceOptions:n,createInlinePrice:o,getInlinePrices:a}}function Xo({settings:e}){let t=F.module("wcs"),{env:r,wcsApiKey:n}=e,i=new Map,o=new Map,a;async function s(l,u,d=!0){let m=On;t.debug("Fetching:",l);try{l.offerSelectorIds=l.offerSelectorIds.sort();let f=new URL(e.wcsURL);f.searchParams.set("offer_selector_ids",l.offerSelectorIds.join(",")),f.searchParams.set("country",l.country),f.searchParams.set("locale",l.locale),f.searchParams.set("landscape",r===Ce.STAGE?"ALL":e.landscape),f.searchParams.set("api_key",n),l.language&&f.searchParams.set("language",l.language),l.promotionCode&&f.searchParams.set("promotion_code",l.promotionCode),l.currency&&f.searchParams.set("currency",l.currency);let v=await fetch(f.toString(),{credentials:"omit"});if(v.ok){let T=await v.json();t.debug("Fetched:",l,T);let P=T.resolvedOffers??[];P=P.map(ln),u.forEach(({resolve:C},_)=>{let U=P.filter(({offerSelectorIds:L})=>L.includes(_)).flat();U.length&&(u.delete(_),C(U))})}else v.status===404&&l.offerSelectorIds.length>1?(t.debug("Multi-osi 404, fallback to fetch-by-one strategy"),await Promise.allSettled(l.offerSelectorIds.map(T=>s({...l,offerSelectorIds:[T]},u,!1)))):(m=ur,t.error(m,l))}catch(f){m=ur,t.error(m,l,f)}d&&u.size&&(t.debug("Missing:",{offerSelectorIds:[...u.keys()]}),u.forEach(f=>{f.reject(new Error(m))}))}function c(){clearTimeout(a);let l=[...o.values()];o.clear(),l.forEach(({options:u,promises:d})=>s(u,d))}function h({country:l,language:u,perpetual:d=!1,promotionCode:m="",wcsOsi:f=[]}){let v=`${u}_${l}`;l!=="GB"&&(u=d?"EN":"MULT");let T=[l,u,m].filter(P=>P).join("-").toLowerCase();return f.map(P=>{let C=`${P}-${T}`;if(!i.has(C)){let _=new Promise((U,L)=>{let I=o.get(T);if(!I){let K={country:l,locale:v,offerSelectorIds:[]};l!=="GB"&&(K.language=u),I={options:K,promises:new Map},o.set(T,I)}m&&(I.options.promotionCode=m),I.options.offerSelectorIds.push(P),I.promises.set(P,{resolve:U,reject:L}),I.options.offerSelectorIds.length>=e.wcsBufferLimit?c():(t.debug("Queued:",I.options),a||(a=setTimeout(c,e.wcsBufferDelay)))});i.set(C,_)}return i.get(C)})}return{WcsCommitment:Co,WcsPlanType:Io,WcsTerm:No,resolveOfferSelectors:h}}var Y=class extends HTMLElement{get isWcmsCommerce(){return!0}};x(Y,"instance"),x(Y,"promise",null);window.customElements.define(pe,Y);async function dl(e,t){let r=F.init(e.env).module("service");r.debug("Activating:",e);let n={price:{}},i=Object.freeze(Ro(e));try{n.price=await Bo(i,e.commerce.priceLiterals)}catch(c){r.warn("Price literals were not fetched:",c)}let o={checkout:new Set,price:new Set},a=document.createElement(pe),s={literals:n,providers:o,settings:i};return Y.instance=Object.defineProperties(a,Object.getOwnPropertyDescriptors({...Fo(s,t),...Ko(s),...Yo(s),...Xo(s),...Dn,Log:F,get defaults(){return E},get literals(){return n},get log(){return F},get providers(){return{checkout(c){return o.checkout.add(c),()=>o.checkout.delete(c)},price(c){return o.price.add(c),()=>o.price.delete(c)}}},get settings(){return i}})),r.debug("Activated:",{literals:n,settings:i,element:a}),document.head.append(a),fe(()=>{let c=new CustomEvent(We,{bubbles:!0,cancelable:!1,detail:Y.instance});Y.instance.dispatchEvent(c)}),Y.instance}function Wo(){document.head.querySelector(pe)?.remove(),Y.promise=null,F.reset()}function It(e,t){let r=de(e)?e():null,n=de(t)?t():{};return r&&(n.force&&Wo(),dl(r,n).then(i=>{It.resolve(i)})),Y.promise??(Y.promise=new Promise(i=>{It.resolve=i})),Y.promise}var _r=window,wr=_r.ShadowRoot&&(_r.ShadyCSS===void 0||_r.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Zo=Symbol(),qo=new WeakMap,Lr=class{constructor(t,r,n){if(this._$cssResult$=!0,n!==Zo)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=r}get styleSheet(){let t=this.o,r=this.t;if(wr&&t===void 0){let n=r!==void 0&&r.length===1;n&&(t=qo.get(r)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),n&&qo.set(r,t))}return t}toString(){return this.cssText}},Jo=e=>new Lr(typeof e=="string"?e:e+"",void 0,Zo);var Xn=(e,t)=>{wr?e.adoptedStyleSheets=t.map(r=>r instanceof CSSStyleSheet?r:r.styleSheet):t.forEach(r=>{let n=document.createElement("style"),i=_r.litNonce;i!==void 0&&n.setAttribute("nonce",i),n.textContent=r.cssText,e.appendChild(n)})},Pr=wr?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let r="";for(let n of t.cssRules)r+=n.cssText;return Jo(r)})(e):e;var Wn,Cr=window,Qo=Cr.trustedTypes,ml=Qo?Qo.emptyScript:"",ea=Cr.reactiveElementPolyfillSupport,Zn={toAttribute(e,t){switch(t){case Boolean:e=e?ml:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let r=e;switch(t){case Boolean:r=e!==null;break;case Number:r=e===null?null:Number(e);break;case Object:case Array:try{r=JSON.parse(e)}catch{r=null}}return r}},ta=(e,t)=>t!==e&&(t==t||e==e),qn={attribute:!0,type:String,converter:Zn,reflect:!1,hasChanged:ta},Jn="finalized",Ne=class extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var r;this.finalize(),((r=this.h)!==null&&r!==void 0?r:this.h=[]).push(t)}static get observedAttributes(){this.finalize();let t=[];return this.elementProperties.forEach((r,n)=>{let i=this._$Ep(n,r);i!==void 0&&(this._$Ev.set(i,n),t.push(i))}),t}static createProperty(t,r=qn){if(r.state&&(r.attribute=!1),this.finalize(),this.elementProperties.set(t,r),!r.noAccessor&&!this.prototype.hasOwnProperty(t)){let n=typeof t=="symbol"?Symbol():"__"+t,i=this.getPropertyDescriptor(t,n,r);i!==void 0&&Object.defineProperty(this.prototype,t,i)}}static getPropertyDescriptor(t,r,n){return{get(){return this[r]},set(i){let o=this[t];this[r]=i,this.requestUpdate(t,o,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||qn}static finalize(){if(this.hasOwnProperty(Jn))return!1;this[Jn]=!0;let t=Object.getPrototypeOf(this);if(t.finalize(),t.h!==void 0&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){let r=this.properties,n=[...Object.getOwnPropertyNames(r),...Object.getOwnPropertySymbols(r)];for(let i of n)this.createProperty(i,r[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){let r=[];if(Array.isArray(t)){let n=new Set(t.flat(1/0).reverse());for(let i of n)r.unshift(Pr(i))}else t!==void 0&&r.push(Pr(t));return r}static _$Ep(t,r){let n=r.attribute;return n===!1?void 0:typeof n=="string"?n:typeof t=="string"?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise(r=>this.enableUpdating=r),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(t=this.constructor.h)===null||t===void 0||t.forEach(r=>r(this))}addController(t){var r,n;((r=this._$ES)!==null&&r!==void 0?r:this._$ES=[]).push(t),this.renderRoot!==void 0&&this.isConnected&&((n=t.hostConnected)===null||n===void 0||n.call(t))}removeController(t){var r;(r=this._$ES)===null||r===void 0||r.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((t,r)=>{this.hasOwnProperty(r)&&(this._$Ei.set(r,this[r]),delete this[r])})}createRenderRoot(){var t;let r=(t=this.shadowRoot)!==null&&t!==void 0?t:this.attachShadow(this.constructor.shadowRootOptions);return Xn(r,this.constructor.elementStyles),r}connectedCallback(){var t;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$ES)===null||t===void 0||t.forEach(r=>{var n;return(n=r.hostConnected)===null||n===void 0?void 0:n.call(r)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$ES)===null||t===void 0||t.forEach(r=>{var n;return(n=r.hostDisconnected)===null||n===void 0?void 0:n.call(r)})}attributeChangedCallback(t,r,n){this._$AK(t,n)}_$EO(t,r,n=qn){var i;let o=this.constructor._$Ep(t,n);if(o!==void 0&&n.reflect===!0){let a=(((i=n.converter)===null||i===void 0?void 0:i.toAttribute)!==void 0?n.converter:Zn).toAttribute(r,n.type);this._$El=t,a==null?this.removeAttribute(o):this.setAttribute(o,a),this._$El=null}}_$AK(t,r){var n;let i=this.constructor,o=i._$Ev.get(t);if(o!==void 0&&this._$El!==o){let a=i.getPropertyOptions(o),s=typeof a.converter=="function"?{fromAttribute:a.converter}:((n=a.converter)===null||n===void 0?void 0:n.fromAttribute)!==void 0?a.converter:Zn;this._$El=o,this[o]=s.fromAttribute(r,a.type),this._$El=null}}requestUpdate(t,r,n){let i=!0;t!==void 0&&(((n=n||this.constructor.getPropertyOptions(t)).hasChanged||ta)(this[t],r)?(this._$AL.has(t)||this._$AL.set(t,r),n.reflect===!0&&this._$El!==t&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(t,n))):i=!1),!this.isUpdatePending&&i&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(r){Promise.reject(r)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach((i,o)=>this[o]=i),this._$Ei=void 0);let r=!1,n=this._$AL;try{r=this.shouldUpdate(n),r?(this.willUpdate(n),(t=this._$ES)===null||t===void 0||t.forEach(i=>{var o;return(o=i.hostUpdate)===null||o===void 0?void 0:o.call(i)}),this.update(n)):this._$Ek()}catch(i){throw r=!1,this._$Ek(),i}r&&this._$AE(n)}willUpdate(t){}_$AE(t){var r;(r=this._$ES)===null||r===void 0||r.forEach(n=>{var i;return(i=n.hostUpdated)===null||i===void 0?void 0:i.call(n)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){this._$EC!==void 0&&(this._$EC.forEach((r,n)=>this._$EO(n,this[n],r)),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}};Ne[Jn]=!0,Ne.elementProperties=new Map,Ne.elementStyles=[],Ne.shadowRootOptions={mode:"open"},ea?.({ReactiveElement:Ne}),((Wn=Cr.reactiveElementVersions)!==null&&Wn!==void 0?Wn:Cr.reactiveElementVersions=[]).push("1.6.3");var Qn,Ir=window,et=Ir.trustedTypes,ra=et?et.createPolicy("lit-html",{createHTML:e=>e}):void 0,ti="$lit$",ge=`lit$${(Math.random()+"").slice(9)}$`,la="?"+ge,pl=`<${la}>`,Ve=document,Nr=()=>Ve.createComment(""),kt=e=>e===null||typeof e!="object"&&typeof e!="function",ha=Array.isArray,fl=e=>ha(e)||typeof e?.[Symbol.iterator]=="function",ei=`[ -\f\r]`,Nt=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,na=/-->/g,ia=/>/g,ke=RegExp(`>|${ei}(?:([^\\s"'>=/]+)(${ei}*=${ei}*(?:[^ -\f\r"'\`<>=]|("|')|))|$)`,"g"),oa=/'/g,aa=/"/g,ua=/^(?:script|style|textarea|title)$/i,da=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),Dd=da(1),Gd=da(2),Ot=Symbol.for("lit-noChange"),D=Symbol.for("lit-nothing"),sa=new WeakMap,Oe=Ve.createTreeWalker(Ve,129,null,!1);function ma(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return ra!==void 0?ra.createHTML(t):t}var gl=(e,t)=>{let r=e.length-1,n=[],i,o=t===2?"":"",a=Nt;for(let s=0;s"?(a=i??Nt,u=-1):l[1]===void 0?u=-2:(u=a.lastIndex-l[2].length,h=l[1],a=l[3]===void 0?ke:l[3]==='"'?aa:oa):a===aa||a===oa?a=ke:a===na||a===ia?a=Nt:(a=ke,i=void 0);let m=a===ke&&e[s+1].startsWith("/>")?" ":"";o+=a===Nt?c+pl:u>=0?(n.push(h),c.slice(0,u)+ti+c.slice(u)+ge+m):c+ge+(u===-2?(n.push(void 0),s):m)}return[ma(e,o+(e[r]||"")+(t===2?"":"")),n]},Vt=class e{constructor({strings:t,_$litType$:r},n){let i;this.parts=[];let o=0,a=0,s=t.length-1,c=this.parts,[h,l]=gl(t,r);if(this.el=e.createElement(h,n),Oe.currentNode=this.el.content,r===2){let u=this.el.content,d=u.firstChild;d.remove(),u.append(...d.childNodes)}for(;(i=Oe.nextNode())!==null&&c.length0){i.textContent=et?et.emptyScript:"";for(let m=0;m2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=D}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,r=this,n,i){let o=this.strings,a=!1;if(o===void 0)t=tt(this,t,r,0),a=!kt(t)||t!==this._$AH&&t!==Ot,a&&(this._$AH=t);else{let s=t,c,h;for(t=o[0],c=0;cnew Rt(typeof e=="string"?e:e+"",void 0,si),N=(e,...t)=>{let r=e.length===1?e[0]:t.reduce((n,i,o)=>n+(a=>{if(a._$cssResult$===!0)return a.cssText;if(typeof a=="number")return a;throw Error("Value passed to 'css' function must be a 'css' function result: "+a+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+e[o+1],e[0]);return new Rt(r,e,si)},ci=(e,t)=>{Vr?e.adoptedStyleSheets=t.map(r=>r instanceof CSSStyleSheet?r:r.styleSheet):t.forEach(r=>{let n=document.createElement("style"),i=Or.litNonce;i!==void 0&&n.setAttribute("nonce",i),n.textContent=r.cssText,e.appendChild(n)})},Rr=Vr?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let r="";for(let n of t.cssRules)r+=n.cssText;return xe(r)})(e):e;var li,$r=window,fa=$r.trustedTypes,vl=fa?fa.emptyScript:"",ga=$r.reactiveElementPolyfillSupport,ui={toAttribute(e,t){switch(t){case Boolean:e=e?vl:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let r=e;switch(t){case Boolean:r=e!==null;break;case Number:r=e===null?null:Number(e);break;case Object:case Array:try{r=JSON.parse(e)}catch{r=null}}return r}},xa=(e,t)=>t!==e&&(t==t||e==e),hi={attribute:!0,type:String,converter:ui,reflect:!1,hasChanged:xa},di="finalized",he=class extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var r;this.finalize(),((r=this.h)!==null&&r!==void 0?r:this.h=[]).push(t)}static get observedAttributes(){this.finalize();let t=[];return this.elementProperties.forEach((r,n)=>{let i=this._$Ep(n,r);i!==void 0&&(this._$Ev.set(i,n),t.push(i))}),t}static createProperty(t,r=hi){if(r.state&&(r.attribute=!1),this.finalize(),this.elementProperties.set(t,r),!r.noAccessor&&!this.prototype.hasOwnProperty(t)){let n=typeof t=="symbol"?Symbol():"__"+t,i=this.getPropertyDescriptor(t,n,r);i!==void 0&&Object.defineProperty(this.prototype,t,i)}}static getPropertyDescriptor(t,r,n){return{get(){return this[r]},set(i){let o=this[t];this[r]=i,this.requestUpdate(t,o,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||hi}static finalize(){if(this.hasOwnProperty(di))return!1;this[di]=!0;let t=Object.getPrototypeOf(this);if(t.finalize(),t.h!==void 0&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){let r=this.properties,n=[...Object.getOwnPropertyNames(r),...Object.getOwnPropertySymbols(r)];for(let i of n)this.createProperty(i,r[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){let r=[];if(Array.isArray(t)){let n=new Set(t.flat(1/0).reverse());for(let i of n)r.unshift(Rr(i))}else t!==void 0&&r.push(Rr(t));return r}static _$Ep(t,r){let n=r.attribute;return n===!1?void 0:typeof n=="string"?n:typeof t=="string"?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise(r=>this.enableUpdating=r),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(t=this.constructor.h)===null||t===void 0||t.forEach(r=>r(this))}addController(t){var r,n;((r=this._$ES)!==null&&r!==void 0?r:this._$ES=[]).push(t),this.renderRoot!==void 0&&this.isConnected&&((n=t.hostConnected)===null||n===void 0||n.call(t))}removeController(t){var r;(r=this._$ES)===null||r===void 0||r.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((t,r)=>{this.hasOwnProperty(r)&&(this._$Ei.set(r,this[r]),delete this[r])})}createRenderRoot(){var t;let r=(t=this.shadowRoot)!==null&&t!==void 0?t:this.attachShadow(this.constructor.shadowRootOptions);return ci(r,this.constructor.elementStyles),r}connectedCallback(){var t;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$ES)===null||t===void 0||t.forEach(r=>{var n;return(n=r.hostConnected)===null||n===void 0?void 0:n.call(r)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$ES)===null||t===void 0||t.forEach(r=>{var n;return(n=r.hostDisconnected)===null||n===void 0?void 0:n.call(r)})}attributeChangedCallback(t,r,n){this._$AK(t,n)}_$EO(t,r,n=hi){var i;let o=this.constructor._$Ep(t,n);if(o!==void 0&&n.reflect===!0){let a=(((i=n.converter)===null||i===void 0?void 0:i.toAttribute)!==void 0?n.converter:ui).toAttribute(r,n.type);this._$El=t,a==null?this.removeAttribute(o):this.setAttribute(o,a),this._$El=null}}_$AK(t,r){var n;let i=this.constructor,o=i._$Ev.get(t);if(o!==void 0&&this._$El!==o){let a=i.getPropertyOptions(o),s=typeof a.converter=="function"?{fromAttribute:a.converter}:((n=a.converter)===null||n===void 0?void 0:n.fromAttribute)!==void 0?a.converter:ui;this._$El=o,this[o]=s.fromAttribute(r,a.type),this._$El=null}}requestUpdate(t,r,n){let i=!0;t!==void 0&&(((n=n||this.constructor.getPropertyOptions(t)).hasChanged||xa)(this[t],r)?(this._$AL.has(t)||this._$AL.set(t,r),n.reflect===!0&&this._$El!==t&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(t,n))):i=!1),!this.isUpdatePending&&i&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(r){Promise.reject(r)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach((i,o)=>this[o]=i),this._$Ei=void 0);let r=!1,n=this._$AL;try{r=this.shouldUpdate(n),r?(this.willUpdate(n),(t=this._$ES)===null||t===void 0||t.forEach(i=>{var o;return(o=i.hostUpdate)===null||o===void 0?void 0:o.call(i)}),this.update(n)):this._$Ek()}catch(i){throw r=!1,this._$Ek(),i}r&&this._$AE(n)}willUpdate(t){}_$AE(t){var r;(r=this._$ES)===null||r===void 0||r.forEach(n=>{var i;return(i=n.hostUpdated)===null||i===void 0?void 0:i.call(n)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){this._$EC!==void 0&&(this._$EC.forEach((r,n)=>this._$EO(n,this[n],r)),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}};he[di]=!0,he.elementProperties=new Map,he.elementStyles=[],he.shadowRootOptions={mode:"open"},ga?.({ReactiveElement:he}),((li=$r.reactiveElementVersions)!==null&&li!==void 0?li:$r.reactiveElementVersions=[]).push("1.6.3");var mi,Ur=window,nt=Ur.trustedTypes,va=nt?nt.createPolicy("lit-html",{createHTML:e=>e}):void 0,fi="$lit$",ve=`lit$${(Math.random()+"").slice(9)}$`,_a="?"+ve,bl=`<${_a}>`,Ue=document,Ut=()=>Ue.createComment(""),Mt=e=>e===null||typeof e!="object"&&typeof e!="function",La=Array.isArray,Al=e=>La(e)||typeof e?.[Symbol.iterator]=="function",pi=`[ -\f\r]`,$t=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,ba=/-->/g,Aa=/>/g,Re=RegExp(`>|${pi}(?:([^\\s"'>=/]+)(${pi}*=${pi}*(?:[^ -\f\r"'\`<>=]|("|')|))|$)`,"g"),Sa=/'/g,Ea=/"/g,wa=/^(?:script|style|textarea|title)$/i,Pa=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),g=Pa(1),Bd=Pa(2),Me=Symbol.for("lit-noChange"),G=Symbol.for("lit-nothing"),Ta=new WeakMap,$e=Ue.createTreeWalker(Ue,129,null,!1);function Ca(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return va!==void 0?va.createHTML(t):t}var Sl=(e,t)=>{let r=e.length-1,n=[],i,o=t===2?"":"",a=$t;for(let s=0;s"?(a=i??$t,u=-1):l[1]===void 0?u=-2:(u=a.lastIndex-l[2].length,h=l[1],a=l[3]===void 0?Re:l[3]==='"'?Ea:Sa):a===Ea||a===Sa?a=Re:a===ba||a===Aa?a=$t:(a=Re,i=void 0);let m=a===Re&&e[s+1].startsWith("/>")?" ":"";o+=a===$t?c+bl:u>=0?(n.push(h),c.slice(0,u)+fi+c.slice(u)+ve+m):c+ve+(u===-2?(n.push(void 0),s):m)}return[Ca(e,o+(e[r]||"")+(t===2?"":"")),n]},Dt=class e{constructor({strings:t,_$litType$:r},n){let i;this.parts=[];let o=0,a=0,s=t.length-1,c=this.parts,[h,l]=Sl(t,r);if(this.el=e.createElement(h,n),$e.currentNode=this.el.content,r===2){let u=this.el.content,d=u.firstChild;d.remove(),u.append(...d.childNodes)}for(;(i=$e.nextNode())!==null&&c.length0){i.textContent=nt?nt.emptyScript:"";for(let m=0;m2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=G}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,r=this,n,i){let o=this.strings,a=!1;if(o===void 0)t=it(this,t,r,0),a=!Mt(t)||t!==this._$AH&&t!==Me,a&&(this._$AH=t);else{let s=t,c,h;for(t=o[0],c=0;c{var n,i;let o=(n=r?.renderBefore)!==null&&n!==void 0?n:t,a=o._$litPart$;if(a===void 0){let s=(i=r?.renderBefore)!==null&&i!==void 0?i:null;o._$litPart$=a=new Gt(t.insertBefore(Ut(),s),s,void 0,r??{})}return a._$AI(e),a};var Si,Ei;var ie=class extends he{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,r;let n=super.createRenderRoot();return(t=(r=this.renderOptions).renderBefore)!==null&&t!==void 0||(r.renderBefore=n.firstChild),n}update(t){let r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=Ia(r,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),(t=this._$Do)===null||t===void 0||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this._$Do)===null||t===void 0||t.setConnected(!1)}render(){return Me}};ie.finalized=!0,ie._$litElement$=!0,(Si=globalThis.litElementHydrateSupport)===null||Si===void 0||Si.call(globalThis,{LitElement:ie});var Na=globalThis.litElementPolyfillSupport;Na?.({LitElement:ie});((Ei=globalThis.litElementVersions)!==null&&Ei!==void 0?Ei:globalThis.litElementVersions=[]).push("3.3.3");var be="(max-width: 767px)",Mr="(max-width: 1199px)",$="(min-width: 768px)",k="(min-width: 1200px)",H="(min-width: 1600px)";var ka=N` +`,Te.MISSING_INTL_API,a);var V=r.getPluralRules(t,{type:h.pluralType}).select(d-(h.offset||0));L=h.options[V]||h.options.other}if(!L)throw new gn(h.value,d,Object.keys(h.options),a);s.push.apply(s,Lt(L.value,t,r,n,i,d-(h.offset||0)));continue}}return uc(s)}function mc(e,t){return t?E(E(E({},e||{}),t||{}),Object.keys(e).reduce(function(r,n){return r[n]=E(E({},e[n]),t[n]||{}),r},{})):e}function pc(e,t){return t?Object.keys(e).reduce(function(r,n){return r[n]=mc(e[n],t[n]),r},E({},e)):e}function xn(e){return{create:function(){return{get:function(t){return e[t]},set:function(t,r){e[t]=r}}}}}function fc(e){return e===void 0&&(e={number:{},dateTime:{},pluralRules:{}}),{getNumberFormat:yt(function(){for(var t,r=[],n=0;n0?e.substring(0,n):"";let i=bo(e.split("").reverse().join("")),o=r-i,a=e.substring(o,o+1),s=o+(a==="."||a===","?1:0);t.suffix=i>0?e.substring(s,r):"",t.mask=e.substring(n,s),t.maskHasNegativeSign=t.mask.charAt(0)==="-",t.maskHasPositiveSign=t.mask.charAt(0)==="+";let c=t.mask.match(xc);return t.decimal=c&&c[c.length-1]||".",t.separator=c&&c[1]&&c[0]||",",c=t.mask.split(t.decimal),t.integer=c[0],t.fraction=c[1],t}function bc(e,t,r){let n=!1,i={value:e};e<0&&(n=!0,i.value=-i.value),i.sign=n?"-":"",i.value=Number(i.value).toFixed(t.fraction&&t.fraction.length),i.value=Number(i.value).toString();let o=t.fraction&&t.fraction.lastIndexOf("0"),[a="0",s=""]=i.value.split(".");return(!s||s&&s.length<=o)&&(s=o<0?"":(+("0."+s)).toFixed(o+1).replace("0.","")),i.integer=a,i.fraction=s,Ac(i,t),(i.result==="0"||i.result==="")&&(n=!1,i.sign=""),!n&&t.maskHasPositiveSign?i.sign="+":n&&t.maskHasPositiveSign?i.sign="-":n&&(i.sign=r&&r.enforceMaskSign&&!t.maskHasNegativeSign?"":"-"),i}function Ac(e,t){e.result="";let r=t.integer.split(t.separator),n=r.join(""),i=n&&n.indexOf("0");if(i>-1)for(;e.integer.lengthMath.round(e*20)/20},vn=(e,t)=>({accept:e,round:t}),_c=[vn(({divisor:e,price:t})=>t%e==0,({divisor:e,price:t})=>t/e),vn(({usePrecision:e})=>e,({divisor:e,price:t})=>Math.ceil(Math.floor(t*1e4/e)/100)/100),vn(()=>!0,({divisor:e,price:t})=>Math.ceil(Math.floor(t*100/e)/100))],bn={[$.YEAR]:{[k.MONTHLY]:wt.MONTH,[k.ANNUAL]:wt.YEAR},[$.MONTH]:{[k.MONTHLY]:wt.MONTH}},Lc=(e,t)=>e.indexOf(`'${t}'`)===0,wc=(e,t=!0)=>{let r=e.replace(/'.*?'/,"").trim(),n=Lo(r);return!!n?t||(r=r.replace(/[,\.]0+/,n)):r=r.replace(/\s?(#.*0)(?!\s)?/,"$&"+Cc(e)),r},Pc=e=>{let t=Nc(e),r=Lc(e,t),n=e.replace(/'.*?'/,""),i=To.test(n)||yo.test(n);return{currencySymbol:t,isCurrencyFirst:r,hasCurrencySpace:i}},_o=e=>e.replace(To,So).replace(yo,So),Cc=e=>e.match(/#(.?)#/)?.[1]===Eo?Sc:Eo,Nc=e=>e.match(/'(.*?)'/)?.[1]??"",Lo=e=>e.match(/0(.?)0/)?.[1]??"";function hr({formatString:e,price:t,usePrecision:r,isIndianPrice:n=!1},i,o=a=>a){let{currencySymbol:a,isCurrencyFirst:s,hasCurrencySpace:c}=Pc(e),l=r?Lo(e):"",h=wc(e,r),u=r?2:0,d=o(t,{currencySymbol:a}),m=n?d.toLocaleString("hi-IN",{minimumFractionDigits:u,maximumFractionDigits:u}):Ao(h,d),x=r?m.lastIndexOf(l):m.length,f=m.substring(0,x),S=m.substring(x+1);return{accessiblePrice:e.replace(/'.*?'/,"SYMBOL").replace(/#.*0/,m).replace(/SYMBOL/,a),currencySymbol:a,decimals:S,decimalsDelimiter:l,hasCurrencySpace:c,integer:f,isCurrencyFirst:s,recurrenceTerm:i}}var wo=e=>{let{commitment:t,term:r,usePrecision:n}=e,i=Tc[r]??1;return hr(e,i>1?wt.MONTH:bn[t]?.[r],(o,{currencySymbol:a})=>{let s={divisor:i,price:o,usePrecision:n},{round:c}=_c.find(({accept:h})=>h(s));if(!c)throw new Error(`Missing rounding rule for: ${JSON.stringify(s)}`);return(yc[a]??(h=>h))(c(s))})},Po=({commitment:e,term:t,...r})=>hr(r,bn[e]?.[t]),Co=e=>{let{commitment:t,term:r}=e;return t===$.YEAR&&r===k.MONTHLY?hr(e,wt.YEAR,n=>n*12):hr(e,bn[t]?.[r])};var Ic={recurrenceLabel:"{recurrenceTerm, select, MONTH {/mo} YEAR {/yr} other {}}",recurrenceAriaLabel:"{recurrenceTerm, select, MONTH {per month} YEAR {per year} other {}}",perUnitLabel:"{perUnit, select, LICENSE {per license} other {}}",perUnitAriaLabel:"{perUnit, select, LICENSE {per license} other {}}",freeLabel:"Free",freeAriaLabel:"Free",taxExclusiveLabel:"{taxTerm, select, GST {excl. GST} VAT {excl. VAT} TAX {excl. tax} IVA {excl. IVA} SST {excl. SST} KDV {excl. KDV} other {}}",taxInclusiveLabel:"{taxTerm, select, GST {incl. GST} VAT {incl. VAT} TAX {incl. tax} IVA {incl. IVA} SST {incl. SST} KDV {incl. KDV} other {}}",alternativePriceAriaLabel:"Alternatively at {alternativePrice}",strikethroughAriaLabel:"Regularly at {strikethroughPrice}"},kc=zi("ConsonantTemplates/price"),Oc=/<.+?>/g,F={container:"price",containerOptical:"price-optical",containerStrikethrough:"price-strikethrough",containerAnnual:"price-annual",disabled:"disabled",currencySpace:"price-currency-space",currencySymbol:"price-currency-symbol",decimals:"price-decimals",decimalsDelimiter:"price-decimals-delimiter",integer:"price-integer",recurrence:"price-recurrence",taxInclusivity:"price-tax-inclusivity",unitType:"price-unit-type"},ye={perUnitLabel:"perUnitLabel",perUnitAriaLabel:"perUnitAriaLabel",recurrenceLabel:"recurrenceLabel",recurrenceAriaLabel:"recurrenceAriaLabel",taxExclusiveLabel:"taxExclusiveLabel",taxInclusiveLabel:"taxInclusiveLabel",strikethroughAriaLabel:"strikethroughAriaLabel"},Vc="TAX_EXCLUSIVE",Rc=e=>Hi(e)?Object.entries(e).filter(([,t])=>Fe(t)||Jt(t)||t===!0).reduce((t,[r,n])=>t+` ${r}${n===!0?"":'="'+Di(n)+'"'}`,""):"",Q=(e,t,r,n=!1)=>`${n?_o(t):t??""}`;function $c(e,{accessibleLabel:t,currencySymbol:r,decimals:n,decimalsDelimiter:i,hasCurrencySpace:o,integer:a,isCurrencyFirst:s,recurrenceLabel:c,perUnitLabel:l,taxInclusivityLabel:h},u={}){let d=Q(F.currencySymbol,r),m=Q(F.currencySpace,o?" ":""),x="";return s&&(x+=d+m),x+=Q(F.integer,a),x+=Q(F.decimalsDelimiter,i),x+=Q(F.decimals,n),s||(x+=m+d),x+=Q(F.recurrence,c,null,!0),x+=Q(F.unitType,l,null,!0),x+=Q(F.taxInclusivity,h,!0),Q(e,x,{...u,"aria-label":t})}var _e=({displayOptical:e=!1,displayStrikethrough:t=!1,displayAnnual:r=!1}={})=>({country:n,displayFormatted:i=!0,displayRecurrence:o=!0,displayPerUnit:a=!1,displayTax:s=!1,language:c,literals:l={}}={},{commitment:h,formatString:u,price:d,priceWithoutDiscount:m,taxDisplay:x,taxTerm:f,term:S,usePrecision:C}={},_={})=>{Object.entries({country:n,formatString:u,language:c,price:d}).forEach(([oe,$r])=>{if($r==null)throw new Error(`Argument "${oe}" is missing`)});let L={...Ic,...l},V=`${c.toLowerCase()}-${n.toUpperCase()}`;function A(oe,$r){let Mr=L[oe];if(Mr==null)return"";try{return new vo(Mr.replace(Oc,""),V).format($r)}catch{return kc.error("Failed to format literal:",Mr),""}}let M=t&&m?m:d,H=e?wo:Po;r&&(H=Co);let{accessiblePrice:X,recurrenceTerm:ue,...De}=H({commitment:h,formatString:u,term:S,price:e?d:M,usePrecision:C,isIndianPrice:n==="IN"}),W=X,be="";if(T(o)&&ue){let oe=A(ye.recurrenceAriaLabel,{recurrenceTerm:ue});oe&&(W+=" "+oe),be=A(ye.recurrenceLabel,{recurrenceTerm:ue})}let Ae="";if(T(a)){Ae=A(ye.perUnitLabel,{perUnit:"LICENSE"});let oe=A(ye.perUnitAriaLabel,{perUnit:"LICENSE"});oe&&(W+=" "+oe)}let q="";T(s)&&f&&(q=A(x===Vc?ye.taxExclusiveLabel:ye.taxInclusiveLabel,{taxTerm:f}),q&&(W+=" "+q)),t&&(W=A(ye.strikethroughAriaLabel,{strikethroughPrice:W}));let Z=F.container;if(e&&(Z+=" "+F.containerOptical),t&&(Z+=" "+F.containerStrikethrough),r&&(Z+=" "+F.containerAnnual),T(i))return $c(Z,{...De,accessibleLabel:W,recurrenceLabel:be,perUnitLabel:Ae,taxInclusivityLabel:q},_);let{currencySymbol:gt,decimals:Yt,decimalsDelimiter:Rr,hasCurrencySpace:Oi,integer:ns,isCurrencyFirst:is}=De,Ge=[ns,Rr,Yt];is?(Ge.unshift(Oi?"\xA0":""),Ge.unshift(gt)):(Ge.push(Oi?"\xA0":""),Ge.push(gt)),Ge.push(be,Ae,q);let os=Ge.join("");return Q(Z,os,_)},No=()=>(e,t,r)=>{let i=(e.displayOldPrice===void 0||T(e.displayOldPrice))&&t.priceWithoutDiscount&&t.priceWithoutDiscount!=t.price;return`${_e()(e,t,r)}${i?" "+_e({displayStrikethrough:!0})(e,t,r):""}`};var An=_e(),En=No(),Sn=_e({displayOptical:!0}),Tn=_e({displayStrikethrough:!0}),yn=_e({displayAnnual:!0});var Mc=(e,t)=>{if(!(!Be(e)||!Be(t)))return Math.floor((t-e)/t*100)},Io=()=>(e,t,r)=>{let{price:n,priceWithoutDiscount:i}=t,o=Mc(n,i);return o===void 0?'':`${o}%`};var _n=Io();var{freeze:Pt}=Object,ee=Pt({...Ee}),te=Pt({...Y}),Le={STAGE:"STAGE",PRODUCTION:"PRODUCTION",LOCAL:"LOCAL"},Ln=Pt({...$}),wn=Pt({...Ki}),Pn=Pt({...k});var Hn={};ms(Hn,{CLASS_NAME_FAILED:()=>Cn,CLASS_NAME_PENDING:()=>Nn,CLASS_NAME_RESOLVED:()=>In,ERROR_MESSAGE_BAD_REQUEST:()=>ur,ERROR_MESSAGE_MISSING_LITERALS_URL:()=>Uc,ERROR_MESSAGE_OFFER_NOT_FOUND:()=>kn,EVENT_TYPE_ERROR:()=>Dc,EVENT_TYPE_FAILED:()=>On,EVENT_TYPE_PENDING:()=>Vn,EVENT_TYPE_READY:()=>Xe,EVENT_TYPE_RESOLVED:()=>Rn,LOG_NAMESPACE:()=>$n,Landscape:()=>we,PARAM_AOS_API_KEY:()=>Gc,PARAM_ENV:()=>Mn,PARAM_LANDSCAPE:()=>Un,PARAM_WCS_API_KEY:()=>Hc,STATE_FAILED:()=>ae,STATE_PENDING:()=>se,STATE_RESOLVED:()=>ce,WCS_PROD_URL:()=>Dn,WCS_STAGE_URL:()=>Gn});var Cn="placeholder-failed",Nn="placeholder-pending",In="placeholder-resolved",ur="Bad WCS request",kn="Commerce offer not found",Uc="Literals URL not provided",Dc="mas:commerce:error",On="mas:failed",Vn="mas:pending",Xe="mas:commerce:ready",Rn="mas:resolved",$n="mas/commerce",Mn="commerce.env",Un="commerce.landscape",Gc="commerce.aosKey",Hc="commerce.wcsKey",Dn="https://www.adobe.com/web_commerce_artifact",Gn="https://www.stage.adobe.com/web_commerce_artifact_stage",ae="failed",se="pending",ce="resolved",we={DRAFT:"DRAFT",PUBLISHED:"PUBLISHED"};var ko="mas-commerce-service";function Oo(e,{once:t=!1}={}){let r=null;function n(){let i=document.querySelector(ko);i!==r&&(r=i,i&&e(i))}return document.addEventListener(Xe,n,{once:t}),me(n),()=>document.removeEventListener(Xe,n)}function Ct(e,{country:t,forceTaxExclusive:r,perpetual:n}){let i;if(e.length<2)i=e;else{let o=t==="GB"||n?"EN":"MULT",[a,s]=e;i=[a.language===o?a:s]}return r&&(i=i.map(rn)),i}var me=e=>window.setTimeout(e);function We(e,t=1){if(e==null)return[t];let r=(Array.isArray(e)?e:String(e).split(",")).map(Ye).filter(Be);return r.length||(r=[t]),r}function dr(e){return e==null?[]:(Array.isArray(e)?e:String(e).split(",")).filter(Wr)}function j(){return document.getElementsByTagName(ko)?.[0]}var zc={[ae]:Cn,[se]:Nn,[ce]:In},Fc={[ae]:On,[se]:Vn,[ce]:Rn},qe=class{constructor(t){p(this,"changes",new Map);p(this,"connected",!1);p(this,"dispose",Ke);p(this,"error");p(this,"log");p(this,"options");p(this,"promises",[]);p(this,"state",se);p(this,"timer",null);p(this,"value");p(this,"version",0);p(this,"wrapperElement");this.wrapperElement=t}update(){[ae,se,ce].forEach(t=>{this.wrapperElement.classList.toggle(zc[t],t===this.state)})}notify(){(this.state===ce||this.state===ae)&&(this.state===ce?this.promises.forEach(({resolve:t})=>t(this.wrapperElement)):this.state===ae&&this.promises.forEach(({reject:t})=>t(this.error)),this.promises=[]),this.wrapperElement.dispatchEvent(new CustomEvent(Fc[this.state],{bubbles:!0}))}attributeChangedCallback(t,r,n){this.changes.set(t,n),this.requestUpdate()}connectedCallback(){this.dispose=Oo(()=>this.requestUpdate(!0))}disconnectedCallback(){this.connected&&(this.connected=!1,this.log?.debug("Disconnected:",{element:this.wrapperElement})),this.dispose(),this.dispose=Ke}onceSettled(){let{error:t,promises:r,state:n}=this;return ce===n?Promise.resolve(this.wrapperElement):ae===n?Promise.reject(t):new Promise((i,o)=>{r.push({resolve:i,reject:o})})}toggleResolved(t,r,n){return t!==this.version?!1:(n!==void 0&&(this.options=n),this.state=ce,this.value=r,this.update(),this.log?.debug("Resolved:",{element:this.wrapperElement,value:r}),me(()=>this.notify()),!0)}toggleFailed(t,r,n){return t!==this.version?!1:(n!==void 0&&(this.options=n),this.error=r,this.state=ae,this.update(),this.log?.error("Failed:",{element:this.wrapperElement,error:r}),me(()=>this.notify()),!0)}togglePending(t){return this.version++,t&&(this.options=t),this.state=se,this.update(),me(()=>this.notify()),this.version}requestUpdate(t=!1){if(!this.wrapperElement.isConnected||!j()||this.timer)return;let{error:r,options:n,state:i,value:o,version:a}=this;this.state=se,this.timer=me(async()=>{this.timer=null;let s=null;if(this.changes.size&&(s=Object.fromEntries(this.changes.entries()),this.changes.clear()),this.connected?this.log?.debug("Updated:",{element:this.wrapperElement,changes:s}):(this.connected=!0,this.log?.debug("Connected:",{element:this.wrapperElement,changes:s})),s||t)try{await this.wrapperElement.render?.()===!1&&this.state===se&&this.version===a&&(this.state=i,this.error=r,this.value=o,this.update(),this.notify())}catch(c){this.toggleFailed(this.version,c,n)}})}};function Vo(e={}){return Object.entries(e).forEach(([t,r])=>{(r==null||r===""||r?.length===0)&&delete e[t]}),e}function mr(e,t={}){let{tag:r,is:n}=e,i=document.createElement(r,{is:n});return i.setAttribute("is",n),Object.assign(i.dataset,Vo(t)),i}function pr(e,t={}){return e instanceof HTMLElement?(Object.assign(e.dataset,Vo(t)),e):null}var Kc="download",Bc="upgrade",Pe,Nt=class Nt extends HTMLAnchorElement{constructor(){super();J(this,Pe);p(this,"masElement",new qe(this));this.addEventListener("click",this.clickHandler)}attributeChangedCallback(r,n,i){this.masElement.attributeChangedCallback(r,n,i)}connectedCallback(){this.masElement.connectedCallback()}disconnectedCallback(){this.masElement.disconnectedCallback()}onceSettled(){return this.masElement.onceSettled()}get value(){return this.masElement.value}requestUpdate(r=!1){return this.masElement.requestUpdate(r)}static get observedAttributes(){return["data-checkout-workflow","data-checkout-workflow-step","data-extra-options","data-ims-country","data-perpetual","data-promotion-code","data-quantity","data-template","data-wcs-osi","data-entitlement","data-upgrade","data-modal"]}static createCheckoutLink(r={},n=""){let i=j();if(!i)return null;let{checkoutMarketSegment:o,checkoutWorkflow:a,checkoutWorkflowStep:s,entitlement:c,upgrade:l,modal:h,perpetual:u,promotionCode:d,quantity:m,wcsOsi:x,extraOptions:f}=i.collectCheckoutOptions(r),S=mr(Nt,{checkoutMarketSegment:o,checkoutWorkflow:a,checkoutWorkflowStep:s,entitlement:c,upgrade:l,modal:h,perpetual:u,promotionCode:d,quantity:m,wcsOsi:x,extraOptions:f});return n&&(S.innerHTML=`${n}`),S}get isCheckoutLink(){return!0}clickHandler(r){var n;(n=B(this,Pe))==null||n.call(this,r)}async render(r={}){if(!this.isConnected)return!1;let n=j();if(!n)return!1;this.dataset.imsCountry||n.imsCountryPromise.then(h=>{h&&(this.dataset.imsCountry=h)},Ke);let i=n.collectCheckoutOptions(r,this);if(!i.wcsOsi.length)return!1;let o;try{o=JSON.parse(i.extraOptions??"{}")}catch(h){this.masElement.log?.error("cannot parse exta checkout options",h)}let a=this.masElement.togglePending(i);this.href="";let s=n.resolveOfferSelectors(i),c=await Promise.all(s);c=c.map(h=>Ct(h,i));let l=await n.buildCheckoutAction?.(c.flat(),{...o,...i});return this.renderOffers(c.flat(),i,{},l,a)}renderOffers(r,n,i={},o=void 0,a=void 0){if(!this.isConnected)return!1;let s=j();if(!s)return!1;if(n={...JSON.parse(this.dataset.extraOptions??"null"),...n,...i},a??(a=this.masElement.togglePending(n)),B(this,Pe)&&xt(this,Pe,void 0),o){this.classList.remove(Kc,Bc),this.masElement.toggleResolved(a,r,n);let{url:l,text:h,className:u,handler:d}=o;return l&&(this.href=l),h&&(this.firstElementChild.innerHTML=h),u&&this.classList.add(...u.split(" ")),d&&(this.setAttribute("href","#"),xt(this,Pe,d.bind(this))),!0}else if(r.length){if(this.masElement.toggleResolved(a,r,n)){let l=s.buildCheckoutURL(r,n);return this.setAttribute("href",l),!0}}else{let l=new Error(`Not provided: ${n?.wcsOsi??"-"}`);if(this.masElement.toggleFailed(a,l,n))return this.setAttribute("href","#"),!0}return!1}updateOptions(r={}){let n=j();if(!n)return!1;let{checkoutMarketSegment:i,checkoutWorkflow:o,checkoutWorkflowStep:a,entitlement:s,upgrade:c,modal:l,perpetual:h,promotionCode:u,quantity:d,wcsOsi:m}=n.collectCheckoutOptions(r);return pr(this,{checkoutMarketSegment:i,checkoutWorkflow:o,checkoutWorkflowStep:a,entitlement:s,upgrade:c,modal:l,perpetual:h,promotionCode:u,quantity:d,wcsOsi:m}),!0}};Pe=new WeakMap,p(Nt,"is","checkout-link"),p(Nt,"tag","a");var re=Nt;window.customElements.get(re.is)||window.customElements.define(re.is,re,{extends:re.tag});var y=Object.freeze({checkoutClientId:"adobe_com",checkoutWorkflow:ee.V3,checkoutWorkflowStep:te.EMAIL,country:"US",displayOldPrice:!0,displayPerUnit:!1,displayRecurrence:!0,displayTax:!1,env:Le.PRODUCTION,forceTaxExclusive:!1,language:"en",entitlement:!1,extraOptions:{},modal:!1,promotionCode:"",quantity:1,wcsApiKey:"wcms-commerce-ims-ro-user-milo",wcsBufferDelay:1,wcsURL:"https://www.adobe.com/web_commerce_artifact",landscape:we.PUBLISHED,wcsBufferLimit:1});var zn={clientId:"merch-at-scale",delimiter:"\xB6",ignoredProperties:["analytics","literals"],serializableTypes:["Array","Object"],sampleRate:30,tags:"consumer=milo/commerce"},Ro=new Set,jc=e=>e instanceof Error||typeof e.originatingRequest=="string";function $o(e){if(e==null)return;let t=typeof e;if(t==="function"){let{name:r}=e;return r?`${t} ${r}`:t}if(t==="object"){if(e instanceof Error)return e.message;if(typeof e.originatingRequest=="string"){let{message:n,originatingRequest:i,status:o}=e;return[n,o,i].filter(a=>a).join(" ")}let r=e[Symbol.toStringTag]??Object.getPrototypeOf(e).constructor.name;if(!zn.serializableTypes.includes(r))return r}return e}function Yc(e,t){if(!zn.ignoredProperties.includes(e))return $o(t)}var Fn={append(e){let{delimiter:t,sampleRate:r,tags:n,clientId:i}=zn,{message:o,params:a}=e,s=[],c=o,l=[];a.forEach(d=>{d!=null&&(jc(d)?s:l).push(d)}),s.length&&(c+=" ",c+=s.map($o).join(" "));let{pathname:h,search:u}=window.location;c+=`${t}page=`,c+=h+u,l.length&&(c+=`${t}facts=`,c+=JSON.stringify(l,Yc)),Ro.has(c)||(Ro.add(c),window.lana?.log(c,{sampleRate:r,tags:n,clientId:i}))}};var fr=Object.freeze({LOCAL:"local",PROD:"prod",STAGE:"stage"});function Xc({locale:e=void 0,country:t=void 0,language:r=void 0}={}){return r??(r=e?.split("_")?.[0]||y.language),t??(t=e?.split("_")?.[1]||y.country),e??(e=`${r}_${t}`),{locale:e,country:t,language:r}}function Kn(e={}){let{commerce:t={},locale:r=void 0}=e,n=Le.PRODUCTION,i=Dn,o=["local","stage"].includes(e.env?.name),a=O(Mn,t,{metadata:!1})?.toLowerCase()==="stage";o&&a&&(n=Le.STAGE,i=Gn);let s=O("checkoutClientId",t)??y.checkoutClientId,c=de(O("checkoutWorkflow",t),ee,y.checkoutWorkflow),l=te.CHECKOUT;c===ee.V3&&(l=de(O("checkoutWorkflowStep",t),te,y.checkoutWorkflowStep));let h=T(O("displayOldPrice",t),y.displayOldPrice),u=T(O("displayPerUnit",t),y.displayPerUnit),d=T(O("displayRecurrence",t),y.displayRecurrence),m=T(O("displayTax",t),y.displayTax),x=T(O("entitlement",t),y.entitlement),f=T(O("modal",t),y.modal),S=T(O("forceTaxExclusive",t),y.forceTaxExclusive),C=O("promotionCode",t)??y.promotionCode,_=We(O("quantity",t)),L=O("wcsApiKey",t)??y.wcsApiKey,V=e.env?.name===fr.PROD?we.PUBLISHED:de(O(Un,t),we,y.landscape),A=Ye(O("wcsBufferDelay",t),y.wcsBufferDelay),M=Ye(O("wcsBufferLimit",t),y.wcsBufferLimit);return{...Xc(e),displayOldPrice:h,checkoutClientId:s,checkoutWorkflow:c,checkoutWorkflowStep:l,displayPerUnit:u,displayRecurrence:d,displayTax:m,entitlement:x,extraOptions:y.extraOptions,modal:f,env:n,forceTaxExclusive:S,promotionCode:C,quantity:_,wcsApiKey:L,wcsBufferDelay:A,wcsBufferLimit:M,wcsURL:i,landscape:V}}var Uo="debug",Wc="error",qc="info",Zc="warn",Jc=Date.now(),Bn=new Set,jn=new Set,Mo=new Map,It=Object.freeze({DEBUG:Uo,ERROR:Wc,INFO:qc,WARN:Zc}),Do={append({level:e,message:t,params:r,timestamp:n,source:i}){console[e](`${n}ms [${i}] %c${t}`,"font-weight: bold;",...r)}},Go={filter:({level:e})=>e!==Uo},Qc={filter:()=>!1};function el(e,t,r,n,i){return{level:e,message:t,namespace:r,get params(){if(n.length===1){let[o]=n;At(o)&&(n=o(),Array.isArray(n)||(n=[n]))}return n},source:i,timestamp:Date.now()-Jc}}function tl(e){[...jn].every(t=>t(e))&&Bn.forEach(t=>t(e))}function Ho(e){let t=(Mo.get(e)??0)+1;Mo.set(e,t);let r=`${e} #${t}`,n=o=>(a,...s)=>tl(el(o,a,e,s,r)),i=Object.seal({id:r,namespace:e,module(o){return Ho(`${i.namespace}/${o}`)},debug:n(It.DEBUG),error:n(It.ERROR),info:n(It.INFO),warn:n(It.WARN)});return i}function gr(...e){e.forEach(t=>{let{append:r,filter:n}=t;At(n)?jn.add(n):At(r)&&Bn.add(r)})}function rl(e={}){let{name:t}=e,r=T(O("commerce.debug",{search:!0,storage:!0}),t===fr.LOCAL);return gr(r?Do:Go),t===fr.PROD&&gr(Fn),K}function nl(){Bn.clear(),jn.clear()}var K={...Ho($n),Level:It,Plugins:{consoleAppender:Do,debugFilter:Go,quietFilter:Qc,lanaAppender:Fn},init:rl,reset:nl,use:gr};function zo({providers:e,settings:t}){let r=K.module("checkout");function n(s,c){let{checkoutClientId:l,checkoutWorkflow:h,checkoutWorkflowStep:u,country:d,language:m,promotionCode:x,quantity:f}=t,{checkoutMarketSegment:S,checkoutWorkflow:C=h,checkoutWorkflowStep:_=u,imsCountry:L,country:V=L??d,language:A=m,quantity:M=f,entitlement:H,upgrade:X,modal:ue,perpetual:De,promotionCode:W=x,wcsOsi:be,extraOptions:Ae,...q}=Object.assign({},c?.dataset??{},s??{}),Z=de(C,ee,y.checkoutWorkflow),gt=te.CHECKOUT;Z===ee.V3&&(gt=de(_,te,y.checkoutWorkflowStep));let Yt=je({...q,extraOptions:Ae,checkoutClientId:l,checkoutMarketSegment:S,country:V,quantity:We(M,y.quantity),checkoutWorkflow:Z,checkoutWorkflowStep:gt,language:A,entitlement:T(H),upgrade:T(X),modal:T(ue),perpetual:T(De),promotionCode:Et(W).effectivePromoCode,wcsOsi:dr(be)});if(c)for(let Rr of e.checkout)Rr(c,Yt);return Yt}async function i(s,c){let l=useService(),h=await dataProviders.getCheckoutAction?.(s,c,l.imsSignedInPromise);return h||null}function o(s,c){if(!Array.isArray(s)||!s.length||!c)return"";let{env:l,landscape:h}=t,{checkoutClientId:u,checkoutMarketSegment:d,checkoutWorkflow:m,checkoutWorkflowStep:x,country:f,promotionCode:S,quantity:C,..._}=n(c),L=window.frameElement?"if":"fp",V={checkoutPromoCode:S,clientId:u,context:L,country:f,env:l,items:[],marketSegment:d,workflowStep:x,landscape:h,..._};if(s.length===1){let[{offerId:A,offerType:M,productArrangementCode:H}]=s,{marketSegments:[X]}=s[0];Object.assign(V,{marketSegment:X,offerType:M,productArrangementCode:H}),V.items.push(C[0]===1?{id:A}:{id:A,quantity:C[0]})}else V.items.push(...s.map(({offerId:A},M)=>({id:A,quantity:C[M]??y.quantity})));return Fr(m,V)}let{createCheckoutLink:a}=re;return{CheckoutLink:re,CheckoutWorkflow:ee,CheckoutWorkflowStep:te,buildCheckoutURL:o,collectCheckoutOptions:n,createCheckoutLink:a}}function il({interval:e=200,maxAttempts:t=25}={}){let r=K.module("ims");return new Promise(n=>{r.debug("Waing for IMS to be ready");let i=0;function o(){window.adobeIMS?.initialized?n():++i>t?(r.debug("Timeout"),n()):setTimeout(o,e)}o()})}function ol(e){return e.then(()=>window.adobeIMS?.isSignedInUser()??!1)}function al(e){let t=K.module("ims");return e.then(r=>r?window.adobeIMS.getProfile().then(({countryCode:n})=>(t.debug("Got user country:",n),n),n=>{t.error("Unable to get user country:",n)}):null)}function Fo({}){let e=il(),t=ol(e),r=al(t);return{imsReadyPromise:e,imsSignedInPromise:t,imsCountryPromise:r}}async function Bo(e,t){let{data:r}=t||await Promise.resolve().then(()=>fs(Ko(),1));if(Array.isArray(r)){let n=o=>r.find(a=>Zt(a.lang,o)),i=n(e.language)??n(y.language);if(i)return Object.freeze(i)}return{}}var jo=["GB_en","AU_en","FR_fr","AT_de","BE_en","BE_fr","BE_nl","BG_bg","CH_de","CH_fr","CH_it","CZ_cs","DE_de","DK_da","EE_et","EG_ar","EG_en","ES_es","FI_fi","FR_fr","GR_el","GR_en","HU_hu","IE_en","IT_it","LU_de","LU_en","LU_fr","NL_nl","NO_nb","PL_pl","PT_pt","RO_ro","SE_sv","SI_sl","SK_sk","TR_tr","UA_uk","ID_en","ID_in","IN_en","IN_hi","JP_ja","MY_en","MY_ms","NZ_en","TH_en","TH_th"],cl={INDIVIDUAL_COM:["ZA_en","LT_lt","LV_lv","NG_en","SA_ar","SA_en","ZA_en","SG_en","KR_ko"],TEAM_COM:["ZA_en","LT_lt","LV_lv","NG_en","ZA_en","CO_es","KR_ko"],INDIVIDUAL_EDU:["LT_lt","LV_lv","SA_en","SG_en"],TEAM_EDU:["SG_en","KR_ko"]},kt=class kt extends HTMLSpanElement{constructor(){super();p(this,"masElement",new qe(this));this.handleClick=this.handleClick.bind(this)}static get observedAttributes(){return["data-display-old-price","data-display-per-unit","data-display-recurrence","data-display-tax","data-perpetual","data-promotion-code","data-tax-exclusive","data-template","data-wcs-osi"]}static createInlinePrice(r){let n=j();if(!n)return null;let{displayOldPrice:i,displayPerUnit:o,displayRecurrence:a,displayTax:s,forceTaxExclusive:c,perpetual:l,promotionCode:h,quantity:u,template:d,wcsOsi:m}=n.collectPriceOptions(r);return mr(kt,{displayOldPrice:i,displayPerUnit:o,displayRecurrence:a,displayTax:s,forceTaxExclusive:c,perpetual:l,promotionCode:h,quantity:u,template:d,wcsOsi:m})}get isInlinePrice(){return!0}attributeChangedCallback(r,n,i){this.masElement.attributeChangedCallback(r,n,i)}connectedCallback(){this.masElement.connectedCallback(),this.addEventListener("click",this.handleClick)}disconnectedCallback(){this.masElement.disconnectedCallback(),this.removeEventListener("click",this.handleClick.bind(this))}handleClick(r){r.target!==this&&(r.stopImmediatePropagation(),this.dispatchEvent(new CustomEvent("click",{bubbles:!0})))}onceSettled(){return this.masElement.onceSettled()}get value(){return this.masElement.value}requestUpdate(r=!1){return this.masElement.requestUpdate(r)}resolveDisplayTaxForGeoAndSegment(r,n,i,o){let a=`${r}_${n}`;if(jo.includes(r)||jo.includes(a))return!0;let s=cl[`${i}_${o}`];return s?!!(s.includes(r)||s.includes(a)):!1}async resolveDisplayTax(r,n){let[i]=await r.resolveOfferSelectors(n),o=Ct(await i,n);if(o?.length){let{country:a,language:s}=n,c=o[0],[l=""]=c.marketSegments;return this.resolveDisplayTaxForGeoAndSegment(a,s,c.customerSegment,l)}}async render(r={}){if(!this.isConnected)return!1;let n=j();if(!n)return!1;let i=n.collectPriceOptions(r,this);if(!i.wcsOsi.length)return!1;let o=this.masElement.togglePending(i);this.innerHTML="";let[a]=n.resolveOfferSelectors(i);return this.renderOffers(Ct(await a,i),i,o)}renderOffers(r,n={},i=void 0){if(!this.isConnected)return;let o=j();if(!o)return!1;let a=o.collectPriceOptions({...this.dataset,...n},this);if(i??(i=this.masElement.togglePending(a)),r.length){if(this.masElement.toggleResolved(i,r,a))return this.innerHTML=o.buildPriceHTML(r,a),!0}else{let s=new Error(`Not provided: ${a?.wcsOsi??"-"}`);if(this.masElement.toggleFailed(i,s,a))return this.innerHTML="",!0}return!1}updateOptions(r){let n=j();if(!n)return!1;let{displayOldPrice:i,displayPerUnit:o,displayRecurrence:a,displayTax:s,forceTaxExclusive:c,perpetual:l,promotionCode:h,quantity:u,template:d,wcsOsi:m}=n.collectPriceOptions(r);return pr(this,{displayOldPrice:i,displayPerUnit:o,displayRecurrence:a,displayTax:s,forceTaxExclusive:c,perpetual:l,promotionCode:h,quantity:u,template:d,wcsOsi:m}),!0}};p(kt,"is","inline-price"),p(kt,"tag","span");var ne=kt;window.customElements.get(ne.is)||window.customElements.define(ne.is,ne,{extends:ne.tag});function Yo({literals:e,providers:t,settings:r}){function n(a,s){let{country:c,displayOldPrice:l,displayPerUnit:h,displayRecurrence:u,displayTax:d,forceTaxExclusive:m,language:x,promotionCode:f,quantity:S}=r,{displayOldPrice:C=l,displayPerUnit:_=h,displayRecurrence:L=u,displayTax:V=d,forceTaxExclusive:A=m,country:M=c,language:H=x,perpetual:X,promotionCode:ue=f,quantity:De=S,template:W,wcsOsi:be,...Ae}=Object.assign({},s?.dataset??{},a??{}),q=je({...Ae,country:M,displayOldPrice:T(C),displayPerUnit:T(_),displayRecurrence:T(L),displayTax:T(V),forceTaxExclusive:T(A),language:H,perpetual:T(X),promotionCode:Et(ue).effectivePromoCode,quantity:We(De,y.quantity),template:W,wcsOsi:dr(be)});if(s)for(let Z of t.price)Z(s,q);return q}function i(a,s){if(!Array.isArray(a)||!a.length||!s)return"";let{template:c}=s,l;switch(c){case"discount":l=_n;break;case"strikethrough":l=Tn;break;case"optical":l=Sn;break;case"annual":l=yn;break;default:l=s.promotionCode?En:An}let h=n(s);h.literals=Object.assign({},e.price,je(s.literals??{}));let[u]=a;return u={...u,...u.priceDetails},l(h,u)}let{createInlinePrice:o}=ne;return{InlinePrice:ne,buildPriceHTML:i,collectPriceOptions:n,createInlinePrice:o}}function Xo({settings:e}){let t=K.module("wcs"),{env:r,wcsApiKey:n}=e,i=new Map,o=new Map,a;async function s(u,d,m=!0){let x=kn;t.debug("Fetching:",u);try{u.offerSelectorIds=u.offerSelectorIds.sort();let f=new URL(e.wcsURL);f.searchParams.set("offer_selector_ids",u.offerSelectorIds.join(",")),f.searchParams.set("country",u.country),f.searchParams.set("locale",u.locale),f.searchParams.set("landscape",r===Le.STAGE?"ALL":e.landscape),f.searchParams.set("api_key",n),u.language&&f.searchParams.set("language",u.language),u.promotionCode&&f.searchParams.set("promotion_code",u.promotionCode),u.currency&&f.searchParams.set("currency",u.currency);let S=await fetch(f.toString(),{credentials:"omit"});if(S.ok){let C=await S.json();t.debug("Fetched:",u,C);let _=C.resolvedOffers??[];_=_.map(er),d.forEach(({resolve:L},V)=>{let A=_.filter(({offerSelectorIds:M})=>M.includes(V)).flat();A.length&&(d.delete(V),L(A))})}else S.status===404&&u.offerSelectorIds.length>1?(t.debug("Multi-osi 404, fallback to fetch-by-one strategy"),await Promise.allSettled(u.offerSelectorIds.map(C=>s({...u,offerSelectorIds:[C]},d,!1)))):(x=ur,t.error(x,u))}catch(f){x=ur,t.error(x,u,f)}m&&d.size&&(t.debug("Missing:",{offerSelectorIds:[...d.keys()]}),d.forEach(f=>{f.reject(new Error(x))}))}function c(){clearTimeout(a);let u=[...o.values()];o.clear(),u.forEach(({options:d,promises:m})=>s(d,m))}function l(){let u=i.size;i.clear(),t.debug(`Flushed ${u} cache entries`)}function h({country:u,language:d,perpetual:m=!1,promotionCode:x="",wcsOsi:f=[]}){let S=`${d}_${u}`;u!=="GB"&&(d=m?"EN":"MULT");let C=[u,d,x].filter(_=>_).join("-").toLowerCase();return f.map(_=>{let L=`${_}-${C}`;if(!i.has(L)){let V=new Promise((A,M)=>{let H=o.get(C);if(!H){let X={country:u,locale:S,offerSelectorIds:[]};u!=="GB"&&(X.language=d),H={options:X,promises:new Map},o.set(C,H)}x&&(H.options.promotionCode=x),H.options.offerSelectorIds.push(_),H.promises.set(_,{resolve:A,reject:M}),H.options.offerSelectorIds.length>=e.wcsBufferLimit?c():(t.debug("Queued:",H.options),a||(a=setTimeout(c,e.wcsBufferDelay)))});i.set(L,V)}return i.get(L)})}return{WcsCommitment:Ln,WcsPlanType:wn,WcsTerm:Pn,resolveOfferSelectors:h,flushWcsCache:l}}var Yn="mas-commerce-service",Ce=class Ce extends HTMLElement{constructor(){super(...arguments);p(this,"promise",null)}get config(){let{searchParams:r}=new URL(import.meta.url),i=(this.getAttribute("env")||r.get("env"))?.toLowerCase()==="stage",s={env:{name:i?"stage":"prod"},commerce:{"commerce.env":i?"STAGE":"PROD"}};return["locale","country","language"].forEach(c=>{let l=this.getAttribute(c);l&&(s[c]=l)}),["checkoutWorkflowStep","forceTaxExclusive"].forEach(c=>{let l=this.getAttribute(c);l&&(s.commerce[c]=l)}),s}async registerCheckoutAction(r){typeof r=="function"&&(this.buildCheckoutAction=async(n,i)=>{let o=await r?.(n,i,this.imsSignedInPromise);return o||null})}async activate(r){let n=this.config,i=K.init(n.env).module("service");i.debug("Activating:",n);let o=Object.freeze(Kn(n)),a={price:{}};try{a.price=await Bo(o,n.commerce.priceLiterals)}catch{}let s={checkout:new Set,price:new Set},c={literals:a,providers:s,settings:o};Ce.instance=Object.defineProperties(this,Object.getOwnPropertyDescriptors({...zo(c),...Fo(c),...Yo(c),...Xo(c),...Hn,Log:K,get defaults(){return y},get literals(){return a},get log(){return K},get providers(){return{checkout(l){return s.checkout.add(l),()=>s.checkout.delete(l)},price(l){return s.price.add(l),()=>s.price.delete(l)}}},get settings(){return o}})),i.debug("Activated:",{literals:a,settings:o}),me(()=>{let l=new CustomEvent(Xe,{bubbles:!0,cancelable:!1,detail:Ce.instance});this.dispatchEvent(l)}),r(this)}connectedCallback(){if(this.promise)return this.promise;Ce.instance=this,this.promise=new Promise(r=>{this.activate(r)})}disconnectedCallback(){Ce.instance=null}flushWcsCache(){this.flushWcsCache(),this.log.debug("Flushed WCS cache")}refreshOffers(){this.flushWcsCache(),document.querySelectorAll('span[is="inline-price"],a[is="checkout-link"]').forEach(r=>r.requestUpdate(!0)),this.log.debug("Refreshed WCS offers")}refreshFragments(){this.flushWcsCache(),document.querySelectorAll("aem-fragment").forEach(r=>r.refresh()),this.log.debug("Refreshed AEM fragments")}};p(Ce,"instance");var Xn=Ce;window.customElements.get(Yn)||window.customElements.define(Yn,Xn);var xr=window,br=xr.ShadowRoot&&(xr.ShadyCSS===void 0||xr.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,qo=Symbol(),Wo=new WeakMap,vr=class{constructor(t,r,n){if(this._$cssResult$=!0,n!==qo)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=r}get styleSheet(){let t=this.o,r=this.t;if(br&&t===void 0){let n=r!==void 0&&r.length===1;n&&(t=Wo.get(r)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),n&&Wo.set(r,t))}return t}toString(){return this.cssText}},Zo=e=>new vr(typeof e=="string"?e:e+"",void 0,qo);var Wn=(e,t)=>{br?e.adoptedStyleSheets=t.map(r=>r instanceof CSSStyleSheet?r:r.styleSheet):t.forEach(r=>{let n=document.createElement("style"),i=xr.litNonce;i!==void 0&&n.setAttribute("nonce",i),n.textContent=r.cssText,e.appendChild(n)})},Ar=br?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let r="";for(let n of t.cssRules)r+=n.cssText;return Zo(r)})(e):e;var qn,Er=window,Jo=Er.trustedTypes,ll=Jo?Jo.emptyScript:"",Qo=Er.reactiveElementPolyfillSupport,Jn={toAttribute(e,t){switch(t){case Boolean:e=e?ll:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let r=e;switch(t){case Boolean:r=e!==null;break;case Number:r=e===null?null:Number(e);break;case Object:case Array:try{r=JSON.parse(e)}catch{r=null}}return r}},ea=(e,t)=>t!==e&&(t==t||e==e),Zn={attribute:!0,type:String,converter:Jn,reflect:!1,hasChanged:ea},Qn="finalized",Ne=class extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var r;this.finalize(),((r=this.h)!==null&&r!==void 0?r:this.h=[]).push(t)}static get observedAttributes(){this.finalize();let t=[];return this.elementProperties.forEach((r,n)=>{let i=this._$Ep(n,r);i!==void 0&&(this._$Ev.set(i,n),t.push(i))}),t}static createProperty(t,r=Zn){if(r.state&&(r.attribute=!1),this.finalize(),this.elementProperties.set(t,r),!r.noAccessor&&!this.prototype.hasOwnProperty(t)){let n=typeof t=="symbol"?Symbol():"__"+t,i=this.getPropertyDescriptor(t,n,r);i!==void 0&&Object.defineProperty(this.prototype,t,i)}}static getPropertyDescriptor(t,r,n){return{get(){return this[r]},set(i){let o=this[t];this[r]=i,this.requestUpdate(t,o,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||Zn}static finalize(){if(this.hasOwnProperty(Qn))return!1;this[Qn]=!0;let t=Object.getPrototypeOf(this);if(t.finalize(),t.h!==void 0&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){let r=this.properties,n=[...Object.getOwnPropertyNames(r),...Object.getOwnPropertySymbols(r)];for(let i of n)this.createProperty(i,r[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){let r=[];if(Array.isArray(t)){let n=new Set(t.flat(1/0).reverse());for(let i of n)r.unshift(Ar(i))}else t!==void 0&&r.push(Ar(t));return r}static _$Ep(t,r){let n=r.attribute;return n===!1?void 0:typeof n=="string"?n:typeof t=="string"?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise(r=>this.enableUpdating=r),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(t=this.constructor.h)===null||t===void 0||t.forEach(r=>r(this))}addController(t){var r,n;((r=this._$ES)!==null&&r!==void 0?r:this._$ES=[]).push(t),this.renderRoot!==void 0&&this.isConnected&&((n=t.hostConnected)===null||n===void 0||n.call(t))}removeController(t){var r;(r=this._$ES)===null||r===void 0||r.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((t,r)=>{this.hasOwnProperty(r)&&(this._$Ei.set(r,this[r]),delete this[r])})}createRenderRoot(){var t;let r=(t=this.shadowRoot)!==null&&t!==void 0?t:this.attachShadow(this.constructor.shadowRootOptions);return Wn(r,this.constructor.elementStyles),r}connectedCallback(){var t;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$ES)===null||t===void 0||t.forEach(r=>{var n;return(n=r.hostConnected)===null||n===void 0?void 0:n.call(r)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$ES)===null||t===void 0||t.forEach(r=>{var n;return(n=r.hostDisconnected)===null||n===void 0?void 0:n.call(r)})}attributeChangedCallback(t,r,n){this._$AK(t,n)}_$EO(t,r,n=Zn){var i;let o=this.constructor._$Ep(t,n);if(o!==void 0&&n.reflect===!0){let a=(((i=n.converter)===null||i===void 0?void 0:i.toAttribute)!==void 0?n.converter:Jn).toAttribute(r,n.type);this._$El=t,a==null?this.removeAttribute(o):this.setAttribute(o,a),this._$El=null}}_$AK(t,r){var n;let i=this.constructor,o=i._$Ev.get(t);if(o!==void 0&&this._$El!==o){let a=i.getPropertyOptions(o),s=typeof a.converter=="function"?{fromAttribute:a.converter}:((n=a.converter)===null||n===void 0?void 0:n.fromAttribute)!==void 0?a.converter:Jn;this._$El=o,this[o]=s.fromAttribute(r,a.type),this._$El=null}}requestUpdate(t,r,n){let i=!0;t!==void 0&&(((n=n||this.constructor.getPropertyOptions(t)).hasChanged||ea)(this[t],r)?(this._$AL.has(t)||this._$AL.set(t,r),n.reflect===!0&&this._$El!==t&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(t,n))):i=!1),!this.isUpdatePending&&i&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(r){Promise.reject(r)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach((i,o)=>this[o]=i),this._$Ei=void 0);let r=!1,n=this._$AL;try{r=this.shouldUpdate(n),r?(this.willUpdate(n),(t=this._$ES)===null||t===void 0||t.forEach(i=>{var o;return(o=i.hostUpdate)===null||o===void 0?void 0:o.call(i)}),this.update(n)):this._$Ek()}catch(i){throw r=!1,this._$Ek(),i}r&&this._$AE(n)}willUpdate(t){}_$AE(t){var r;(r=this._$ES)===null||r===void 0||r.forEach(n=>{var i;return(i=n.hostUpdated)===null||i===void 0?void 0:i.call(n)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){this._$EC!==void 0&&(this._$EC.forEach((r,n)=>this._$EO(n,this[n],r)),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}};Ne[Qn]=!0,Ne.elementProperties=new Map,Ne.elementStyles=[],Ne.shadowRootOptions={mode:"open"},Qo?.({ReactiveElement:Ne}),((qn=Er.reactiveElementVersions)!==null&&qn!==void 0?qn:Er.reactiveElementVersions=[]).push("1.6.3");var ei,Sr=window,Ze=Sr.trustedTypes,ta=Ze?Ze.createPolicy("lit-html",{createHTML:e=>e}):void 0,ri="$lit$",pe=`lit$${(Math.random()+"").slice(9)}$`,ca="?"+pe,hl=`<${ca}>`,Oe=document,Tr=()=>Oe.createComment(""),Vt=e=>e===null||typeof e!="object"&&typeof e!="function",la=Array.isArray,ul=e=>la(e)||typeof e?.[Symbol.iterator]=="function",ti=`[ +\f\r]`,Ot=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,ra=/-->/g,na=/>/g,Ie=RegExp(`>|${ti}(?:([^\\s"'>=/]+)(${ti}*=${ti}*(?:[^ +\f\r"'\`<>=]|("|')|))|$)`,"g"),ia=/'/g,oa=/"/g,ha=/^(?:script|style|textarea|title)$/i,ua=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),Md=ua(1),Ud=ua(2),Rt=Symbol.for("lit-noChange"),U=Symbol.for("lit-nothing"),aa=new WeakMap,ke=Oe.createTreeWalker(Oe,129,null,!1);function da(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return ta!==void 0?ta.createHTML(t):t}var dl=(e,t)=>{let r=e.length-1,n=[],i,o=t===2?"":"",a=Ot;for(let s=0;s"?(a=i??Ot,u=-1):h[1]===void 0?u=-2:(u=a.lastIndex-h[2].length,l=h[1],a=h[3]===void 0?Ie:h[3]==='"'?oa:ia):a===oa||a===ia?a=Ie:a===ra||a===na?a=Ot:(a=Ie,i=void 0);let m=a===Ie&&e[s+1].startsWith("/>")?" ":"";o+=a===Ot?c+hl:u>=0?(n.push(l),c.slice(0,u)+ri+c.slice(u)+pe+m):c+pe+(u===-2?(n.push(void 0),s):m)}return[da(e,o+(e[r]||"")+(t===2?"":"")),n]},$t=class e{constructor({strings:t,_$litType$:r},n){let i;this.parts=[];let o=0,a=0,s=t.length-1,c=this.parts,[l,h]=dl(t,r);if(this.el=e.createElement(l,n),ke.currentNode=this.el.content,r===2){let u=this.el.content,d=u.firstChild;d.remove(),u.append(...d.childNodes)}for(;(i=ke.nextNode())!==null&&c.length0){i.textContent=Ze?Ze.emptyScript:"";for(let m=0;m2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=U}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,r=this,n,i){let o=this.strings,a=!1;if(o===void 0)t=Je(this,t,r,0),a=!Vt(t)||t!==this._$AH&&t!==Rt,a&&(this._$AH=t);else{let s=t,c,l;for(t=o[0],c=0;cnew Mt(typeof e=="string"?e:e+"",void 0,ci),w=(e,...t)=>{let r=e.length===1?e[0]:t.reduce((n,i,o)=>n+(a=>{if(a._$cssResult$===!0)return a.cssText;if(typeof a=="number")return a;throw Error("Value passed to 'css' function must be a 'css' function result: "+a+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+e[o+1],e[0]);return new Mt(r,e,ci)},li=(e,t)=>{Lr?e.adoptedStyleSheets=t.map(r=>r instanceof CSSStyleSheet?r:r.styleSheet):t.forEach(r=>{let n=document.createElement("style"),i=_r.litNonce;i!==void 0&&n.setAttribute("nonce",i),n.textContent=r.cssText,e.appendChild(n)})},wr=Lr?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let r="";for(let n of t.cssRules)r+=n.cssText;return fe(r)})(e):e;var hi,Pr=window,pa=Pr.trustedTypes,pl=pa?pa.emptyScript:"",fa=Pr.reactiveElementPolyfillSupport,di={toAttribute(e,t){switch(t){case Boolean:e=e?pl:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let r=e;switch(t){case Boolean:r=e!==null;break;case Number:r=e===null?null:Number(e);break;case Object:case Array:try{r=JSON.parse(e)}catch{r=null}}return r}},ga=(e,t)=>t!==e&&(t==t||e==e),ui={attribute:!0,type:String,converter:di,reflect:!1,hasChanged:ga},mi="finalized",le=class extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var r;this.finalize(),((r=this.h)!==null&&r!==void 0?r:this.h=[]).push(t)}static get observedAttributes(){this.finalize();let t=[];return this.elementProperties.forEach((r,n)=>{let i=this._$Ep(n,r);i!==void 0&&(this._$Ev.set(i,n),t.push(i))}),t}static createProperty(t,r=ui){if(r.state&&(r.attribute=!1),this.finalize(),this.elementProperties.set(t,r),!r.noAccessor&&!this.prototype.hasOwnProperty(t)){let n=typeof t=="symbol"?Symbol():"__"+t,i=this.getPropertyDescriptor(t,n,r);i!==void 0&&Object.defineProperty(this.prototype,t,i)}}static getPropertyDescriptor(t,r,n){return{get(){return this[r]},set(i){let o=this[t];this[r]=i,this.requestUpdate(t,o,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||ui}static finalize(){if(this.hasOwnProperty(mi))return!1;this[mi]=!0;let t=Object.getPrototypeOf(this);if(t.finalize(),t.h!==void 0&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){let r=this.properties,n=[...Object.getOwnPropertyNames(r),...Object.getOwnPropertySymbols(r)];for(let i of n)this.createProperty(i,r[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){let r=[];if(Array.isArray(t)){let n=new Set(t.flat(1/0).reverse());for(let i of n)r.unshift(wr(i))}else t!==void 0&&r.push(wr(t));return r}static _$Ep(t,r){let n=r.attribute;return n===!1?void 0:typeof n=="string"?n:typeof t=="string"?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise(r=>this.enableUpdating=r),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(t=this.constructor.h)===null||t===void 0||t.forEach(r=>r(this))}addController(t){var r,n;((r=this._$ES)!==null&&r!==void 0?r:this._$ES=[]).push(t),this.renderRoot!==void 0&&this.isConnected&&((n=t.hostConnected)===null||n===void 0||n.call(t))}removeController(t){var r;(r=this._$ES)===null||r===void 0||r.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((t,r)=>{this.hasOwnProperty(r)&&(this._$Ei.set(r,this[r]),delete this[r])})}createRenderRoot(){var t;let r=(t=this.shadowRoot)!==null&&t!==void 0?t:this.attachShadow(this.constructor.shadowRootOptions);return li(r,this.constructor.elementStyles),r}connectedCallback(){var t;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$ES)===null||t===void 0||t.forEach(r=>{var n;return(n=r.hostConnected)===null||n===void 0?void 0:n.call(r)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$ES)===null||t===void 0||t.forEach(r=>{var n;return(n=r.hostDisconnected)===null||n===void 0?void 0:n.call(r)})}attributeChangedCallback(t,r,n){this._$AK(t,n)}_$EO(t,r,n=ui){var i;let o=this.constructor._$Ep(t,n);if(o!==void 0&&n.reflect===!0){let a=(((i=n.converter)===null||i===void 0?void 0:i.toAttribute)!==void 0?n.converter:di).toAttribute(r,n.type);this._$El=t,a==null?this.removeAttribute(o):this.setAttribute(o,a),this._$El=null}}_$AK(t,r){var n;let i=this.constructor,o=i._$Ev.get(t);if(o!==void 0&&this._$El!==o){let a=i.getPropertyOptions(o),s=typeof a.converter=="function"?{fromAttribute:a.converter}:((n=a.converter)===null||n===void 0?void 0:n.fromAttribute)!==void 0?a.converter:di;this._$El=o,this[o]=s.fromAttribute(r,a.type),this._$El=null}}requestUpdate(t,r,n){let i=!0;t!==void 0&&(((n=n||this.constructor.getPropertyOptions(t)).hasChanged||ga)(this[t],r)?(this._$AL.has(t)||this._$AL.set(t,r),n.reflect===!0&&this._$El!==t&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(t,n))):i=!1),!this.isUpdatePending&&i&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(r){Promise.reject(r)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach((i,o)=>this[o]=i),this._$Ei=void 0);let r=!1,n=this._$AL;try{r=this.shouldUpdate(n),r?(this.willUpdate(n),(t=this._$ES)===null||t===void 0||t.forEach(i=>{var o;return(o=i.hostUpdate)===null||o===void 0?void 0:o.call(i)}),this.update(n)):this._$Ek()}catch(i){throw r=!1,this._$Ek(),i}r&&this._$AE(n)}willUpdate(t){}_$AE(t){var r;(r=this._$ES)===null||r===void 0||r.forEach(n=>{var i;return(i=n.hostUpdated)===null||i===void 0?void 0:i.call(n)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){this._$EC!==void 0&&(this._$EC.forEach((r,n)=>this._$EO(n,this[n],r)),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}};le[mi]=!0,le.elementProperties=new Map,le.elementStyles=[],le.shadowRootOptions={mode:"open"},fa?.({ReactiveElement:le}),((hi=Pr.reactiveElementVersions)!==null&&hi!==void 0?hi:Pr.reactiveElementVersions=[]).push("1.6.3");var pi,Cr=window,et=Cr.trustedTypes,xa=et?et.createPolicy("lit-html",{createHTML:e=>e}):void 0,gi="$lit$",ge=`lit$${(Math.random()+"").slice(9)}$`,ya="?"+ge,fl=`<${ya}>`,$e=document,Dt=()=>$e.createComment(""),Gt=e=>e===null||typeof e!="object"&&typeof e!="function",_a=Array.isArray,gl=e=>_a(e)||typeof e?.[Symbol.iterator]=="function",fi=`[ +\f\r]`,Ut=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,va=/-->/g,ba=/>/g,Ve=RegExp(`>|${fi}(?:([^\\s"'>=/]+)(${fi}*=${fi}*(?:[^ +\f\r"'\`<>=]|("|')|))|$)`,"g"),Aa=/'/g,Ea=/"/g,La=/^(?:script|style|textarea|title)$/i,wa=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),g=wa(1),Kd=wa(2),Me=Symbol.for("lit-noChange"),D=Symbol.for("lit-nothing"),Sa=new WeakMap,Re=$e.createTreeWalker($e,129,null,!1);function Pa(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return xa!==void 0?xa.createHTML(t):t}var xl=(e,t)=>{let r=e.length-1,n=[],i,o=t===2?"":"",a=Ut;for(let s=0;s"?(a=i??Ut,u=-1):h[1]===void 0?u=-2:(u=a.lastIndex-h[2].length,l=h[1],a=h[3]===void 0?Ve:h[3]==='"'?Ea:Aa):a===Ea||a===Aa?a=Ve:a===va||a===ba?a=Ut:(a=Ve,i=void 0);let m=a===Ve&&e[s+1].startsWith("/>")?" ":"";o+=a===Ut?c+fl:u>=0?(n.push(l),c.slice(0,u)+gi+c.slice(u)+ge+m):c+ge+(u===-2?(n.push(void 0),s):m)}return[Pa(e,o+(e[r]||"")+(t===2?"":"")),n]},Ht=class e{constructor({strings:t,_$litType$:r},n){let i;this.parts=[];let o=0,a=0,s=t.length-1,c=this.parts,[l,h]=xl(t,r);if(this.el=e.createElement(l,n),Re.currentNode=this.el.content,r===2){let u=this.el.content,d=u.firstChild;d.remove(),u.append(...d.childNodes)}for(;(i=Re.nextNode())!==null&&c.length0){i.textContent=et?et.emptyScript:"";for(let m=0;m2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=D}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,r=this,n,i){let o=this.strings,a=!1;if(o===void 0)t=tt(this,t,r,0),a=!Gt(t)||t!==this._$AH&&t!==Me,a&&(this._$AH=t);else{let s=t,c,l;for(t=o[0],c=0;c{var n,i;let o=(n=r?.renderBefore)!==null&&n!==void 0?n:t,a=o._$litPart$;if(a===void 0){let s=(i=r?.renderBefore)!==null&&i!==void 0?i:null;o._$litPart$=a=new zt(t.insertBefore(Dt(),s),s,void 0,r??{})}return a._$AI(e),a};var Si,Ti;var ie=class extends le{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,r;let n=super.createRenderRoot();return(t=(r=this.renderOptions).renderBefore)!==null&&t!==void 0||(r.renderBefore=n.firstChild),n}update(t){let r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=Ca(r,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),(t=this._$Do)===null||t===void 0||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this._$Do)===null||t===void 0||t.setConnected(!1)}render(){return Me}};ie.finalized=!0,ie._$litElement$=!0,(Si=globalThis.litElementHydrateSupport)===null||Si===void 0||Si.call(globalThis,{LitElement:ie});var Na=globalThis.litElementPolyfillSupport;Na?.({LitElement:ie});((Ti=globalThis.litElementVersions)!==null&&Ti!==void 0?Ti:globalThis.litElementVersions=[]).push("3.3.3");var xe="(max-width: 767px)",Nr="(max-width: 1199px)",R="(min-width: 768px)",I="(min-width: 1200px)",G="(min-width: 1600px)";var Ia=w` :host { position: relative; display: flex; flex-direction: column; text-align: start; - background-color: var(--consonant-merch-card-background-color); + background-color: var(--merch-card-background-color); grid-template-columns: repeat(auto-fit, minmax(300px, max-content)); - background-color: var(--consonant-merch-card-background-color); + background-color: var(--merch-card-background-color); font-family: var(--body-font-family, 'Adobe Clean'); border-radius: var(--consonant-merch-spacing-xs); border: 1px solid var(--consonant-merch-card-border-color); @@ -215,9 +215,9 @@ Try polyfilling it using "@formatjs/intl-pluralrules" display: flex; gap: 8px; } -`,Oa=()=>[N` +`,ka=()=>[w` /* Tablet */ - @media screen and ${xe($)} { + @media screen and ${fe(R)} { :host([size='wide']), :host([size='super-wide']) { width: 100%; @@ -226,11 +226,11 @@ Try polyfilling it using "@formatjs/intl-pluralrules" } /* Laptop */ - @media screen and ${xe(k)} { + @media screen and ${fe(I)} { :host([size='wide']) { grid-column: span 2; } - `];var at,Ht=class Ht{constructor(t){x(this,"card");ze(this,at);this.card=t,this.insertVariantStyle()}getContainer(){return xt(this,at,W(this,at)??this.card.closest('[class*="-merch-cards"]')??this.card.parentElement),W(this,at)}insertVariantStyle(){if(!Ht.styleMap[this.card.variant]){Ht.styleMap[this.card.variant]=!0;let t=document.createElement("style");t.innerHTML=this.getGlobalCSS(),document.head.appendChild(t)}}updateCardElementMinHeight(t,r){let n=`--consonant-merch-card-${this.card.variant}-${r}-height`,i=Math.max(0,parseInt(window.getComputedStyle(t).height)||0),o=parseInt(this.getContainer().style.getPropertyValue(n))||0;i>o&&this.getContainer().style.setProperty(n,`${i}px`)}get badge(){let t;if(!(!this.card.badgeBackgroundColor||!this.card.badgeColor||!this.card.badgeText))return this.evergreen&&(t=`border: 1px solid ${this.card.badgeBackgroundColor}; border-right: none;`),g` + `];var nt,Ft=class Ft{constructor(t){p(this,"card");J(this,nt);this.card=t,this.insertVariantStyle()}getContainer(){return xt(this,nt,B(this,nt)??this.card.closest('[class*="-merch-cards"]')??this.card.parentElement),B(this,nt)}insertVariantStyle(){if(!Ft.styleMap[this.card.variant]){Ft.styleMap[this.card.variant]=!0;let t=document.createElement("style");t.innerHTML=this.getGlobalCSS(),document.head.appendChild(t)}}updateCardElementMinHeight(t,r){if(!t)return;let n=`--consonant-merch-card-${this.card.variant}-${r}-height`,i=Math.max(0,parseInt(window.getComputedStyle(t).height)||0),o=parseInt(this.getContainer().style.getPropertyValue(n))||0;i>o&&this.getContainer().style.setProperty(n,`${i}px`)}get badge(){let t;if(!(!this.card.badgeBackgroundColor||!this.card.badgeColor||!this.card.badgeText))return this.evergreen&&(t=`border: 1px solid ${this.card.badgeBackgroundColor}; border-right: none;`),g`
${this.badge} -
`}getGlobalCSS(){return""}get evergreen(){return this.card.classList.contains("intro-pricing")}get promoBottom(){return this.card.classList.contains("promo-bottom")}get headingSelector(){return'[slot="heading-xs"]'}get secureLabelFooter(){let t=this.card.secureLabel?g``}getGlobalCSS(){return""}get theme(){return document.querySelector("sp-theme")}get evergreen(){return this.card.classList.contains("intro-pricing")}get promoBottom(){return this.card.classList.contains("promo-bottom")}get headingSelector(){return'[slot="heading-xs"]'}get strip(){if(this.card.stripSize&&this.card.stripBackground)switch(this.card.stripSize){case"wide":return"44px";case"small":return"4px";default:return"0"}return""}get stripStyle(){return this.strip&&this.card.stripBackground?` + background: ${this.card.stripBackground.startsWith("url")?this.card.stripBackground:`url("${this.card.stripBackground}")`}; + background-size: ${this.strip} 100%; + background-repeat: no-repeat; + background-position: ${this.card.theme.dir==="ltr"?"left":"right"}; + `:""}get secureLabelFooter(){let t=this.card.secureLabel?g`${this.card.secureLabel}`:"";return g`
${t}
`}async adjustTitleWidth(){let t=this.card.getBoundingClientRect().width,r=this.card.badgeElement?.getBoundingClientRect().width||0;t===0||r===0||this.card.style.setProperty("--consonant-merch-card-heading-xs-max-width",`${Math.round(t-r-16)}px`)}postCardUpdateHook(){}connectedCallbackHook(){}disconnectedCallbackHook(){}renderLayout(){}get aemFragmentMapping(){}};at=new WeakMap,x(Ht,"styleMap",{});var O=Ht;function Ae(e,t={},r){let n=document.createElement(e);r instanceof HTMLElement?n.appendChild(r):n.innerHTML=r;for(let[i,o]of Object.entries(t))n.setAttribute(i,o);return n}function Dr(){return window.matchMedia("(max-width: 767px)").matches}function Va(){return window.matchMedia("(max-width: 1024px)").matches}var Ra="merch-offer-select:ready",$a="merch-card:ready",Ua="merch-card:action-menu-toggle";var Ti="merch-storage:change",yi="merch-quantity-selector:change";var zt="aem:load",Ma="mas:ready";var Da=` + >`:"";return g`
${t}
`}async adjustTitleWidth(){let t=this.card.getBoundingClientRect().width,r=this.card.badgeElement?.getBoundingClientRect().width||0;t===0||r===0||this.card.style.setProperty("--consonant-merch-card-heading-xs-max-width",`${Math.round(t-r-16)}px`)}postCardUpdateHook(){}connectedCallbackHook(){}disconnectedCallbackHook(){}renderLayout(){}get aemFragmentMapping(){}};nt=new WeakMap,p(Ft,"styleMap",{});var P=Ft;function he(e,t={},r){let n=document.createElement(e);r instanceof HTMLElement?n.appendChild(r):n.innerHTML=r;for(let[i,o]of Object.entries(t))n.setAttribute(i,o);return n}function Ir(){return window.matchMedia("(max-width: 767px)").matches}function Oa(){return window.matchMedia("(max-width: 1024px)").matches}var Va="merch-offer-select:ready",Ra="merch-card:ready",$a="merch-card:action-menu-toggle";var yi="merch-storage:change",_i="merch-quantity-selector:change";var it="aem:load",ot="aem:error",Ma="mas:ready",Ua="mas:error";var Da=` :root { --consonant-merch-card-catalog-width: 276px; --consonant-merch-card-catalog-icon-size: 40px; @@ -257,7 +262,7 @@ Try polyfilling it using "@formatjs/intl-pluralrules" grid-template-columns: var(--consonant-merch-card-catalog-width); } -@media screen and ${$} { +@media screen and ${R} { :root { --consonant-merch-card-catalog-width: 302px; } @@ -269,7 +274,7 @@ Try polyfilling it using "@formatjs/intl-pluralrules" } } -@media screen and ${k} { +@media screen and ${I} { :root { --consonant-merch-card-catalog-width: 276px; } @@ -280,7 +285,7 @@ Try polyfilling it using "@formatjs/intl-pluralrules" } } -@media screen and ${H} { +@media screen and ${G} { .four-merch-cards.catalog { grid-template-columns: repeat(4, var(--consonant-merch-card-catalog-width)); } @@ -322,7 +327,7 @@ merch-card[variant="catalog"] [slot="action-menu-content"] p { } merch-card[variant="catalog"] [slot="action-menu-content"] a { - color: var(--consonant-merch-card-background-color); + color: var(--merch-card-background-color); text-decoration: underline; } @@ -331,12 +336,12 @@ merch-card[variant="catalog"] .payment-details { font-style: italic; font-weight: 400; line-height: var(--consonant-merch-card-body-line-height); -}`;var Tl={title:{tag:"h3",slot:"heading-xs"},prices:{tag:"h3",slot:"heading-xs"},description:{tag:"div",slot:"body-xs"},ctas:{size:"l"},allowedSizes:["wide","super-wide"]},st=class extends O{constructor(r){super(r);x(this,"toggleActionMenu",r=>{let n=r?.type==="mouseleave"?!0:void 0,i=this.card.shadowRoot.querySelector('slot[name="action-menu-content"]');i&&(n||this.card.dispatchEvent(new CustomEvent(Ua,{bubbles:!0,composed:!0,detail:{card:this.card.name,type:"action-menu"}})),i.classList.toggle("hidden",n))})}get aemFragmentMapping(){return Tl}renderLayout(){return g`
+}`;var bl={title:{tag:"h3",slot:"heading-xs"},prices:{tag:"h3",slot:"heading-xs"},description:{tag:"div",slot:"body-xs"},ctas:{size:"l"},allowedSizes:["wide","super-wide"]},at=class extends P{constructor(r){super(r);p(this,"toggleActionMenu",r=>{let n=r?.type==="mouseleave"?!0:void 0,i=this.card.shadowRoot.querySelector('slot[name="action-menu-content"]');i&&(n||this.card.dispatchEvent(new CustomEvent($a,{bubbles:!0,composed:!0,detail:{card:this.card.name,type:"action-menu"}})),i.classList.toggle("hidden",n))})}get aemFragmentMapping(){return bl}renderLayout(){return g`
${this.badge}
@@ -357,7 +362,7 @@ merch-card[variant="catalog"] .payment-details { >`:""}
${this.secureLabelFooter} - `}getGlobalCSS(){return Da}connectedCallbackHook(){this.card.addEventListener("mouseleave",this.toggleActionMenu)}disconnectedCallbackHook(){this.card.removeEventListener("mouseleave",this.toggleActionMenu)}};x(st,"variantStyle",N` + `}getGlobalCSS(){return Da}connectedCallbackHook(){this.card.addEventListener("mouseleave",this.toggleActionMenu)}disconnectedCallbackHook(){this.card.removeEventListener("mouseleave",this.toggleActionMenu)}};p(at,"variantStyle",w` :host([variant='catalog']) { min-height: 330px; width: var(--consonant-merch-card-catalog-width); @@ -392,7 +397,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { font-size: 18px; } -@media screen and ${$} { +@media screen and ${R} { .two-merch-cards.ccd-action, .three-merch-cards.ccd-action, .four-merch-cards.ccd-action { @@ -400,19 +405,19 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${k} { +@media screen and ${I} { .three-merch-cards.ccd-action, .four-merch-cards.ccd-action { grid-template-columns: repeat(3, var(--consonant-merch-card-ccd-action-width)); } } -@media screen and ${H} { +@media screen and ${G} { .four-merch-cards.ccd-action { grid-template-columns: repeat(4, var(--consonant-merch-card-ccd-action-width)); } } -`;var yl={title:{tag:"h3",slot:"heading-xs"},prices:{tag:"h3",slot:"heading-xs"},description:{tag:"div",slot:"body-xs"},ctas:{size:"l"}},ct=class extends O{constructor(t){super(t)}getGlobalCSS(){return Ga}get aemFragmentMapping(){return yl}renderLayout(){return g`
+`;var Al={title:{tag:"h3",slot:"heading-xs"},prices:{tag:"h3",slot:"heading-xs"},description:{tag:"div",slot:"body-xs"},ctas:{size:"l"}},st=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ga}get aemFragmentMapping(){return Al}renderLayout(){return g`
${this.badge} @@ -421,7 +426,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { >`}
-
`}};x(ct,"variantStyle",N` +
`}};p(st,"variantStyle",w` :host([variant='ccd-action']:not([size])) { width: var(--consonant-merch-card-ccd-action-width); } @@ -437,7 +442,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { grid-template-columns: var(--consonant-merch-card-image-width); } -@media screen and ${$} { +@media screen and ${R} { .two-merch-cards.image, .three-merch-cards.image, .four-merch-cards.image { @@ -445,7 +450,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${k} { +@media screen and ${I} { :root { --consonant-merch-card-image-width: 378px; } @@ -456,12 +461,12 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${H} { +@media screen and ${G} { .four-merch-cards.image { grid-template-columns: repeat(4, var(--consonant-merch-card-image-width)); } } -`;var Gr=class extends O{constructor(t){super(t)}getGlobalCSS(){return Ha}renderLayout(){return g`${this.cardImage} +`;var kr=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ha}renderLayout(){return g`${this.cardImage}
@@ -490,7 +495,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { grid-template-columns: var(--consonant-merch-card-inline-heading-width); } -@media screen and ${$} { +@media screen and ${R} { .two-merch-cards.inline-heading, .three-merch-cards.inline-heading, .four-merch-cards.inline-heading { @@ -498,7 +503,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${k} { +@media screen and ${I} { :root { --consonant-merch-card-inline-heading-width: 378px; } @@ -509,12 +514,12 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${H} { +@media screen and ${G} { .four-merch-cards.inline-heading { grid-template-columns: repeat(4, var(--consonant-merch-card-inline-heading-width)); } } -`;var Hr=class extends O{constructor(t){super(t)}getGlobalCSS(){return za}renderLayout(){return g` ${this.badge} +`;var Or=class extends P{constructor(t){super(t)}getGlobalCSS(){return za}renderLayout(){return g` ${this.badge}
@@ -628,7 +633,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { } /* mini compare mobile */ -@media screen and ${be} { +@media screen and ${xe} { :root { --consonant-merch-card-mini-compare-chart-width: 302px; --consonant-merch-card-mini-compare-chart-wide-width: 302px; @@ -666,7 +671,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${Mr} { +@media screen and ${Nr} { .three-merch-cards.mini-compare-chart merch-card [slot="footer"] a, .four-merch-cards.mini-compare-chart merch-card [slot="footer"] a { flex: 1; @@ -697,7 +702,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { line-height: var(--consonant-merch-card-body-xs-line-height); } } -@media screen and ${$} { +@media screen and ${R} { :root { --consonant-merch-card-mini-compare-chart-width: 302px; --consonant-merch-card-mini-compare-chart-wide-width: 302px; @@ -715,7 +720,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { } /* desktop */ -@media screen and ${k} { +@media screen and ${I} { :root { --consonant-merch-card-mini-compare-chart-width: 378px; --consonant-merch-card-mini-compare-chart-wide-width: 484px; @@ -736,7 +741,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${H} { +@media screen and ${G} { .four-merch-cards.mini-compare-chart { grid-template-columns: repeat(4, var(--consonant-merch-card-mini-compare-chart-width)); } @@ -773,11 +778,11 @@ merch-card .footer-row-cell:nth-child(7) { merch-card .footer-row-cell:nth-child(8) { min-height: var(--consonant-merch-card-footer-row-8-min-height); } -`;var _l=32,lt=class extends O{constructor(r){super(r);x(this,"getRowMinHeightPropertyName",r=>`--consonant-merch-card-footer-row-${r}-min-height`);x(this,"getMiniCompareFooter",()=>{let r=this.card.secureLabel?g` +`;var El=32,ct=class extends P{constructor(r){super(r);p(this,"getRowMinHeightPropertyName",r=>`--consonant-merch-card-footer-row-${r}-min-height`);p(this,"getMiniCompareFooter",()=>{let r=this.card.secureLabel?g` ${this.card.secureLabel}`:g``;return g`
${r}
`})}getGlobalCSS(){return Fa}adjustMiniCompareBodySlots(){if(this.card.getBoundingClientRect().width<=2)return;this.updateCardElementMinHeight(this.card.shadowRoot.querySelector(".top-section"),"top-section"),["heading-m","body-m","heading-m-price","body-xxs","price-commitment","offers","promo-text","callout-content"].forEach(i=>this.updateCardElementMinHeight(this.card.shadowRoot.querySelector(`slot[name="${i}"]`),i)),this.updateCardElementMinHeight(this.card.shadowRoot.querySelector("footer"),"footer");let n=this.card.shadowRoot.querySelector(".mini-compare-chart-badge");n&&n.textContent!==""&&this.getContainer().style.setProperty("--consonant-merch-card-mini-compare-chart-top-section-mobile-height","32px")}adjustMiniCompareFooterRows(){if(this.card.getBoundingClientRect().width===0)return;[...this.card.querySelector('[slot="footer-rows"]')?.children].forEach((n,i)=>{let o=Math.max(_l,parseFloat(window.getComputedStyle(n).height)||0),a=parseFloat(this.getContainer().style.getPropertyValue(this.getRowMinHeightPropertyName(i+1)))||0;o>a&&this.getContainer().style.setProperty(this.getRowMinHeightPropertyName(i+1),`${o}px`)})}removeEmptyRows(){this.card.querySelectorAll(".footer-row-cell").forEach(n=>{let i=n.querySelector(".footer-row-cell-description");i&&!i.textContent.trim()&&n.remove()})}renderLayout(){return g`
+ >`:g``;return g`
${r}
`})}getGlobalCSS(){return Fa}adjustMiniCompareBodySlots(){if(this.card.getBoundingClientRect().width<=2)return;this.updateCardElementMinHeight(this.card.shadowRoot.querySelector(".top-section"),"top-section"),["heading-m","body-m","heading-m-price","body-xxs","price-commitment","offers","promo-text","callout-content"].forEach(i=>this.updateCardElementMinHeight(this.card.shadowRoot.querySelector(`slot[name="${i}"]`),i)),this.updateCardElementMinHeight(this.card.shadowRoot.querySelector("footer"),"footer");let n=this.card.shadowRoot.querySelector(".mini-compare-chart-badge");n&&n.textContent!==""&&this.getContainer().style.setProperty("--consonant-merch-card-mini-compare-chart-top-section-mobile-height","32px")}adjustMiniCompareFooterRows(){if(this.card.getBoundingClientRect().width===0)return;[...this.card.querySelector('[slot="footer-rows"]')?.children].forEach((n,i)=>{let o=Math.max(El,parseFloat(window.getComputedStyle(n).height)||0),a=parseFloat(this.getContainer().style.getPropertyValue(this.getRowMinHeightPropertyName(i+1)))||0;o>a&&this.getContainer().style.setProperty(this.getRowMinHeightPropertyName(i+1),`${o}px`)})}removeEmptyRows(){this.card.querySelectorAll(".footer-row-cell").forEach(n=>{let i=n.querySelector(".footer-row-cell-description");i&&!i.textContent.trim()&&n.remove()})}renderLayout(){return g`
${this.badge}
@@ -789,7 +794,7 @@ merch-card .footer-row-cell:nth-child(8) { ${this.getMiniCompareFooter()} - `}async postCardUpdateHook(){Dr()?this.removeEmptyRows():(await Promise.all(this.card.prices.map(r=>r.onceSettled())),this.adjustMiniCompareBodySlots(),this.adjustMiniCompareFooterRows())}};x(lt,"variantStyle",N` + `}async postCardUpdateHook(){Ir()?this.removeEmptyRows():(await Promise.all(this.card.prices.map(r=>r.onceSettled())),this.adjustMiniCompareBodySlots(),this.adjustMiniCompareFooterRows())}};p(ct,"variantStyle",w` :host([variant='mini-compare-chart']) > slot:not([name='icons']) { display: block; } @@ -805,7 +810,7 @@ merch-card .footer-row-cell:nth-child(8) { height: var(--consonant-merch-card-mini-compare-chart-top-section-height); } - @media screen and ${xe(Mr)} { + @media screen and ${fe(Nr)} { [class*'-merch-cards'] :host([variant='mini-compare-chart']) footer { flex-direction: column; align-items: stretch; @@ -813,7 +818,7 @@ merch-card .footer-row-cell:nth-child(8) { } } - @media screen and ${xe(k)} { + @media screen and ${fe(I)} { :host([variant='mini-compare-chart']) footer { padding: var(--consonant-merch-spacing-xs) var(--consonant-merch-spacing-s) @@ -887,7 +892,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* Tablet */ -@media screen and ${$} { +@media screen and ${R} { :root { --consonant-merch-card-plans-width: 302px; } @@ -899,7 +904,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* desktop */ -@media screen and ${k} { +@media screen and ${I} { :root { --consonant-merch-card-plans-width: 276px; } @@ -910,12 +915,12 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* Large desktop */ - @media screen and ${H} { + @media screen and ${G} { .four-merch-cards.plans { grid-template-columns: repeat(4, var(--consonant-merch-card-plans-width)); } } -`;var ht=class extends O{constructor(t){super(t)}getGlobalCSS(){return Ka}postCardUpdateHook(){this.adjustTitleWidth()}get stockCheckbox(){return this.card.checkboxLabel?g`
- ${this.secureLabelFooter}`}};x(ht,"variantStyle",N` + ${this.secureLabelFooter}`}};p(lt,"variantStyle",w` :host([variant='plans']) { min-height: 348px; } @@ -939,7 +944,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { :host([variant='plans']) ::slotted([slot='heading-xs']) { max-width: var(--consonant-merch-card-heading-xs-max-width, 100%); } - `);var ja=` + `);var Ba=` :root { --consonant-merch-card-product-width: 300px; } @@ -953,7 +958,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* Tablet */ -@media screen and ${$} { +@media screen and ${R} { .two-merch-cards.product, .three-merch-cards.product, .four-merch-cards.product { @@ -962,7 +967,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* desktop */ -@media screen and ${k} { +@media screen and ${I} { :root { --consonant-merch-card-product-width: 378px; } @@ -974,12 +979,12 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* Large desktop */ -@media screen and ${H} { +@media screen and ${G} { .four-merch-cards.product { grid-template-columns: repeat(4, var(--consonant-merch-card-product-width)); } } -`;var De=class extends O{constructor(t){super(t)}getGlobalCSS(){return ja}adjustProductBodySlots(){if(this.card.getBoundingClientRect().width===0)return;["heading-xs","body-xxs","body-xs","promo-text","callout-content","body-lower"].forEach(r=>this.updateCardElementMinHeight(this.card.shadowRoot.querySelector(`slot[name="${r}"]`),r))}renderLayout(){return g` ${this.badge} +`;var Ue=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ba}adjustProductBodySlots(){if(this.card.getBoundingClientRect().width===0)return;["heading-xs","body-xxs","body-xs","promo-text","callout-content","body-lower"].forEach(r=>this.updateCardElementMinHeight(this.card.shadowRoot.querySelector(`slot[name="${r}"]`),r))}renderLayout(){return g` ${this.badge}
@@ -990,7 +995,7 @@ merch-card[variant="plans"] [slot="quantity-select"] {
- ${this.secureLabelFooter}`}connectedCallbackHook(){super.connectedCallbackHook(),window.addEventListener("resize",this.postCardUpdateHook.bind(this))}postCardUpdateHook(){Dr()||this.adjustProductBodySlots()}};x(De,"variantStyle",N` + ${this.secureLabelFooter}`}connectedCallbackHook(){super.connectedCallbackHook(),window.addEventListener("resize",this.postCardUpdateHook.bind(this))}postCardUpdateHook(){Ir()||this.adjustProductBodySlots()}};p(Ue,"variantStyle",w` :host([variant='product']) > slot:not([name='icons']) { display: block; } @@ -1014,7 +1019,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { min-height: var(--consonant-merch-card-product-callout-content-height); display: block; } - `);var Ba=` + `);var ja=` :root { --consonant-merch-card-segment-width: 378px; } @@ -1028,13 +1033,13 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* Mobile */ -@media screen and ${be} { +@media screen and ${xe} { :root { --consonant-merch-card-segment-width: 276px; } } -@media screen and ${$} { +@media screen and ${R} { :root { --consonant-merch-card-segment-width: 276px; } @@ -1047,7 +1052,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* desktop */ -@media screen and ${k} { +@media screen and ${I} { :root { --consonant-merch-card-segment-width: 302px; } @@ -1060,7 +1065,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { grid-template-columns: repeat(4, minmax(276px, var(--consonant-merch-card-segment-width))); } } -`;var ut=class extends O{constructor(t){super(t)}getGlobalCSS(){return Ba}postCardUpdateHook(){this.adjustTitleWidth()}renderLayout(){return g` ${this.badge} +`;var ht=class extends P{constructor(t){super(t)}getGlobalCSS(){return ja}postCardUpdateHook(){this.adjustTitleWidth()}renderLayout(){return g` ${this.badge}
@@ -1069,7 +1074,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { ${this.promoBottom?g``:""}

- ${this.secureLabelFooter}`}};x(ut,"variantStyle",N` + ${this.secureLabelFooter}`}};p(ht,"variantStyle",w` :host([variant='segment']) { min-height: 214px; } @@ -1093,13 +1098,13 @@ merch-card[variant="special-offers"] span[is="inline-price"][data-template="stri grid-template-columns: minmax(300px, var(--consonant-merch-card-special-offers-width)); } -@media screen and ${be} { +@media screen and ${xe} { :root { --consonant-merch-card-special-offers-width: 302px; } } -@media screen and ${$} { +@media screen and ${R} { :root { --consonant-merch-card-special-offers-width: 302px; } @@ -1112,19 +1117,19 @@ merch-card[variant="special-offers"] span[is="inline-price"][data-template="stri } /* desktop */ -@media screen and ${k} { +@media screen and ${I} { .three-merch-cards.special-offers, .four-merch-cards.special-offers { grid-template-columns: repeat(3, minmax(300px, var(--consonant-merch-card-special-offers-width))); } } -@media screen and ${H} { +@media screen and ${G} { .four-merch-cards.special-offers { grid-template-columns: repeat(4, minmax(300px, var(--consonant-merch-card-special-offers-width))); } } -`;var Ll={name:{tag:"h4",slot:"detail-m"},title:{tag:"h4",slot:"detail-m"},backgroundImage:{tag:"div",slot:"bg-image"},prices:{tag:"h3",slot:"heading-xs"},description:{tag:"div",slot:"body-xs"},ctas:{size:"l"}},dt=class extends O{constructor(t){super(t)}getGlobalCSS(){return Ya}get headingSelector(){return'[slot="detail-m"]'}get aemFragmentMapping(){return Ll}renderLayout(){return g`${this.cardImage} +`;var Sl={name:{tag:"h4",slot:"detail-m"},title:{tag:"h4",slot:"detail-m"},backgroundImage:{tag:"div",slot:"bg-image"},prices:{tag:"h3",slot:"heading-xs"},description:{tag:"div",slot:"body-xs"},ctas:{size:"l"}},ut=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ya}get headingSelector(){return'[slot="detail-m"]'}get aemFragmentMapping(){return Sl}renderLayout(){return g`${this.cardImage}
@@ -1141,7 +1146,7 @@ merch-card[variant="special-offers"] span[is="inline-price"][data-template="stri
${this.secureLabelFooter} `} - `}};x(dt,"variantStyle",N` + `}};p(ut,"variantStyle",w` :host([variant='special-offers']) { min-height: 439px; } @@ -1208,7 +1213,7 @@ merch-card[variant='twp'] merch-offer-select { grid-template-columns: var(--consonant-merch-card-image-width); } -@media screen and ${be} { +@media screen and ${xe} { :root { --consonant-merch-card-twp-width: 300px; } @@ -1219,7 +1224,7 @@ merch-card[variant='twp'] merch-offer-select { } } -@media screen and ${$} { +@media screen and ${R} { :root { --consonant-merch-card-twp-width: 268px; } @@ -1232,7 +1237,7 @@ merch-card[variant='twp'] merch-offer-select { } } -@media screen and ${k} { +@media screen and ${I} { :root { --consonant-merch-card-twp-width: 268px; } @@ -1245,7 +1250,7 @@ merch-card[variant='twp'] merch-offer-select { } } -@media screen and ${H} { +@media screen and ${G} { .one-merch-card.twp .two-merch-cards.twp { grid-template-columns: repeat(2, var(--consonant-merch-card-twp-width)); @@ -1254,7 +1259,7 @@ merch-card[variant='twp'] merch-offer-select { grid-template-columns: repeat(3, var(--consonant-merch-card-twp-width)); } } -`;var mt=class extends O{constructor(t){super(t)}getGlobalCSS(){return Xa}renderLayout(){return g`${this.badge} +`;var dt=class extends P{constructor(t){super(t)}getGlobalCSS(){return Xa}renderLayout(){return g`${this.badge}
@@ -1263,7 +1268,7 @@ merch-card[variant='twp'] merch-offer-select {
-
`}};x(mt,"variantStyle",N` +
`}};p(dt,"variantStyle",w` :host([variant='twp']) { padding: 4px 10px 5px 10px; } @@ -1303,6 +1308,105 @@ merch-card[variant='twp'] merch-offer-select { align-self: flex-start; } `);var Wa=` +:root { + --merch-card-ccd-suggested-width: 304px; + --merch-card-ccd-suggested-height: 205px; + --merch-card-ccd-suggested-background-img-size: 119px; +} + +merch-card[variant="ccd-suggested"] [slot="detail-m"] { + color: var(--merch-color-grey-60); +} + +merch-card[variant="ccd-suggested"] [slot="heading-xs"] { + color: var(--spectrum-gray-800, #F8F8F8); + font-size: var(--merch-card-heading-xxs-font-size); + line-height: var(--merch-card-heading-xxs-line-height); + +} + +merch-card[variant="ccd-suggested"] [slot="cta"] a { + text-decoration: none; + color: var(--spectrum-gray-800); + font-weight: 700; +} +`;var Tl={subtitle:{tag:"h4",slot:"detail-m"},title:{tag:"h3",slot:"heading-xs"},prices:{tag:"p",slot:"price"},description:{tag:"div",slot:"body-xs"},ctas:{slot:"cta",size:"s",button:!1}},mt=class extends P{getGlobalCSS(){return Wa}get aemFragmentMapping(){return Tl}renderLayout(){return g` +
+
+ +
+ + +
+
+ + +
+ `}};p(mt,"variantStyle",w` + :host([variant='ccd-suggested']) { + background-color: var( + --spectrum-gray-50, #fff); + width: var(--merch-card-ccd-suggested-width); + min-height: var(--merch-card-ccd-suggested-height); + border-radius: 4px; + display: flex; + flex-flow: wrap; + } + + :host([variant='ccd-suggested']) .body { + height: auto; + } + + :host([variant='ccd-suggested']) .header { + display: flex; + flex-flow: wrap; + place-self: flex-start; + } + + :host([variant='ccd-suggested']) .headings { + padding-inline-start: var(--consonant-merch-spacing-xxs); + } + + :host([variant='ccd-suggested']) ::slotted([slot='icons']) { + place-self: flex-start; + } + + :host([variant='ccd-suggested']) ::slotted([slot='heading-xs']) { + font-size: var(--merch-card-heading-xxs-font-size); + line-height: var(--merch-card-heading-xxs-line-height); + } + + :host([variant='ccd-suggested'][strip-size='wide']) ::slotted([slot='body-xs']) { + padding-inline-start: 48px; + } + + :host([variant='ccd-suggested'][strip-size='wide']) ::slotted([slot='price']) { + padding-inline-start: 48px; + } + + :host([variant='ccd-suggested']) ::slotted([slot='price']) { + display: flex; + align-items: center; + color: var(--spectrum-gray-800, #F8F8F8); + } + + :host([variant='ccd-suggested']) ::slotted([slot='cta']) { + display: flex; + align-items: center; + } + + + :host([variant='ccd-suggested']) .footer { + display: flex; + justify-content: space-between; + flex-grow: 0; + margin-top: auto; + align-items: center; + } + `);var qa=` :root { --consonant-merch-card-ccd-slice-single-width: 322px; --consonant-merch-card-ccd-slice-icon-size: 30px; @@ -1317,22 +1421,24 @@ merch-card[variant="ccd-slice"] [slot='body-s'] a:not(.con-button) { font-weight: 400; line-height: var(--consonant-merch-card-body-xxs-line-height); text-decoration-line: underline; - color: var(--merch-color-grey-80); + color: var(--spectrum-blue-800, #147AF3); } merch-card[variant="ccd-slice"] [slot='image'] img { overflow: hidden; border-radius: 50%; } -`;var wl={backgroundImage:{tag:"div",slot:"image"},description:{tag:"div",slot:"body-s"},ctas:{size:"s"},allowedSizes:["wide"]},pt=class extends O{getGlobalCSS(){return Wa}get aemFragmentMapping(){return wl}renderLayout(){return g`
+`;var yl={backgroundImage:{tag:"div",slot:"image"},description:{tag:"div",slot:"body-s"},ctas:{size:"s"},allowedSizes:["wide"]},pt=class extends P{getGlobalCSS(){return qa}get aemFragmentMapping(){return yl}renderLayout(){return g`
${this.badge}
- `}};x(pt,"variantStyle",N` + `}};p(pt,"variantStyle",w` :host([variant='ccd-slice']) { width: var(--consonant-merch-card-ccd-slice-single-width); + background-color: var( + --spectrum-gray-50, #fff); border-radius: 4px; display: flex; flex-flow: wrap; @@ -1388,12 +1494,11 @@ merch-card[variant="ccd-slice"] [slot='body-s'] a:not(.con-button) { width: inherit; height: inherit; } - `);var _i=(e,t=!1)=>{switch(e.variant){case"catalog":return new st(e);case"ccd-action":return new ct(e);case"image":return new Gr(e);case"inline-heading":return new Hr(e);case"mini-compare-chart":return new lt(e);case"plans":return new ht(e);case"product":return new De(e);case"segment":return new ut(e);case"special-offers":return new dt(e);case"twp":return new mt(e);case"ccd-slice":return new pt(e);default:return t?void 0:new De(e)}},qa=()=>{let e=[];return e.push(st.variantStyle),e.push(ct.variantStyle),e.push(lt.variantStyle),e.push(De.variantStyle),e.push(ht.variantStyle),e.push(ut.variantStyle),e.push(dt.variantStyle),e.push(mt.variantStyle),e.push(pt.variantStyle),e};var Za=document.createElement("style");Za.innerHTML=` + `);var Li=(e,t=!1)=>{switch(e.variant){case"catalog":return new at(e);case"ccd-action":return new st(e);case"image":return new kr(e);case"inline-heading":return new Or(e);case"mini-compare-chart":return new ct(e);case"plans":return new lt(e);case"product":return new Ue(e);case"segment":return new ht(e);case"special-offers":return new ut(e);case"twp":return new dt(e);case"ccd-suggested":return new mt(e);case"ccd-slice":return new pt(e);default:return t?void 0:new Ue(e)}},Za=()=>{let e=[];return e.push(at.variantStyle),e.push(st.variantStyle),e.push(ct.variantStyle),e.push(Ue.variantStyle),e.push(lt.variantStyle),e.push(ht.variantStyle),e.push(ut.variantStyle),e.push(dt.variantStyle),e.push(mt.variantStyle),e.push(pt.variantStyle),e};var Ja=document.createElement("style");Ja.innerHTML=` :root { --consonant-merch-card-detail-font-size: 12px; --consonant-merch-card-detail-font-weight: 500; --consonant-merch-card-detail-letter-spacing: 0.8px; - --consonant-merch-card-background-color: #fff; --consonant-merch-card-heading-font-size: 18px; --consonant-merch-card-heading-line-height: 22.5px; @@ -1413,6 +1518,8 @@ merch-card[variant="ccd-slice"] [slot='body-s'] a:not(.con-button) { --consonant-merch-card-cta-font-size: 15px; /* headings */ + --merch-card-heading-xxs-font-size: 16px; + --merch-card-heading-xxs-line-height: 20px; --consonant-merch-card-heading-xs-font-size: 18px; --consonant-merch-card-heading-xs-line-height: 22.5px; --consonant-merch-card-heading-s-font-size: 20px; @@ -1449,9 +1556,11 @@ merch-card[variant="ccd-slice"] [slot='body-s'] a:not(.con-button) { --consonant-merch-card-heading-padding: 0; /* colors */ + --merch-card-background-color: var(--spectrum-gray-background-color-default, #fff); --consonant-merch-card-border-color: #eaeaea; --color-accent: #1473E6; --merch-color-focus-ring: #1473E6; + --merch-color-grey-60: var(--spectrum-global-color-gray-600, #6D6D6D); --merch-color-grey-80: #2c2c2c; --merch-color-green-promo: #2D9D78; @@ -1526,7 +1635,7 @@ merch-card span[is=inline-price] { } merch-card [slot='heading-xs'] { - color: var(--merch-color-grey-80); + color: var(--spectrum-gray-800, #2c2c2c); font-size: var(--consonant-merch-card-heading-xs-font-size); line-height: var(--consonant-merch-card-heading-xs-line-height); margin: 0; @@ -1555,14 +1664,14 @@ merch-card [slot='heading-s'] { font-size: var(--consonant-merch-card-heading-s-font-size); line-height: var(--consonant-merch-card-heading-s-line-height); margin: 0; - color: var(--merch-color-grey-80); + color: var(--spectrum-gray-800, #2c2c2c); } merch-card [slot='heading-m'] { font-size: var(--consonant-merch-card-heading-m-font-size); line-height: var(--consonant-merch-card-heading-m-line-height); margin: 0; - color: var(--merch-color-grey-80); + color: var(--spectrum-gray-800, #2c2c2c); font-weight: 700; } @@ -1572,7 +1681,7 @@ merch-card [slot='heading-m-price'] { padding: 0 var(--consonant-merch-spacing-s); font-weight: 700; margin: 0; - color: var(--merch-color-grey-80); + color: var(--spectrum-gray-800, #2c2c2c); } merch-card [slot='offers'] { @@ -1583,14 +1692,14 @@ merch-card [slot='heading-l'] { font-size: var(--consonant-merch-card-heading-l-font-size); line-height: var(--consonant-merch-card-heading-l-line-height); margin: 0; - color: var(--merch-color-grey-80); + color: var(--spectrum-gray-800, #2c2c2c); } merch-card [slot='heading-xl'] { font-size: var(--consonant-merch-card-heading-xl-font-size); line-height: var(--consonant-merch-card-heading-xl-line-height); margin: 0; - color: var(--merch-color-grey-80); + color: var(--spectrum-gray-800, #2c2c2c); } merch-card [slot='callout-content'] { @@ -1645,32 +1754,36 @@ merch-card [slot="body-xxs"] { line-height: var(--consonant-merch-card-body-xxs-line-height); font-weight: normal; letter-spacing: var(--consonant-merch-card-body-xxs-letter-spacing); - color: var(--merch-color-grey-80); + color: var(--spectrum-gray-800, #2c2c2c); margin: 0; } merch-card [slot="body-xs"] { font-size: var(--consonant-merch-card-body-xs-font-size); line-height: var(--consonant-merch-card-body-xs-line-height); - color: var(--merch-color-grey-80); + color: var(--spectrum-gray-800, #2c2c2c); } merch-card [slot="body-m"] { font-size: var(--consonant-merch-card-body-m-font-size); line-height: var(--consonant-merch-card-body-m-line-height); - color: var(--merch-color-grey-80); + color: var(--spectrum-gray-800, #2c2c2c); } merch-card [slot="body-l"] { font-size: var(--consonant-merch-card-body-l-font-size); line-height: var(--consonant-merch-card-body-l-line-height); - color: var(--merch-color-grey-80); + color: var(--spectrum-gray-800, #2c2c2c); +} + +merch-card [slot="body-s"] { + color: var(--spectrum-gray-800, #2c2c2c); } merch-card [slot="body-xl"] { font-size: var(--consonant-merch-card-body-xl-font-size); line-height: var(--consonant-merch-card-body-xl-line-height); - color: var(--merch-color-grey-80); + color: var(--spectrum-gray-800, #2c2c2c); } [slot="cci-footer"] p, @@ -1749,9 +1862,9 @@ body.merch-modal { scrollbar-gutter: stable; height: 100vh; } -`;document.head.appendChild(Za);async function Ja(e,t){var a;let r=e.fields.reduce((s,{name:c,multiple:h,values:l})=>(s[c]=h?l:l[0],s),{id:e.id}),{variant:n}=r;if(!n)return;r.model=r.model,t.variant=n,await t.updateComplete;let{aemFragmentMapping:i}=t.variantLayout;if(!i)return;(a=t.variantLayout).refs??(a.refs=[]),t.variantLayout.refs.forEach(s=>s.remove());let o=s=>{t.variantLayout.refs.push(s),t.append(s)};if(r.mnemonicIcon?.forEach((s,c)=>{let h=r.mnemonicLink?.length>c?r.mnemonicLink[c]:"",l=r.mnemonicAlt?.length>c?r.mnemonicAlt[c]:"",u=Ae("merch-icon",{slot:"icons",src:s,alt:l,href:h,size:"l"});o(u)}),r.size&&i.allowedSizes?.includes(r.size)&&t.setAttribute("size",r.size),r.cardTitle&&i.title&&o(Ae(i.title.tag,{slot:i.title.slot},r.cardTitle)),r.backgroundImage&&i.backgroundImage&&o(Ae(i.backgroundImage.tag,{slot:i.backgroundImage.slot},``)),r.prices&&i.prices){let s=r.prices,c=Ae(i.prices.tag,{slot:i.prices.slot},s);o(c)}if(r.description&&i.description){let s=Ae(i.description.tag,{slot:i.description.slot},r.description);o(s)}if(r.ctas){let s=Ae("div",{slot:"footer"},r.ctas),c=[];[...s.querySelectorAll("a")].forEach(h=>{let l=h.parentElement.tagName==="STRONG";if(t.consonant)h.classList.add("con-button"),l&&h.classList.add("blue"),c.push(h);else{let m=Ae("sp-button",{treatment:l?"fill":"outline",variant:l?"accent":"primary"},h);m.addEventListener("click",f=>{f.target===m&&(f.stopPropagation(),h.click())}),c.push(m)}}),s.innerHTML="",s.append(...c),o(s)}}var Pl="merch-card",Ft=class extends ie{constructor(){super();x(this,"customerSegment");x(this,"marketSegment");x(this,"variantLayout");this.filters={},this.types="",this.selected=!1,this.handleLoadEvent=this.handleLoadEvent.bind(this)}firstUpdated(){this.variantLayout=_i(this,!1),this.variantLayout?.connectedCallbackHook(),this.aemFragment?.updateComplete.catch(()=>{this.style.display="none"})}willUpdate(r){(r.has("variant")||!this.variantLayout)&&(this.variantLayout=_i(this),this.variantLayout.connectedCallbackHook())}updated(r){(r.has("badgeBackgroundColor")||r.has("borderColor"))&&(this.style.border=this.computedBorderStyle),this.variantLayout?.postCardUpdateHook(this)}get prices(){return Array.from(this.querySelectorAll('span[is="inline-price"][data-wcs-osi]'))}render(){if(!(!this.isConnected||!this.variantLayout||this.style.display==="none"))return this.variantLayout.renderLayout()}get computedBorderStyle(){return this.variant!=="twp"?`1px solid ${this.borderColor?this.borderColor:this.badgeBackgroundColor}`:""}get badgeElement(){return this.shadowRoot.getElementById("badge")}get headingmMSlot(){return this.shadowRoot.querySelector('slot[name="heading-m"]').assignedElements()[0]}get footerSlot(){return this.shadowRoot.querySelector('slot[name="footer"]')?.assignedElements()[0]}get price(){return this.headingmMSlot?.querySelector('span[is="inline-price"]')}get checkoutLinks(){return[...this.footerSlot?.querySelectorAll('a[is="checkout-link"]')??[]]}async toggleStockOffer({target:r}){if(!this.stockOfferOsis)return;let n=this.checkoutLinks;if(n.length!==0)for(let i of n){await i.onceSettled();let o=i.value?.[0]?.planType;if(!o)return;let a=this.stockOfferOsis[o];if(!a)return;let s=i.dataset.wcsOsi.split(",").filter(c=>c!==a);r.checked&&s.push(a),i.dataset.wcsOsi=s.join(",")}}handleQuantitySelection(r){let n=this.checkoutLinks;for(let i of n)i.dataset.quantity=r.detail.option}get titleElement(){return this.querySelector(this.variantLayout?.headingSelector||".card-heading")}get title(){return this.titleElement?.textContent?.trim()}get description(){return this.querySelector('[slot="body-xs"]')?.textContent?.trim()}updateFilters(r){let n={...this.filters};Object.keys(n).forEach(i=>{if(r){n[i].order=Math.min(n[i].order||2,2);return}let o=n[i].order;o===1||isNaN(o)||(n[i].order=Number(o)+1)}),this.filters=n}includes(r){return this.textContent.match(new RegExp(r,"i"))!==null}connectedCallback(){super.connectedCallback(),this.setAttribute("tabindex",this.getAttribute("tabindex")??"0"),this.addEventListener(yi,this.handleQuantitySelection),this.addEventListener(Ra,this.merchCardReady,{once:!0}),this.updateComplete.then(()=>{this.merchCardReady()}),this.storageOptions?.addEventListener("change",this.handleStorageChange),this.addEventListener(zt,this.handleLoadEvent)}disconnectedCallback(){super.disconnectedCallback(),this.variantLayout.disconnectedCallbackHook(),this.removeEventListener(yi,this.handleQuantitySelection),this.storageOptions?.removeEventListener(Ti,this.handleStorageChange),this.removeEventListener(zt,this.handleLoadEvent)}handleLoadEvent(r){if(r.target.nodeName==="AEM-FRAGMENT"){let n=r.detail;if(!n)return;Ja(n,this),this.dispatchEvent(new CustomEvent(Ma,{bubbles:!0,composed:!0}))}}get aemFragment(){return this.querySelector("aem-fragment")}get storageOptions(){return this.querySelector("sp-radio-group#storage")}get storageSpecificOfferSelect(){let r=this.storageOptions?.selected;if(r){let n=this.querySelector(`merch-offer-select[storage="${r}"]`);if(n)return n}return this.querySelector("merch-offer-select")}get offerSelect(){return this.storageOptions?this.storageSpecificOfferSelect:this.querySelector("merch-offer-select")}get quantitySelect(){return this.querySelector("merch-quantity-select")}merchCardReady(){this.offerSelect&&!this.offerSelect.planType||this.dispatchEvent(new CustomEvent($a,{bubbles:!0}))}handleStorageChange(){let r=this.closest("merch-card")?.offerSelect.cloneNode(!0);r&&this.dispatchEvent(new CustomEvent(Ti,{detail:{offerSelect:r},bubbles:!0}))}get dynamicPrice(){return this.querySelector('[slot="price"]')}selectMerchOffer(r){if(r===this.merchOffer)return;this.merchOffer=r;let n=this.dynamicPrice;if(r.price&&n){let i=r.price.cloneNode(!0);n.onceSettled?n.onceSettled().then(()=>{n.replaceWith(i)}):n.replaceWith(i)}}};x(Ft,"properties",{name:{type:String,attribute:"name",reflect:!0},variant:{type:String,reflect:!0},size:{type:String,attribute:"size",reflect:!0},badgeColor:{type:String,attribute:"badge-color"},borderColor:{type:String,attribute:"border-color"},badgeBackgroundColor:{type:String,attribute:"badge-background-color"},badgeText:{type:String,attribute:"badge-text"},actionMenu:{type:Boolean,attribute:"action-menu"},customHr:{type:Boolean,attribute:"custom-hr"},consonant:{type:Boolean,attribute:"consonant"},detailBg:{type:String,attribute:"detail-bg"},secureLabel:{type:String,attribute:"secure-label"},checkboxLabel:{type:String,attribute:"checkbox-label"},selected:{type:Boolean,attribute:"aria-selected",reflect:!0},storageOption:{type:String,attribute:"storage",reflect:!0},stockOfferOsis:{type:Object,attribute:"stock-offer-osis",converter:{fromAttribute:r=>{let[n,i,o]=r.split(",");return{PUF:n,ABM:i,M2M:o}}}},filters:{type:String,reflect:!0,converter:{fromAttribute:r=>Object.fromEntries(r.split(",").map(n=>{let[i,o,a]=n.split(":"),s=Number(o);return[i,{order:isNaN(s)?void 0:s,size:a}]})),toAttribute:r=>Object.entries(r).map(([n,{order:i,size:o}])=>[n,i,o].filter(a=>a!=null).join(":")).join(",")}},types:{type:String,attribute:"types",reflect:!0},merchOffer:{type:Object}}),x(Ft,"styles",[ka,qa(),...Oa()]);customElements.define(Pl,Ft);var ft=class extends ie{constructor(){super(),this.size="m",this.alt=""}render(){let{href:t}=this;return t?g` +`;document.head.appendChild(Ja);async function Qa(e,t){var a;let r=e.fields.reduce((s,{name:c,multiple:l,values:h})=>(s[c]=l?h:h[0],s),{id:e.id}),{variant:n}=r;if(!n)return;r.model=r.model,t.variantLayout?.refs?.forEach(s=>s.remove()),t.variant=n,await t.updateComplete,(a=t.variantLayout).refs??(a.refs=[]);let{aemFragmentMapping:i}=t.variantLayout;if(!i)return;let o=s=>{t.variantLayout.refs.push(s),t.append(s)};if(r.mnemonicIcon?.forEach((s,c)=>{let l=r.mnemonicLink?.length>c?r.mnemonicLink[c]:"",h=r.mnemonicAlt?.length>c?r.mnemonicAlt[c]:"",u=he("merch-icon",{slot:"icons",src:s,alt:h,href:l,size:"l"});o(u)}),r.size?i.allowedSizes?.includes(r.size)&&t.setAttribute("size",r.size):t.removeAttribute("size"),r.cardTitle&&i.title&&o(he(i.title.tag,{slot:i.title.slot},r.cardTitle)),r.subtitle&&i.subtitle&&o(he(i.subtitle.tag,{slot:i.subtitle.slot},r.subtitle)),r.backgroundImage&&i.backgroundImage&&o(he(i.backgroundImage.tag,{slot:i.backgroundImage.slot},``)),r.prices&&i.prices){let s=r.prices,c=he(i.prices.tag,{slot:i.prices.slot},s);o(c)}if(r.description&&i.description){let s=he(i.description.tag,{slot:i.description.slot},r.description);o(s)}if(r.ctas){let{slot:s,button:c=!0}=i.ctas,l=he("div",{slot:s??"footer"},r.ctas),h=[];[...l.querySelectorAll("a")].forEach(u=>{let d=u.parentElement.tagName==="STRONG";if(t.consonant)u.classList.add("con-button"),d&&u.classList.add("blue"),h.push(u);else{if(!c){h.push(u);return}let f=he("sp-button",{treatment:d?"fill":"outline",variant:d?"accent":"primary"},u);f.addEventListener("click",S=>{S.target===f&&(S.stopPropagation(),u.click())}),h.push(f)}}),l.innerHTML="",l.append(...h),o(l)}}var _l="merch-card",Ll=2e3,Pi,Bt,wi,Kt=class extends ie{constructor(){super();J(this,Bt);p(this,"customerSegment");p(this,"marketSegment");p(this,"variantLayout");J(this,Pi,!1);this.filters={},this.types="",this.selected=!1,this.handleAemFragmentEvents=this.handleAemFragmentEvents.bind(this)}firstUpdated(){this.variantLayout=Li(this,!1),this.variantLayout?.connectedCallbackHook(),this.aemFragment?.updateComplete.catch(()=>{this.style.display="none"})}willUpdate(r){(r.has("variant")||!this.variantLayout)&&(this.variantLayout=Li(this),this.variantLayout.connectedCallbackHook())}updated(r){(r.has("badgeBackgroundColor")||r.has("borderColor"))&&(this.style.border=this.computedBorderStyle),this.variantLayout?.postCardUpdateHook(this)}get theme(){return this.closest("sp-theme")}get prices(){return Array.from(this.querySelectorAll('span[is="inline-price"][data-wcs-osi]'))}render(){if(!(!this.isConnected||!this.variantLayout||this.style.display==="none"))return this.variantLayout.renderLayout()}get computedBorderStyle(){return this.variant!=="twp"?`1px solid ${this.borderColor?this.borderColor:this.badgeBackgroundColor}`:""}get badgeElement(){return this.shadowRoot.getElementById("badge")}get headingmMSlot(){return this.shadowRoot.querySelector('slot[name="heading-m"]').assignedElements()[0]}get footerSlot(){return this.shadowRoot.querySelector('slot[name="footer"]')?.assignedElements()[0]}get price(){return this.headingmMSlot?.querySelector('span[is="inline-price"]')}get checkoutLinks(){return[...this.footerSlot?.querySelectorAll('a[is="checkout-link"]')??[]]}async toggleStockOffer({target:r}){if(!this.stockOfferOsis)return;let n=this.checkoutLinks;if(n.length!==0)for(let i of n){await i.onceSettled();let o=i.value?.[0]?.planType;if(!o)return;let a=this.stockOfferOsis[o];if(!a)return;let s=i.dataset.wcsOsi.split(",").filter(c=>c!==a);r.checked&&s.push(a),i.dataset.wcsOsi=s.join(",")}}handleQuantitySelection(r){let n=this.checkoutLinks;for(let i of n)i.dataset.quantity=r.detail.option}get titleElement(){return this.querySelector(this.variantLayout?.headingSelector||".card-heading")}get title(){return this.titleElement?.textContent?.trim()}get description(){return this.querySelector('[slot="body-xs"]')?.textContent?.trim()}updateFilters(r){let n={...this.filters};Object.keys(n).forEach(i=>{if(r){n[i].order=Math.min(n[i].order||2,2);return}let o=n[i].order;o===1||isNaN(o)||(n[i].order=Number(o)+1)}),this.filters=n}includes(r){return this.textContent.match(new RegExp(r,"i"))!==null}connectedCallback(){super.connectedCallback(),this.setAttribute("tabindex",this.getAttribute("tabindex")??"0"),this.addEventListener(_i,this.handleQuantitySelection),this.addEventListener(Va,this.merchCardReady,{once:!0}),this.updateComplete.then(()=>{this.merchCardReady()}),this.storageOptions?.addEventListener("change",this.handleStorageChange),this.addEventListener(ot,this.handleAemFragmentEvents),this.addEventListener(it,this.handleAemFragmentEvents),this.aemFragment||this.checkReady()}disconnectedCallback(){super.disconnectedCallback(),this.variantLayout.disconnectedCallbackHook(),this.removeEventListener(_i,this.handleQuantitySelection),this.storageOptions?.removeEventListener(yi,this.handleStorageChange),this.removeEventListener(ot,this.handleAemFragmentEvents),this.removeEventListener(it,this.handleAemFragmentEvents)}async handleAemFragmentEvents(r){if(r.type===ot&&He(this,Bt,wi).call(this,"AEM fragment cannot be loaded"),r.type===it&&r.target.nodeName==="AEM-FRAGMENT"){let n=r.detail;await Qa(n,this),this.checkReady()}}async checkReady(){let r=Promise.all([...this.querySelectorAll('span[is="inline-price"][data-wcs-osi],a[is="checkout-link"][data-wcs-osi]')].map(o=>o.onceSettled().catch(()=>o))).then(o=>o.every(a=>a.classList.contains("placeholder-resolved"))),n=new Promise(o=>setTimeout(()=>o(!1),Ll));if(await Promise.race([r,n])===!0){this.dispatchEvent(new CustomEvent(Ma,{bubbles:!0,composed:!0}));return}He(this,Bt,wi).call(this,"Contains unresolved offers")}get aemFragment(){return this.querySelector("aem-fragment")}get storageOptions(){return this.querySelector("sp-radio-group#storage")}get storageSpecificOfferSelect(){let r=this.storageOptions?.selected;if(r){let n=this.querySelector(`merch-offer-select[storage="${r}"]`);if(n)return n}return this.querySelector("merch-offer-select")}get offerSelect(){return this.storageOptions?this.storageSpecificOfferSelect:this.querySelector("merch-offer-select")}get quantitySelect(){return this.querySelector("merch-quantity-select")}merchCardReady(){this.offerSelect&&!this.offerSelect.planType||this.dispatchEvent(new CustomEvent(Ra,{bubbles:!0}))}handleStorageChange(){let r=this.closest("merch-card")?.offerSelect.cloneNode(!0);r&&this.dispatchEvent(new CustomEvent(yi,{detail:{offerSelect:r},bubbles:!0}))}get dynamicPrice(){return this.querySelector('[slot="price"]')}selectMerchOffer(r){if(r===this.merchOffer)return;this.merchOffer=r;let n=this.dynamicPrice;if(r.price&&n){let i=r.price.cloneNode(!0);n.onceSettled?n.onceSettled().then(()=>{n.replaceWith(i)}):n.replaceWith(i)}}};Pi=new WeakMap,Bt=new WeakSet,wi=function(r){this.dispatchEvent(new CustomEvent(Ua,{detail:r,bubbles:!0,composed:!0}))},p(Kt,"properties",{name:{type:String,attribute:"name",reflect:!0},variant:{type:String,reflect:!0},size:{type:String,attribute:"size",reflect:!0},badgeColor:{type:String,attribute:"badge-color"},borderColor:{type:String,attribute:"border-color"},badgeBackgroundColor:{type:String,attribute:"badge-background-color"},stripSize:{type:String,attribute:"strip-size"},stripBackground:{type:String,attribute:"strip-background"},badgeText:{type:String,attribute:"badge-text"},actionMenu:{type:Boolean,attribute:"action-menu"},customHr:{type:Boolean,attribute:"custom-hr"},consonant:{type:Boolean,attribute:"consonant"},detailBg:{type:String,attribute:"detail-bg"},secureLabel:{type:String,attribute:"secure-label"},checkboxLabel:{type:String,attribute:"checkbox-label"},selected:{type:Boolean,attribute:"aria-selected",reflect:!0},storageOption:{type:String,attribute:"storage",reflect:!0},stockOfferOsis:{type:Object,attribute:"stock-offer-osis",converter:{fromAttribute:r=>{let[n,i,o]=r.split(",");return{PUF:n,ABM:i,M2M:o}}}},filters:{type:String,reflect:!0,converter:{fromAttribute:r=>Object.fromEntries(r.split(",").map(n=>{let[i,o,a]=n.split(":"),s=Number(o);return[i,{order:isNaN(s)?void 0:s,size:a}]})),toAttribute:r=>Object.entries(r).map(([n,{order:i,size:o}])=>[n,i,o].filter(a=>a!=null).join(":")).join(",")}},types:{type:String,attribute:"types",reflect:!0},merchOffer:{type:Object}}),p(Kt,"styles",[Ia,Za(),...ka()]);customElements.define(_l,Kt);var ft=class extends ie{constructor(){super(),this.size="m",this.alt=""}render(){let{href:t}=this;return t?g` ${this.alt} - `:g` ${this.alt}`}};x(ft,"properties",{size:{type:String,attribute:!0},src:{type:String,attribute:!0},alt:{type:String,attribute:!0},href:{type:String,attribute:!0}}),x(ft,"styles",N` + `:g` ${this.alt}`}};p(ft,"properties",{size:{type:String,attribute:!0},src:{type:String,attribute:!0},alt:{type:String,attribute:!0},href:{type:String,attribute:!0}}),p(ft,"styles",w` :host { --img-width: 32px; --img-height: 32px; @@ -1774,7 +1887,7 @@ body.merch-modal { width: var(--img-width); height: var(--img-height); } - `);customElements.define("merch-icon",ft);async function Cl(e){let t=e.headers.get("Etag"),r=await e.json();return r.etag=t,r}async function Qa(e,t,r){let n=await fetch(`${e}/adobe/sites/cf/fragments/${t}`,{headers:r});if(!n.ok)throw new Error(`Failed to get fragment: ${n.status} ${n.statusText}`);return await Cl(n)}var ts=new CSSStyleSheet;ts.replaceSync(":host { display: contents; }");var Il=document.querySelector('meta[name="aem-base-url"]')?.content??"https://publish-p22655-e155390.adobeaemcloud.com",es="fragment",Nl="ims",Li,Se,Pi=class{constructor(){ze(this,Se,new Map)}clear(){W(this,Se).clear()}add(...t){t.forEach(r=>{let{id:n}=r;n&&W(this,Se).set(n,r)})}has(t){return W(this,Se).has(t)}get(t){return W(this,Se).get(t)}remove(t){W(this,Se).delete(t)}};Se=new WeakMap;var wi=new Pi,Ci=class extends HTMLElement{constructor(){super();x(this,"cache",wi);x(this,"data");x(this,"fragmentId");x(this,"consonant",!1);x(this,"ims",!1);x(this,"_readyPromise");this.attachShadow({mode:"open"}),this.shadowRoot.adoptedStyleSheets=[ts];let r=this.getAttribute(Nl);["",!0].includes(r)?(this.ims=!0,Li||(Li={Authorization:`Bearer ${window.adobeid?.authorize?.()}`,pragma:"no-cache","cache-control":"no-cache"})):this.ims=!1}static get observedAttributes(){return[es]}attributeChangedCallback(r,n,i){r===es&&(this.fragmentId=i,this.refresh(!1))}async refresh(r=!0){this.fragmentId&&(this._readyPromise&&!await Promise.race([this._readyPromise,Promise.resolve(!1)])||(r&&this.cache.remove(this.fragmentId),this._readyPromise=this.fetchData().then(()=>(this.dispatchEvent(new CustomEvent(zt,{detail:this.data,bubbles:!0,composed:!0})),!0))))}async fetchData(){let r=wi.get(this.fragmentId);r||(r=await Qa(Il,this.fragmentId,this.ims?Li:void 0),wi.add(r)),this.data=r}get updateComplete(){return this._readyPromise??Promise.reject(new Error("AEM fragment cannot be loaded"))}};customElements.define("aem-fragment",Ci);var{searchParams:rs}=new URL(import.meta.url),kl=rs.get("locale")??"US_en",ns=rs.get("env")==="stage",Ol=ns?"stage":"prod",Vl=ns?"STAGE":"PROD",Rl=()=>({env:{name:Ol},commerce:{"commerce.env":Vl},locale:{prefix:kl}}),$l=It(Rl),Ef=$l;export{Ef as default}; + `);customElements.define("merch-icon",ft);async function wl(e){let t=e.headers.get("Etag"),r=await e.json();return r.etag=t,r}async function es(e,t,r){let n=await fetch(`${e}/adobe/sites/cf/fragments/${t}`,{headers:r});if(!n.ok)throw new Error(`Failed to get fragment: ${n.status} ${n.statusText}`);return await wl(n)}var rs=new CSSStyleSheet;rs.replaceSync(":host { display: contents; }");var Pl=document.querySelector('meta[name="aem-base-url"]')?.content??"https://publish-p22655-e155390.adobeaemcloud.com",ts="fragment",Cl="ims",Ci,ve,Ni=class{constructor(){J(this,ve,new Map)}clear(){B(this,ve).clear()}add(...t){t.forEach(r=>{let{id:n}=r;n&&B(this,ve).set(n,r)})}has(t){return B(this,ve).has(t)}get(t){return B(this,ve).get(t)}remove(t){B(this,ve).delete(t)}};ve=new WeakMap;var Vr=new Ni,jt,ki,Ii=class extends HTMLElement{constructor(){super();J(this,jt);p(this,"cache",Vr);p(this,"data");p(this,"fragmentId");p(this,"consonant",!1);p(this,"ims",!1);p(this,"_readyPromise");this.attachShadow({mode:"open"}),this.shadowRoot.adoptedStyleSheets=[rs];let r=this.getAttribute(Cl);["",!0].includes(r)?(this.ims=!0,Ci||(Ci={Authorization:`Bearer ${window.adobeid?.authorize?.()}`,pragma:"no-cache","cache-control":"no-cache"})):this.ims=!1}static get observedAttributes(){return[ts]}attributeChangedCallback(r,n,i){r===ts&&(this.fragmentId=i,this.refresh(!1))}connectedCallback(){if(!this.fragmentId){He(this,jt,ki).call(this,"Missing fragment id");return}}async refresh(r=!0){this._readyPromise&&!await Promise.race([this._readyPromise,Promise.resolve(!1)])||(r&&Vr.remove(this.fragmentId),this._readyPromise=this.fetchData().then(()=>(this.dispatchEvent(new CustomEvent(it,{detail:this.data,bubbles:!0,composed:!0})),!0)).catch(()=>(He(this,jt,ki).call(this,"Network error: failed to load fragment"),this._readyPromise=null,!1)))}async fetchData(){let r=Vr.get(this.fragmentId);r||(r=await es(Pl,this.fragmentId,this.ims?Ci:void 0),Vr.add(r)),this.data=r}get updateComplete(){return this._readyPromise??Promise.reject(new Error("AEM fragment cannot be loaded"))}};jt=new WeakSet,ki=function(r){this.classList.add("error"),this.dispatchEvent(new CustomEvent(ot,{detail:r,bubbles:!0,composed:!0}))};customElements.define("aem-fragment",Ii); /*! Bundled license information: @lit/reactive-element/css-tag.js: diff --git a/libs/deps/mas/merch-card-collection.js b/libs/deps/mas/merch-card-collection.js index e0333d6fc3..0d0c0e681e 100644 --- a/libs/deps/mas/merch-card-collection.js +++ b/libs/deps/mas/merch-card-collection.js @@ -1,4 +1,90 @@ -import{html as l,LitElement as N}from"../lit-all.min.js";var m=class{constructor(e,t){this.key=Symbol("match-media-key"),this.matches=!1,this.host=e,this.host.addController(this),this.media=window.matchMedia(t),this.matches=this.media.matches,this.onChange=this.onChange.bind(this),e.addController(this)}hostConnected(){var e;(e=this.media)==null||e.addEventListener("change",this.onChange)}hostDisconnected(){var e;(e=this.media)==null||e.removeEventListener("change",this.onChange)}onChange(e){this.matches!==e.matches&&(this.matches=e.matches,this.host.requestUpdate(this.key,!this.matches))}};var f="hashchange";function R(r=window.location.hash){let e=[],t=r.replace(/^#/,"").split("&");for(let o of t){let[i,c=""]=o.split("=");i&&e.push([i,decodeURIComponent(c.replace(/\+/g," "))])}return Object.fromEntries(e)}function p(r){let e=new URLSearchParams(window.location.hash.slice(1));Object.entries(r).forEach(([i,c])=>{c?e.set(i,c):e.delete(i)}),e.sort();let t=e.toString();if(t===window.location.hash)return;let o=window.scrollY||document.documentElement.scrollTop;window.location.hash=t,window.scrollTo(0,o)}function T(r){let e=()=>{if(window.location.hash&&!window.location.hash.includes("="))return;let t=R(window.location.hash);r(t)};return e(),window.addEventListener(f,e),()=>{window.removeEventListener(f,e)}}var x="merch-card-collection:sort",g="merch-card-collection:showmore";var C=(r,e={})=>{r.querySelectorAll("span[data-placeholder]").forEach(t=>{let{placeholder:o}=t.dataset;t.innerText=e[o]??""})};var _="(max-width: 1199px)",b="(min-width: 768px)",w="(min-width: 1200px)";import{css as A,unsafeCSS as y}from"../lit-all.min.js";var S=A` +// src/merch-card-collection.js +import { html, LitElement } from "../lit-all.min.js"; + +// ../node_modules/@spectrum-web-components/reactive-controllers/src/MatchMedia.js +var MatchMediaController = class { + constructor(e, t) { + this.key = Symbol("match-media-key"); + this.matches = false; + this.host = e, this.host.addController(this), this.media = window.matchMedia(t), this.matches = this.media.matches, this.onChange = this.onChange.bind(this), e.addController(this); + } + hostConnected() { + var e; + (e = this.media) == null || e.addEventListener("change", this.onChange); + } + hostDisconnected() { + var e; + (e = this.media) == null || e.removeEventListener("change", this.onChange); + } + onChange(e) { + this.matches !== e.matches && (this.matches = e.matches, this.host.requestUpdate(this.key, !this.matches)); + } +}; + +// src/deeplink.js +var EVENT_HASHCHANGE = "hashchange"; +function parseState(hash = window.location.hash) { + const result = []; + const keyValuePairs = hash.replace(/^#/, "").split("&"); + for (const pair of keyValuePairs) { + const [key, value = ""] = pair.split("="); + if (key) { + result.push([key, decodeURIComponent(value.replace(/\+/g, " "))]); + } + } + return Object.fromEntries(result); +} +function pushState(state) { + const hash = new URLSearchParams(window.location.hash.slice(1)); + Object.entries(state).forEach(([key, value2]) => { + if (value2) { + hash.set(key, value2); + } else { + hash.delete(key); + } + }); + hash.sort(); + const value = hash.toString(); + if (value === window.location.hash) + return; + let lastScrollTop = window.scrollY || document.documentElement.scrollTop; + window.location.hash = value; + window.scrollTo(0, lastScrollTop); +} +function deeplink(callback) { + const handler = () => { + if (window.location.hash && !window.location.hash.includes("=")) + return; + const state = parseState(window.location.hash); + callback(state); + }; + handler(); + window.addEventListener(EVENT_HASHCHANGE, handler); + return () => { + window.removeEventListener(EVENT_HASHCHANGE, handler); + }; +} + +// src/constants.js +var EVENT_MERCH_CARD_COLLECTION_SORT = "merch-card-collection:sort"; +var EVENT_MERCH_CARD_COLLECTION_SHOWMORE = "merch-card-collection:showmore"; + +// src/literals.js +var updateLiterals = (el, values = {}) => { + el.querySelectorAll("span[data-placeholder]").forEach((el2) => { + const { placeholder } = el2.dataset; + el2.innerText = values[placeholder] ?? ""; + }); +}; + +// src/media.js +var TABLET_DOWN = "(max-width: 1199px)"; +var TABLET_UP = "(min-width: 768px)"; +var DESKTOP_UP = "(min-width: 1200px)"; + +// src/merch-card-collection.css.js +import { css, unsafeCSS } from "../lit-all.min.js"; +var styles = css` #header, #resultText, #footer { @@ -65,7 +151,7 @@ import{html as l,LitElement as N}from"../lit-all.min.js";var m=class{constructor } /* tablets */ - @media screen and ${y(b)} { + @media screen and ${unsafeCSS(TABLET_UP)} { #header { grid-template-columns: 1fr fit-content(100%) fit-content(100%); } @@ -84,7 +170,7 @@ import{html as l,LitElement as N}from"../lit-all.min.js";var m=class{constructor } /* Laptop */ - @media screen and ${y(w)} { + @media screen and ${unsafeCSS(DESKTOP_UP)} { #resultText { grid-column: span 2; order: -3; @@ -96,55 +182,300 @@ import{html as l,LitElement as N}from"../lit-all.min.js";var m=class{constructor justify-content: end; } } -`;var u=(r,e)=>r.querySelector(`[slot="${e}"]`).textContent.trim();var M="merch-card-collection",n={alphabetical:"alphabetical",authored:"authored"},O={filters:["noResultText","resultText","resultsText"],mobile:["noSearchResultsMobileText","searchResultMobileText","searchResultsMobileText"],desktop:["noSearchResultsText","searchResultText","searchResultsText"]},v=(r,{filter:e})=>r.filter(t=>t.filters.hasOwnProperty(e)),L=(r,{types:e})=>e?(e=e.split(","),r.filter(t=>e.some(o=>t.types.includes(o)))):r,D=r=>r.sort((e,t)=>(e.title??"").localeCompare(t.title??"","en",{sensitivity:"base"})),H=(r,{filter:e})=>r.sort((t,o)=>o.filters[e]?.order==null||isNaN(o.filters[e]?.order)?-1:t.filters[e]?.order==null||isNaN(t.filters[e]?.order)?1:t.filters[e].order-o.filters[e].order),B=(r,{search:e})=>e?.length?(e=e.toLowerCase(),r.filter(t=>(t.title??"").toLowerCase().includes(e))):r,E=class extends N{static properties={filter:{type:String,attribute:"filter",reflect:!0},filtered:{type:String,attribute:"filtered"},search:{type:String,attribute:"search",reflect:!0},sort:{type:String,attribute:"sort",default:n.authored,reflect:!0},types:{type:String,attribute:"types",reflect:!0},limit:{type:Number,attribute:"limit"},page:{type:Number,attribute:"page",reflect:!0},singleApp:{type:String,attribute:"single-app",reflect:!0},hasMore:{type:Boolean},displayResult:{type:Boolean,attribute:"display-result"},resultCount:{type:Number},sidenav:{type:Object}};mobileAndTablet=new m(this,_);constructor(){super(),this.filter="all",this.hasMore=!1,this.resultCount=void 0,this.displayResult=!1}render(){return l`${this.header} +`; + +// src/utils.js +var getSlotText = (element, name) => element.querySelector(`[slot="${name}"]`).textContent.trim(); + +// src/merch-card-collection.js +var MERCH_CARD_COLLECTION = "merch-card-collection"; +var SORT_ORDER = { + alphabetical: "alphabetical", + authored: "authored" +}; +var RESULT_TEXT_SLOT_NAMES = { + // no search + filters: ["noResultText", "resultText", "resultsText"], + // search on mobile + mobile: [ + "noSearchResultsMobileText", + "searchResultMobileText", + "searchResultsMobileText" + ], + // search on desktop + desktop: ["noSearchResultsText", "searchResultText", "searchResultsText"] +}; +var categoryFilter = (elements, { filter }) => elements.filter((element) => element.filters.hasOwnProperty(filter)); +var typeFilter = (elements, { types }) => { + if (!types) + return elements; + types = types.split(","); + return elements.filter( + (element) => types.some((type) => element.types.includes(type)) + ); +}; +var alphabeticalSorter = (elements) => elements.sort( + (a, b) => (a.title ?? "").localeCompare(b.title ?? "", "en", { + sensitivity: "base" + }) +); +var authoredSorter = (elements, { filter }) => elements.sort((a, b) => { + if (b.filters[filter]?.order == void 0 || isNaN(b.filters[filter]?.order)) + return -1; + if (a.filters[filter]?.order == void 0 || isNaN(a.filters[filter]?.order)) + return 1; + return a.filters[filter].order - b.filters[filter].order; +}); +var searcher = (elements, { search }) => { + if (search?.length) { + search = search.toLowerCase(); + return elements.filter((element) => { + const haystack = (element.title ?? "").toLowerCase(); + return haystack.includes(search); + }); + } + return elements; +}; +var MerchCardCollection = class extends LitElement { + static properties = { + filter: { type: String, attribute: "filter", reflect: true }, + filtered: { type: String, attribute: "filtered" }, + // freeze filter + search: { type: String, attribute: "search", reflect: true }, + sort: { + type: String, + attribute: "sort", + default: SORT_ORDER.authored, + reflect: true + }, + types: { type: String, attribute: "types", reflect: true }, + limit: { type: Number, attribute: "limit" }, + page: { type: Number, attribute: "page", reflect: true }, + singleApp: { type: String, attribute: "single-app", reflect: true }, + hasMore: { type: Boolean }, + displayResult: { type: Boolean, attribute: "display-result" }, + resultCount: { + type: Number + }, + sidenav: { type: Object } + }; + mobileAndTablet = new MatchMediaController(this, TABLET_DOWN); + constructor() { + super(); + this.filter = "all"; + this.hasMore = false; + this.resultCount = void 0; + this.displayResult = false; + } + render() { + return html`${this.header} - ${this.footer}`}updated(e){if(!this.querySelector("merch-card"))return;let t=window.scrollY||document.documentElement.scrollTop,o=[...this.children].filter(s=>s.tagName==="MERCH-CARD");if(o.length===0)return;e.has("singleApp")&&this.singleApp&&o.forEach(s=>{s.updateFilters(s.name===this.singleApp)});let i=this.sort===n.alphabetical?D:H,h=[v,L,B,i].reduce((s,a)=>a(s,this),o).map((s,a)=>[s,a]);if(this.resultCount=h.length,this.page&&this.limit){let s=this.page*this.limit;this.hasMore=h.length>s,h=h.filter(([,a])=>a{if(d.has(s)){let a=d.get(s);s.style.order=a,s.setAttribute("tabindex",a+1),s.size=s.filters[this.filter]?.size,s.style.removeProperty("display"),s.requestUpdate()}else s.style.display="none",s.size=void 0,s.style.removeProperty("order")}),window.scrollTo(0,t),this.updateComplete.then(()=>{let s=this.shadowRoot.getElementById("resultText")?.firstElementChild?.assignedElements?.()?.[0];s&&C(s,{resultCount:this.resultCount,searchTerm:this.search,filter:this.sidenav?.filters.selectedText})})}connectedCallback(){super.connectedCallback(),this.filtered?(this.filter=this.filtered,this.page=1):this.startDeeplink(),this.sidenav=document.querySelector("merch-sidenav")}disconnectedCallback(){super.disconnectedCallback(),this.stopDeeplink?.()}get header(){if(!this.filtered)return l`