From b149849aa7f2448733d6bbfd664f37c6d89c08d9 Mon Sep 17 00:00:00 2001 From: John Pratt Date: Wed, 30 Oct 2024 11:35:21 -0600 Subject: [PATCH 1/9] MWPW-161235 [MEP] add nala test for timeline block (#3099) * add nala test for timeline block * add accessibility test * fix test name in spec file * Update nala/blocks/timeline/timeline.test.js Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --------- Co-authored-by: John Pratt Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- nala/blocks/timeline/timeline.page.js | 21 ++++++++++ nala/blocks/timeline/timeline.spec.js | 26 +++++++++++++ nala/blocks/timeline/timeline.test.js | 55 +++++++++++++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 nala/blocks/timeline/timeline.page.js create mode 100644 nala/blocks/timeline/timeline.spec.js create mode 100644 nala/blocks/timeline/timeline.test.js diff --git a/nala/blocks/timeline/timeline.page.js b/nala/blocks/timeline/timeline.page.js new file mode 100644 index 0000000000..ff043fcc20 --- /dev/null +++ b/nala/blocks/timeline/timeline.page.js @@ -0,0 +1,21 @@ +export default class TimelineBlock { + constructor(page, nth = 0) { + this.page = page; + // timeline locators + + this.timelineBlock = page.locator('.timeline').nth(nth); + + this.heading1 = this.timelineBlock.locator('h3').nth(0); + this.heading2 = this.timelineBlock.locator('h3').nth(1); + this.heading3 = this.timelineBlock.locator('h3').nth(2); + this.text1 = this.timelineBlock.locator('h3+p').nth(0); + this.text2 = this.timelineBlock.locator('h3+p').nth(1); + this.text3 = this.timelineBlock.locator('h3+p').nth(2); + this.banner1 = this.timelineBlock.locator('.period.body-s').nth(0); + this.banner2 = this.timelineBlock.locator('.period.body-s').nth(1); + + this.bar1 = page.locator('.bar').nth(0); + this.bar2 = page.locator('.bar').nth(1); + this.bar3 = page.locator('.bar').nth(2); + } +} diff --git a/nala/blocks/timeline/timeline.spec.js b/nala/blocks/timeline/timeline.spec.js new file mode 100644 index 0000000000..bd668fcce9 --- /dev/null +++ b/nala/blocks/timeline/timeline.spec.js @@ -0,0 +1,26 @@ +module.exports = { + BlockName: 'Timeline Block', + features: [ + { + tcid: '0', + name: '@Verify text in timeline block', + path: '/drafts/nala/blocks/timeline/timeline', + data: {}, + tags: '@timeline @timeline0 @smoke @regression @milo', + }, + { + tcid: '1', + name: '@Verify CSS in timeline block', + path: '/drafts/nala/blocks/timeline/timeline', + data: {}, + tags: '@timeline @timeline1 @smoke @regression @milo', + }, + { + tcid: '2', + name: '@Accessibility tests in timeline block', + path: '/drafts/nala/blocks/timeline/timeline', + data: {}, + tags: '@timeline @timeline2 @smoke @regression @milo', + }, + ], +}; diff --git a/nala/blocks/timeline/timeline.test.js b/nala/blocks/timeline/timeline.test.js new file mode 100644 index 0000000000..58f71cdd10 --- /dev/null +++ b/nala/blocks/timeline/timeline.test.js @@ -0,0 +1,55 @@ +// run test: +// npm run nala stage tag=timeline + +import { expect, test } from '@playwright/test'; +import { features } from './timeline.spec.js'; +import TimelineBlock from './timeline.page.js'; +import { runAccessibilityTest } from '../../libs/accessibility.js'; + +const miloLibs = process.env.MILO_LIBS || ''; + +// Test 0: verify the text in the timeline block +test(`${features[0].name},${features[0].tags}`, async ({ page, baseURL }) => { + const timeline = new TimelineBlock(page); + const URL = `${baseURL}${features[0].path}${miloLibs}`; + console.info(`[Test Page]: ${URL}`); + await page.goto(URL); + + await expect(timeline.heading1).toHaveText('Day 1'); + await expect(timeline.heading2).toHaveText('Day 8'); + await expect(timeline.heading3).toHaveText('Day 21'); + await expect(timeline.text1).toHaveText('If you start your free trial today'); + await expect(timeline.text2).toHaveText('Your subscription starts and billing begins'); + await expect(timeline.text3).toHaveText('Full refund period ends'); + await expect(timeline.banner1).toHaveText('7-day free trial'); + await expect(timeline.banner2).toHaveText('14-day full refund period'); +}); + +// Test 1: verify the CSS style and the analytic +test(`${features[1].name},${features[1].tags}`, async ({ page, baseURL }) => { + const timeline = new TimelineBlock(page); + const URL = `${baseURL}${features[1].path}${miloLibs}`; + console.info(`[Test Page]: ${URL}`); + await page.goto(URL); + + await expect(timeline.bar1).toHaveCSS('background-color', 'rgb(230, 56, 136)'); + await expect(timeline.bar2).toHaveCSS('background-color', 'rgb(233, 116, 154)'); + await expect(timeline.bar3).toHaveCSS('background-color', 'rgb(255, 206, 46)'); + await expect(timeline.bar1).toHaveCSS('width', '2px'); + await expect(timeline.bar2).toHaveCSS('width', '2px'); + await expect(timeline.bar3).toHaveCSS('width', '2px'); + await expect(timeline.banner1).toHaveCSS('background-image', 'linear-gradient(to right, rgb(230, 56, 136) 0px, rgb(233, 116, 154) 100%)'); + await expect(timeline.banner2).toHaveCSS('background-color', 'rgb(255, 206, 46)'); + + await expect(timeline.timelineBlock).toHaveAttribute('daa-lh', 'b2|timeline'); + await expect(timeline.timelineBlock).toBeVisible(); +}); + +// Test 2: run Accessibility tests +test(`${features[2].name},${features[2].tags}`, async ({ page, baseURL }) => { + const timeline = new TimelineBlock(page); + const URL = `${baseURL}${features[1].path}${miloLibs}`; + console.info(`[Test Page]: ${URL}`); + await page.goto(URL); + await runAccessibilityTest({ page, testScope: timeline.timelineBlock }); +}); From 22ac88033badc0d61f41d645404f2f2fd4bb954b Mon Sep 17 00:00:00 2001 From: Santoshkumar Nateekar Date: Wed, 30 Oct 2024 10:35:28 -0700 Subject: [PATCH 2/9] [MWPW-161236][NALA] Nala Accessibility Test Bot (A11y Bot) (#3109) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revert "MWPW-156749: Fix video CLS " (#2899) (#2900) Revert "MWPW-156749: Fix video CLS (#2849)" This reverts commit d4134c85979cfbb88a01d331f8d946eb67251de5. * [MWPW-159903] Fix quiz video marquees (#3009) (#3013) fix quiz marquees * [MWPW-159328] handle a case where there are not placeholders availabl… (#3014) [MWPW-159328] handle a case where there are not placeholders available (#2998) * [MWPW-159328] handle a case where there are not palceholders availble * fixed typos --------- Co-authored-by: Denys Fedotov Co-authored-by: Denys Fedotov * MWPW-146211 [MILO][MEP] Option to select all elements (#2976) (#3023) * stash * stash * stash * working well * set updated command list for inline * remove querySelector function * unit test and custom block fix * updates for in-block * merch-card-collection unit test fixed * unit test updates * more unit test repair * linting errors * more linting * Fix Invalid selector test * add coverage * force git checks to refire * remove comment * pass rootEl to getSelectedElements for use when needed (gnav) * skip if clause in codecov --------- Co-authored-by: Vivian A Goodrich <101133187+vgoodric@users.noreply.github.com> Co-authored-by: markpadbe * MWPW-158455: Promobar overlays with localnav elements in devices (#2991) * Revert "MWPW-156749: Fix video CLS " (#2899) (#2900) Revert "MWPW-156749: Fix video CLS (#2849)" This reverts commit d4134c85979cfbb88a01d331f8d946eb67251de5. * Changing z-index of promobar and popup * Changing z-index of promobar and popup * Reverting z-index to 4 for promobar --------- Co-authored-by: milo-pr-merge[bot] <169241390+milo-pr-merge[bot]@users.noreply.github.com> Co-authored-by: Okan Sahin <39759830+mokimo@users.noreply.github.com> Co-authored-by: Blaine Gunn Co-authored-by: Akansha Arora <> * a11y-bot --------- Co-authored-by: milo-pr-merge[bot] <169241390+milo-pr-merge[bot]@users.noreply.github.com> Co-authored-by: Okan Sahin <39759830+mokimo@users.noreply.github.com> Co-authored-by: Blaine Gunn Co-authored-by: Denys Fedotov Co-authored-by: Denys Fedotov Co-authored-by: Rares Munteanu Co-authored-by: Vivian A Goodrich <101133187+vgoodric@users.noreply.github.com> Co-authored-by: markpadbe Co-authored-by: Akansha Arora Co-authored-by: Santoshkumar Sharanappa Nateekar --- .gitignore | 1 + nala/utils/a11y-bot.js | 133 +++++ nala/utils/a11y-report.js | 249 +++++++++ nala/utils/nala.cli.js | 67 +++ package-lock.json | 1032 +++++++++---------------------------- package.json | 3 + 6 files changed, 700 insertions(+), 785 deletions(-) create mode 100644 nala/utils/a11y-bot.js create mode 100644 nala/utils/a11y-report.js create mode 100644 nala/utils/nala.cli.js diff --git a/.gitignore b/.gitignore index 5fba7ff881..168ba7ef67 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ logs/* **/mas/*/stats.json test-html-results/ test-results/ +test-a11y-results/ diff --git a/nala/utils/a11y-bot.js b/nala/utils/a11y-bot.js new file mode 100644 index 0000000000..db1ba8313f --- /dev/null +++ b/nala/utils/a11y-bot.js @@ -0,0 +1,133 @@ +const fs = require('fs'); +const { chromium } = require('playwright'); +const AxeBuilder = require('@axe-core/playwright'); +const chalk = require('chalk'); +const generateA11yReport = require('./a11y-report.js'); + +/** + * Run accessibility test for legal compliance (WCAG 2.0/2.1 A & AA) + * @param {Object} page - The page object. + * @param {string} [testScope='body'] - Optional scope for the accessibility test. Default is 'body'. + * @param {string[]} [includeTags=['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21aa']] - WCAG compliance tags. + * @param {number} [maxViolations=0] - Maximum violations before test fails. Default is 0. + * @returns {Object} - Results containing violations or success message. + */ +async function runAccessibilityTest(page, testScope = 'body', includeTags = [], maxViolations = 0) { + const result = { + url: page.url(), + testScope, + violations: [], + }; + + const wcagTags = includeTags.length > 0 ? includeTags : ['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21aa']; + + try { + const testElement = testScope === 'body' ? 'body' : testScope; + + console.log(chalk.blue('Accessibility Test Scope:'), testScope); + console.log(chalk.blue('WCAG Tags:'), wcagTags); + + const axe = new AxeBuilder({ page }) + .withTags(wcagTags) + .include(testElement) + .analyze(); + + result.violations = (await axe).violations; + const violationCount = result.violations.length; + + if (violationCount > maxViolations) { + let violationsDetails = `${violationCount} accessibility violations found:\n`; + result.violations.forEach((violation, index) => { + violationsDetails += ` + ${chalk.red(index + 1)}. Violation: ${chalk.yellow(violation.description)} + - Rule ID: ${chalk.cyan(violation.id)} + - Severity: ${chalk.magenta(violation.impact)} + - Fix: ${chalk.cyan(violation.helpUrl)} + `; + + violation.nodes.forEach((node, nodeIndex) => { + violationsDetails += ` Node ${nodeIndex + 1}: ${chalk.yellow(node.html)}\n`; + }); + }); + + throw new Error(violationsDetails); + } else { + console.info(chalk.green('No accessibility violations found.')); + } + } catch (err) { + console.error(chalk.red(`Accessibility test failed: ${err.message}`)); + } + + return result; +} + +/** + * Opens a browser, navigates to a page, runs accessibility test, and returns results. + * @param {string} url - The URL to test. + * @param {Object} options - Test options (scope, tags, maxViolations). + * @returns {Object} - Accessibility test results. + */ +async function runA11yTestOnPage(url, options = {}) { + const { scope = 'body', tags, maxViolations = 0 } = options; + const browser = await chromium.launch(); + const context = await browser.newContext({ + extraHTTPHeaders: { + 'sec-ch-ua': '"Chromium"', + 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36', + }, + }); + + const page = await context.newPage(); + let result; + + try { + console.log(chalk.blue(`Testing URL: ${url}`)); + await page.goto(url, { timeout: 60000, waitUntil: 'domcontentloaded' }); + result = await runAccessibilityTest(page, scope, tags, maxViolations); + } finally { + await browser.close(); + } + + return result; +} + +/** + * Processes URLs from a file and generates accessibility report. + * @param {string} filePath - Path to file with URLs. + * @param {Object} options - Test options. + */ +async function processUrlsFromFile(filePath, options = {}) { + const urls = fs.readFileSync(filePath, 'utf-8').split('\n').filter(Boolean); + console.log(chalk.blue('Processing URLs from file:'), urls); + const results = []; + + for (const url of urls) { + const result = await runA11yTestOnPage(url, options); + if (result && result.violations.length > 0) results.push(result); + } + + await generateA11yReport(results, options.outputDir || './test-a11y-results'); +} + +/** + * Processes URLs directly from command-line arguments and generates report. + * @param {string[]} urls - Array of URLs. + * @param {Object} options - Test options. + */ +async function processUrlsFromCommand(urls, options = {}) { + console.log(chalk.blue('Processing URLs from command-line input:'), urls); + const results = []; + + for (const url of urls) { + const result = await runA11yTestOnPage(url, options); + if (result && result.violations.length > 0) results.push(result); + } + + await generateA11yReport(results, options.outputDir || './reports'); +} + +module.exports = { + runA11yTestOnPage, + processUrlsFromFile, + processUrlsFromCommand, +}; diff --git a/nala/utils/a11y-report.js b/nala/utils/a11y-report.js new file mode 100644 index 0000000000..20b075afb1 --- /dev/null +++ b/nala/utils/a11y-report.js @@ -0,0 +1,249 @@ +const path = require('path'); +const fs = require('fs').promises; + +// Pretty print HTML with proper indentation +function prettyPrintHTML(html) { + const tab = ' '; // Define the indentation level + let result = ''; + let indentLevel = 0; + + html.split(/>\s* { + if (element.match(/^\/\w/)) { + // Closing tag + indentLevel -= 1; + } + result += `${tab.repeat(indentLevel)}<${element}>\n`; + if (element.match(/^]*[^/]$/)) { + // Opening tag + indentLevel += 1; + } + }); + return result.trim(); +} + +function escapeHTML(html) { + return html.replace(/[&<>'"]/g, (char) => { + switch (char) { + case '&': return '&'; + case '<': return '<'; + case '>': return '>'; + case "'": return '''; + case '"': return '"'; + default: return char; + } + }); +} + +async function generateA11yReport(report, outputDir) { + const time = new Date(); + const reportName = `nala-a11y-report-${time + .toISOString() + .replace(/[:.]/g, '-')}.html`; + + const reportPath = path.resolve(outputDir, reportName); + + // Ensure the output directory exists + try { + await fs.mkdir(outputDir, { recursive: true }); + } catch (err) { + console.error(`Failed to create directory ${outputDir}: ${err.message}`); + return; + } + + try { + const files = await fs.readdir(outputDir); + for (const file of files) { + if (file.startsWith('nala-a11y-report') && file.endsWith('.html')) { + await fs.unlink(path.resolve(outputDir, file)); + } + } + } catch (err) { + console.error(`Failed to delete the old report files in ${outputDir}: ${err.message}`); + } + + // Check if the report contains violations + if (!report || report.length === 0) { + console.error('No accessibility violations to report.'); + return; + } + + const totalViolations = report.reduce( + (sum, result) => sum + (result.violations ? result.violations.length : 0), + 0, + ); + + const severityCount = { + critical: 0, + serious: 0, + moderate: 0, + minor: 0, + }; + + report.forEach((result) => { + result.violations?.forEach((violation) => { + if (violation.impact) { + severityCount[violation.impact] += 1; + } + }); + }); + + // Inline CSS for the report with wrapping for pre blocks + const inlineCSS = ` + `; + + // Inline JavaScript for collapsible functionality and filtering + const inlineJS = ` + `; + + let htmlContent = ` + + + Nala Accessibility Test Report + ${inlineCSS} + + + + +
+ + + + + +
`; + + // Test details section + report.forEach((result, resultIndex) => { + htmlContent += ` +
+

#${resultIndex + 1} Test URL: ${result.url}

+ + + + + + + + + + + + + `; + + result.violations.forEach((violation, index) => { + const severityClass = `severity-${violation.impact.toLowerCase()}`; + const wcagTags = Array.isArray(violation.tags) ? violation.tags.join(', ') : 'N/A'; + const nodesAffected = violation.nodes + .map((node) => `

${prettyPrintHTML(escapeHTML(node.html))}

`) + .join('\n'); + const possibleFix = violation.helpUrl ? `Fix` : 'N/A'; + + htmlContent += ` + + + + + + + + + `; + }); + + htmlContent += ` + +
#ViolationAxe Rule IDSeverityWCAG TagsNodes AffectedFix
${index + 1}${violation.description}${violation.id}${violation.impact}${wcagTags} + + +
${nodesAffected} +
+
${possibleFix}
+
`; + }); + + htmlContent += ` + ${inlineJS} + + `; + + // Write the HTML report to file + try { + await fs.writeFile(reportPath, htmlContent); + console.info(`Accessibility report saved at: ${reportPath}`); + // eslint-disable-next-line consistent-return + return reportPath; + } catch (err) { + console.error(`Failed to save accessibility report: ${err.message}`); + } +} + +module.exports = generateA11yReport; diff --git a/nala/utils/nala.cli.js b/nala/utils/nala.cli.js new file mode 100644 index 0000000000..d6194107fd --- /dev/null +++ b/nala/utils/nala.cli.js @@ -0,0 +1,67 @@ +#!/usr/bin/env node +/* eslint-disable default-param-last */ +const { Command } = require('commander'); +const chalk = require('chalk'); +const fs = require('fs'); +const { processUrlsFromCommand, processUrlsFromFile } = require('./a11y-bot.js'); + +const BASE_URLS = { + local: 'http://localhost:3000', + stage: 'http://stage--milo--adobecom.hlx.live', + main: 'https://main--milo--adobecom.hlx.live', +}; + +const program = new Command(); + +program + .name('nala-a11y-bot') + .description('Nala Accessibility Testing Bot') + .version('1.0.0'); + +program + .command('a11y [env] [path]') + .description('Run an accessibility test on an environment with optional path or a file with URLs') + .option('-f, --file ', 'Specify a file with multiple URLs') + .option('-s, --scope ', 'Specify the test scope (default: body)', 'body') + .option('-t, --tags ', 'Specify the tags to include', (val) => val.split(',')) + .option('-m, --max-violations ', 'Set the maximum number of allowed violations before the test fails (default: 0)', (val) => parseInt(val, 10), 0) + .option('-o, --output-dir ', 'Specify the directory to save the HTML report (default: ./test-a11y-results)', './test-a11y-results') + .action(async (env, path = '', options) => { + const urls = []; + + try { + if (options.file) { + if (!fs.existsSync(options.file)) { + console.error(chalk.red(`Error: The file path "${options.file}" does not exist.`)); + process.exit(1); + } + await processUrlsFromFile(options.file, options); + return; + } + + // Validate environment or URL input + if (env && BASE_URLS[env]) { + const fullUrl = `${BASE_URLS[env]}${path.startsWith('/') ? '' : '/'}${path}`; + urls.push(fullUrl); + } else if (env && (env.startsWith('http://') || env.startsWith('https://'))) { + urls.push(env); + } else if (env) { + const branchUrl = `https://${env}--milo--adobecom.hlx.live${path.startsWith('/') ? '' : '/'}${path}`; + urls.push(branchUrl); + } else if (!options.file) { + console.error(chalk.red('Error: Invalid environment, URL, or file provided.')); + process.exit(1); + } + + const validUrls = urls.filter((url) => url.startsWith('http://') || url.startsWith('https://')); + + if (validUrls.length > 0) { + await processUrlsFromCommand(validUrls, options); + } + } catch (error) { + console.error(chalk.red(`An error occurred during processing: ${error.message}`)); + process.exit(1); + } + }); + +program.parse(process.argv); diff --git a/package-lock.json b/package-lock.json index 8d4d621fc7..d91dce0b3f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,6 +27,8 @@ "axe-html-reporter": "^2.2.11", "axios": "^1.7.5", "chai": "^5.1.1", + "chalk": "^4.1.2", + "commander": "^12.1.0", "eslint": "8.11.0", "eslint-config-airbnb-base": "15.0.0", "eslint-nibble": "^8.1.0", @@ -517,6 +519,68 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/parser": { "version": "7.24.8", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", @@ -2049,6 +2113,68 @@ "node": ">=8.0.0" } }, + "node_modules/@ianvs/eslint-stats/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@ianvs/eslint-stats/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@ianvs/eslint-stats/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@ianvs/eslint-stats/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@ianvs/eslint-stats/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@ianvs/eslint-stats/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@import-maps/resolve": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@import-maps/resolve/-/resolve-1.0.1.tgz", @@ -3368,15 +3494,18 @@ } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { @@ -4102,50 +4231,6 @@ } }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk-template": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", - "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/chalk-template?sponsor=1" - } - }, - "node_modules/chalk-template/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/chalk-template/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -4161,43 +4246,19 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/chalk-template/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "chalk": "^4.1.2" }, "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/chalk-template/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/chalk-template/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/chalk-template/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "node": ">=12" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" } }, "node_modules/chardet": { @@ -4330,39 +4391,6 @@ "node": ">=12" } }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -4428,18 +4456,21 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/colord": { @@ -4509,12 +4540,12 @@ } }, "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">= 10" + "node": ">=18" } }, "node_modules/commondir": { @@ -5591,7 +5622,57 @@ "node": ">=6" } }, - "node_modules/eslint-formatter-friendly/node_modules/strip-ansi": { + "node_modules/eslint-formatter-friendly/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-formatter-friendly/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-formatter-friendly/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/eslint-formatter-friendly/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/eslint-formatter-friendly/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-formatter-friendly/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", @@ -5603,6 +5684,18 @@ "node": ">=6" } }, + "node_modules/eslint-formatter-friendly/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", @@ -5673,76 +5766,6 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-nibble/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint-nibble/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint-nibble/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint-nibble/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint-nibble/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint-nibble/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint-plugin-chai-friendly": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/eslint-plugin-chai-friendly/-/eslint-plugin-chai-friendly-0.7.4.tgz", @@ -6005,55 +6028,6 @@ "node": ">=10" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -6130,27 +6104,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -7081,12 +7034,12 @@ } }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-property-descriptors": { @@ -7471,76 +7424,6 @@ "node": ">=12.0.0" } }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/internal-ip": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-6.2.0.tgz", @@ -8068,27 +7951,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-reports": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", @@ -8120,76 +7982,6 @@ "node": ">=10" } }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jake/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jake/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", @@ -8204,27 +7996,6 @@ "node": ">= 10.13.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -8589,90 +8360,20 @@ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update": { @@ -9669,76 +9370,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/ora/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -11522,76 +11153,6 @@ "postcss": "8.x" } }, - "node_modules/rollup-plugin-postcss/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/rollup-plugin-postcss/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/rollup-plugin-postcss/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/rollup-plugin-postcss/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/rollup-plugin-postcss/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/rollup-plugin-postcss/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/rollup-plugin-typescript2": { "version": "0.32.1", "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.32.1.tgz", @@ -11917,27 +11478,6 @@ "url": "https://opencollective.com/sinon" } }, - "node_modules/sinon/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/sinon/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -11964,39 +11504,6 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -12463,15 +11970,15 @@ } }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/supports-hyperlinks": { @@ -12487,27 +11994,6 @@ "node": ">=8" } }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -12547,6 +12033,15 @@ "node": ">=10.13.0" } }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/table": { "version": "6.8.2", "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", @@ -13251,39 +12746,6 @@ "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 31e1d4995e..593ba24853 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "test:file": "npx playwright install && wtr --config ./web-test-runner.config.mjs --node-resolve --port=2000 --coverage", "test:file:watch": "npx playwright install && wtr --config ./web-test-runner.config.mjs --node-resolve --port=2000 --coverage --watch", "nala": "node nala/utils/nala.run.js", + "a11y": "node nala/utils/nala.cli.js a11y", "libs": "aem up --port=6456", "lint": "npm run lint:js && npm run lint:css", "lint:js": "eslint .", @@ -47,6 +48,8 @@ "axe-html-reporter": "^2.2.11", "axios": "^1.7.5", "chai": "^5.1.1", + "chalk": "^4.1.2", + "commander": "^12.1.0", "eslint": "8.11.0", "eslint-config-airbnb-base": "15.0.0", "eslint-nibble": "^8.1.0", From edff299756d54822029f41b2f483aaed4b38ab7e Mon Sep 17 00:00:00 2001 From: Sean Choi Date: Wed, 30 Oct 2024 11:35:36 -0600 Subject: [PATCH 3/9] [MWPW-156187][Milo Catalog Accessibility] "more actions" on catalog cards not accessible (#3082) * Fixing issue: "more actions" on catalog cards not accessible * added test * Test updates. * Remove the focus event effect on card mouseleave event. * Removed aria-label for "Violation: Ensure ARIA attributes are not prohibited for an element's role" * Added text and role for the action menu --- libs/blocks/merch-card/merch-card.js | 2 +- libs/deps/mas/merch-card.js | 82 ++++++++++--------- .../mas/web-components/src/merch-card.css.js | 6 +- .../web-components/src/variants/catalog.js | 80 ++++++++++++++---- .../test/merch-card.catalog.test.html.js | 37 +++++++++ 5 files changed, 150 insertions(+), 57 deletions(-) diff --git a/libs/blocks/merch-card/merch-card.js b/libs/blocks/merch-card/merch-card.js index 0a02669dd3..4f5c67aaaf 100644 --- a/libs/blocks/merch-card/merch-card.js +++ b/libs/blocks/merch-card/merch-card.js @@ -542,7 +542,7 @@ export default async function init(el) { merchCard.append( createTag( 'div', - { slot: 'action-menu-content' }, + { slot: 'action-menu-content', tabindex: '0' }, actionMenuContent.innerHTML, ), ); diff --git a/libs/deps/mas/merch-card.js b/libs/deps/mas/merch-card.js index 2a3b9f79fc..b41c204c73 100644 --- a/libs/deps/mas/merch-card.js +++ b/libs/deps/mas/merch-card.js @@ -28,7 +28,7 @@ import{LitElement as Yt}from"../lit-all.min.js";import{LitElement as zt,html as width: var(--img-width); height: var(--img-height); } - `};customElements.define("merch-icon",n);import{css as tt,unsafeCSS as X}from"../lit-all.min.js";var y="(max-width: 767px)",R="(max-width: 1199px)",m="(min-width: 768px)",h="(min-width: 1200px)",g="(min-width: 1600px)";var et=tt` + `};customElements.define("merch-icon",n);import{css as tt,unsafeCSS as X}from"../lit-all.min.js";var y="(max-width: 767px)",R="(max-width: 1199px)",l="(min-width: 768px)",h="(min-width: 1200px)",g="(min-width: 1600px)";var et=tt` :host { position: relative; display: flex; @@ -57,7 +57,9 @@ import{LitElement as Yt}from"../lit-all.min.js";import{LitElement as zt,html as visibility: hidden; } - :host(:hover) .invisible { + :host(:hover) .invisible, + :host(:active) .invisible, + :host(:focus) .invisible { visibility: visible; background-image: var(--ellipsis-icon); cursor: pointer; @@ -66,6 +68,7 @@ import{LitElement as Yt}from"../lit-all.min.js";import{LitElement as zt,html as .action-menu.always-visible { visibility: visible; background-image: var(--ellipsis-icon); + cursor: pointer; } .top-section { @@ -151,6 +154,7 @@ import{LitElement as Yt}from"../lit-all.min.js";import{LitElement as zt,html as background-repeat: no-repeat; background-position: center; background-size: 16px 16px; + font-size: 0; } .hidden { visibility: hidden; @@ -242,7 +246,7 @@ import{LitElement as Yt}from"../lit-all.min.js";import{LitElement as zt,html as } `,rt=()=>[tt` /* Tablet */ - @media screen and ${X(m)} { + @media screen and ${X(l)} { :host([size='wide']), :host([size='super-wide']) { width: 100%; @@ -255,7 +259,7 @@ import{LitElement as Yt}from"../lit-all.min.js";import{LitElement as zt,html as :host([size='wide']) { grid-column: span 2; } - `];import{html as $}from"../lit-all.min.js";var d=class r{static styleMap={};card;#t;getContainer(){return this.#t=this.#t??this.card.closest('[class*="-merch-cards"]')??this.card.parentElement,this.#t}insertVariantStyle(){if(!r.styleMap[this.card.variant]){r.styleMap[this.card.variant]=!0;let t=document.createElement("style");t.innerHTML=this.getGlobalCSS(),document.head.appendChild(t)}}updateCardElementMinHeight(t,e){if(!t)return;let a=`--consonant-merch-card-${this.card.variant}-${e}-height`,o=Math.max(0,parseInt(window.getComputedStyle(t).height)||0),p=parseInt(this.getContainer().style.getPropertyValue(a))||0;o>p&&this.getContainer().style.setProperty(a,`${o}px`)}constructor(t){this.card=t,this.insertVariantStyle()}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;`),$` + `];import{html as $}from"../lit-all.min.js";var d=class r{static styleMap={};card;#t;getContainer(){return this.#t=this.#t??this.card.closest('[class*="-merch-cards"]')??this.card.parentElement,this.#t}insertVariantStyle(){if(!r.styleMap[this.card.variant]){r.styleMap[this.card.variant]=!0;let t=document.createElement("style");t.innerHTML=this.getGlobalCSS(),document.head.appendChild(t)}}updateCardElementMinHeight(t,e){if(!t)return;let a=`--consonant-merch-card-${this.card.variant}-${e}-height`,o=Math.max(0,parseInt(window.getComputedStyle(t).height)||0),m=parseInt(this.getContainer().style.getPropertyValue(a))||0;o>m&&this.getContainer().style.setProperty(a,`${o}px`)}constructor(t){this.card=t,this.insertVariantStyle()}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;`),$`
${this.card.secureLabel}`:"";return $`
${t}
`}async adjustTitleWidth(){let t=this.card.getBoundingClientRect().width,e=this.card.badgeElement?.getBoundingClientRect().width||0;t===0||e===0||this.card.style.setProperty("--consonant-merch-card-heading-xs-max-width",`${Math.round(t-e-16)}px`)}postCardUpdateHook(){}connectedCallbackHook(){}disconnectedCallbackHook(){}renderLayout(){}get aemFragmentMapping(){}};import{html as q,css as Lt}from"../lit-all.min.js";function v(r,t={},e){let a=document.createElement(r);e instanceof HTMLElement?a.appendChild(e):a.innerHTML=e;for(let[o,p]of Object.entries(t))a.setAttribute(o,p);return a}function O(){return window.matchMedia("(max-width: 767px)").matches}function ot(){return window.matchMedia("(max-width: 1024px)").matches}var at="merch-offer-select:ready",nt="merch-card:ready",ct="merch-card:action-menu-toggle";var U="merch-storage:change",I="merch-quantity-selector:change";var P="aem:load",N="aem:error",it="mas:ready",st="mas:error";var dt=` + >`:"";return $`
${t}
`}async adjustTitleWidth(){let t=this.card.getBoundingClientRect().width,e=this.card.badgeElement?.getBoundingClientRect().width||0;t===0||e===0||this.card.style.setProperty("--consonant-merch-card-heading-xs-max-width",`${Math.round(t-e-16)}px`)}postCardUpdateHook(){}connectedCallbackHook(){}disconnectedCallbackHook(){}renderLayout(){}get aemFragmentMapping(){}};import{html as q,css as Lt}from"../lit-all.min.js";function v(r,t={},e){let a=document.createElement(r);e instanceof HTMLElement?a.appendChild(e):a.innerHTML=e;for(let[o,m]of Object.entries(t))a.setAttribute(o,m);return a}function O(){return window.matchMedia("(max-width: 767px)").matches}function ot(){return window.matchMedia("(max-width: 1024px)").matches}var at="merch-offer-select:ready",nt="merch-card:ready",ct="merch-card:action-menu-toggle";var I="merch-storage:change",U="merch-quantity-selector:change";var P="aem:load",N="aem:error",it="mas:ready",st="mas:error";var dt=` :root { --consonant-merch-card-catalog-width: 276px; --consonant-merch-card-catalog-icon-size: 40px; @@ -287,7 +291,7 @@ import{LitElement as Yt}from"../lit-all.min.js";import{LitElement as zt,html as grid-template-columns: var(--consonant-merch-card-catalog-width); } -@media screen and ${m} { +@media screen and ${l} { :root { --consonant-merch-card-catalog-width: 302px; } @@ -361,7 +365,7 @@ merch-card[variant="catalog"] .payment-details { font-style: italic; font-weight: 400; line-height: var(--consonant-merch-card-body-line-height); -}`;var _t={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"]},E=class extends d{constructor(t){super(t)}get aemFragmentMapping(){return _t}renderLayout(){return q`
+}`;var Tt={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"]},E=class extends d{constructor(t){super(t)}get aemFragmentMapping(){return Tt}renderLayout(){return q`
${this.badge}
+ @keypress="${this.toggleActionMenu}" + tabindex="0" + role="button" + >Action Menu
${this.card.actionMenuContent} + @focusout="${this.hideActionMenu}" + >${this.card.actionMenuContent} + @@ -387,7 +395,7 @@ merch-card[variant="catalog"] .payment-details { >`:""}
${this.secureLabelFooter} - `}getGlobalCSS(){return dt}toggleActionMenu=t=>{let e=t?.type==="mouseleave"?!0:void 0,a=this.card.shadowRoot.querySelector('slot[name="action-menu-content"]');a&&(e||this.card.dispatchEvent(new CustomEvent(ct,{bubbles:!0,composed:!0,detail:{card:this.card.name,type:"action-menu"}})),a.classList.toggle("hidden",e))};connectedCallbackHook(){this.card.addEventListener("mouseleave",this.toggleActionMenu)}disconnectedCallbackHook(){this.card.removeEventListener("mouseleave",this.toggleActionMenu)}static variantStyle=Lt` + `}getGlobalCSS(){return dt}dispatchActionMenuToggle=()=>{this.card.dispatchEvent(new CustomEvent(ct,{bubbles:!0,composed:!0,detail:{card:this.card.name,type:"action-menu"}}))};toggleActionMenu=t=>{let e=this.card.shadowRoot.querySelector('slot[name="action-menu-content"]');!e||!t||t.type!=="click"&&t.code!=="Space"&&t.code!=="Enter"||(t.preventDefault(),e.classList.toggle("hidden"),e.classList.contains("hidden")||this.dispatchActionMenuToggle())};toggleActionMenuFromCard=t=>{let e=t?.type==="mouseleave"?!0:void 0,a=this.card.shadowRoot,o=a.querySelector(".action-menu");this.card.blur(),o?.classList.remove("always-visible");let m=a.querySelector('slot[name="action-menu-content"]');m&&(e||this.dispatchActionMenuToggle(),m.classList.toggle("hidden",e))};hideActionMenu=t=>{this.card.shadowRoot.querySelector('slot[name="action-menu-content"]')?.classList.add("hidden")};focusEventHandler=t=>{let e=this.card.shadowRoot.querySelector(".action-menu");e&&(e.classList.add("always-visible"),(t.relatedTarget?.nodeName==="MERCH-CARD-COLLECTION"||t.relatedTarget?.nodeName==="MERCH-CARD"&&t.target.nodeName!=="MERCH-ICON")&&e.classList.remove("always-visible"))};connectedCallbackHook(){this.card.addEventListener("mouseleave",this.toggleActionMenuFromCard),this.card.addEventListener("focusout",this.focusEventHandler)}disconnectedCallbackHook(){this.card.removeEventListener("mouseleave",this.toggleActionMenuFromCard),this.card.removeEventListener("focusout",this.focusEventHandler)}static variantStyle=Lt` :host([variant='catalog']) { min-height: 330px; width: var(--consonant-merch-card-catalog-width); @@ -405,7 +413,7 @@ merch-card[variant="catalog"] .payment-details { margin-left: var(--consonant-merch-spacing-xxs); box-sizing: border-box; } - `};import{html as j,css as Tt}from"../lit-all.min.js";var ht=` + `};import{html as j,css as _t}from"../lit-all.min.js";var ht=` :root { --consonant-merch-card-ccd-action-width: 276px; --consonant-merch-card-ccd-action-min-height: 320px; @@ -422,7 +430,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { font-size: 18px; } -@media screen and ${m} { +@media screen and ${l} { .two-merch-cards.ccd-action, .three-merch-cards.ccd-action, .four-merch-cards.ccd-action { @@ -451,11 +459,11 @@ merch-card[variant="ccd-action"] .price-strikethrough { >`}
-
`}static variantStyle=Tt` + `}static variantStyle=_t` :host([variant='ccd-action']:not([size])) { width: var(--consonant-merch-card-ccd-action-width); } - `};import{html as k}from"../lit-all.min.js";var mt=` + `};import{html as C}from"../lit-all.min.js";var lt=` :root { --consonant-merch-card-image-width: 300px; } @@ -467,7 +475,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { grid-template-columns: var(--consonant-merch-card-image-width); } -@media screen and ${m} { +@media screen and ${l} { .two-merch-cards.image, .three-merch-cards.image, .four-merch-cards.image { @@ -491,24 +499,24 @@ merch-card[variant="ccd-action"] .price-strikethrough { grid-template-columns: repeat(4, var(--consonant-merch-card-image-width)); } } -`;var H=class extends d{constructor(t){super(t)}getGlobalCSS(){return mt}renderLayout(){return k`${this.cardImage} +`;var H=class extends d{constructor(t){super(t)}getGlobalCSS(){return lt}renderLayout(){return C`${this.cardImage}
- ${this.promoBottom?k``:k``} + ${this.promoBottom?C``:C``}
- ${this.evergreen?k` + ${this.evergreen?C`
- `:k` + `:C`
${this.secureLabelFooter} - `}`}};import{html as pt}from"../lit-all.min.js";var lt=` + `}`}};import{html as pt}from"../lit-all.min.js";var mt=` :root { --consonant-merch-card-inline-heading-width: 300px; } @@ -520,7 +528,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { grid-template-columns: var(--consonant-merch-card-inline-heading-width); } -@media screen and ${m} { +@media screen and ${l} { .two-merch-cards.inline-heading, .three-merch-cards.inline-heading, .four-merch-cards.inline-heading { @@ -544,7 +552,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { grid-template-columns: repeat(4, var(--consonant-merch-card-inline-heading-width)); } } -`;var D=class extends d{constructor(t){super(t)}getGlobalCSS(){return lt}renderLayout(){return pt` ${this.badge} +`;var D=class extends d{constructor(t){super(t)}getGlobalCSS(){return mt}renderLayout(){return pt` ${this.badge}
@@ -727,7 +735,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { line-height: var(--consonant-merch-card-body-xs-line-height); } } -@media screen and ${m} { +@media screen and ${l} { :root { --consonant-merch-card-mini-compare-chart-width: 302px; --consonant-merch-card-mini-compare-chart-wide-width: 302px; @@ -803,11 +811,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 $t=32,C=class extends d{constructor(t){super(t)}getRowMinHeightPropertyName=t=>`--consonant-merch-card-footer-row-${t}-min-height`;getGlobalCSS(){return gt}getMiniCompareFooter=()=>{let t=this.card.secureLabel?B` +`;var $t=32,k=class extends d{constructor(t){super(t)}getRowMinHeightPropertyName=t=>`--consonant-merch-card-footer-row-${t}-min-height`;getGlobalCSS(){return gt}getMiniCompareFooter=()=>{let t=this.card.secureLabel?B` ${this.card.secureLabel}`:B``;return B`
${t}
`};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(a=>this.updateCardElementMinHeight(this.card.shadowRoot.querySelector(`slot[name="${a}"]`),a)),this.updateCardElementMinHeight(this.card.shadowRoot.querySelector("footer"),"footer");let e=this.card.shadowRoot.querySelector(".mini-compare-chart-badge");e&&e.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((e,a)=>{let o=Math.max($t,parseFloat(window.getComputedStyle(e).height)||0),p=parseFloat(this.getContainer().style.getPropertyValue(this.getRowMinHeightPropertyName(a+1)))||0;o>p&&this.getContainer().style.setProperty(this.getRowMinHeightPropertyName(a+1),`${o}px`)})}removeEmptyRows(){this.card.querySelectorAll(".footer-row-cell").forEach(e=>{let a=e.querySelector(".footer-row-cell-description");a&&!a.textContent.trim()&&e.remove()})}renderLayout(){return B`
+ >`:B``;return B`
${t}
`};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(a=>this.updateCardElementMinHeight(this.card.shadowRoot.querySelector(`slot[name="${a}"]`),a)),this.updateCardElementMinHeight(this.card.shadowRoot.querySelector("footer"),"footer");let e=this.card.shadowRoot.querySelector(".mini-compare-chart-badge");e&&e.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((e,a)=>{let o=Math.max($t,parseFloat(window.getComputedStyle(e).height)||0),m=parseFloat(this.getContainer().style.getPropertyValue(this.getRowMinHeightPropertyName(a+1)))||0;o>m&&this.getContainer().style.setProperty(this.getRowMinHeightPropertyName(a+1),`${o}px`)})}removeEmptyRows(){this.card.querySelectorAll(".footer-row-cell").forEach(e=>{let a=e.querySelector(".footer-row-cell-description");a&&!a.textContent.trim()&&e.remove()})}renderLayout(){return B`
${this.badge}
@@ -917,7 +925,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* Tablet */ -@media screen and ${m} { +@media screen and ${l} { :root { --consonant-merch-card-plans-width: 302px; } @@ -983,7 +991,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* Tablet */ -@media screen and ${m} { +@media screen and ${l} { .two-merch-cards.product, .three-merch-cards.product, .four-merch-cards.product { @@ -1068,7 +1076,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { } } -@media screen and ${m} { +@media screen and ${l} { :root { --consonant-merch-card-segment-width: 276px; } @@ -1133,7 +1141,7 @@ merch-card[variant="special-offers"] span[is="inline-price"][data-template="stri } } -@media screen and ${m} { +@media screen and ${l} { :root { --consonant-merch-card-special-offers-width: 302px; } @@ -1253,7 +1261,7 @@ merch-card[variant='twp'] merch-offer-select { } } -@media screen and ${m} { +@media screen and ${l} { :root { --consonant-merch-card-twp-width: 268px; } @@ -1288,7 +1296,7 @@ merch-card[variant='twp'] merch-offer-select { grid-template-columns: repeat(3, var(--consonant-merch-card-twp-width)); } } -`;var _=class extends d{constructor(t){super(t)}getGlobalCSS(){return yt}renderLayout(){return Bt`${this.badge} +`;var T=class extends d{constructor(t){super(t)}getGlobalCSS(){return yt}renderLayout(){return Bt`${this.badge}
@@ -1372,7 +1380,7 @@ merch-card[variant="ccd-suggested"] [slot="cta"] a { color: var(--spectrum-gray-800, var(--merch-color-grey-80)); font-weight: 700; } -`;var Ut={subtitle:{tag:"h4",slot:"detail-s"},title:{tag:"h3",slot:"heading-xs"},prices:{tag:"p",slot:"price"},description:{tag:"div",slot:"body-xs"},ctas:{slot:"cta",size:"s",button:!1}},T=class extends d{getGlobalCSS(){return wt}get aemFragmentMapping(){return Ut}renderLayout(){return Gt` +`;var It={subtitle:{tag:"h4",slot:"detail-s"},title:{tag:"h3",slot:"heading-xs"},prices:{tag:"p",slot:"price"},description:{tag:"div",slot:"body-xs"},ctas:{slot:"cta",size:"s",button:!1}},_=class extends d{getGlobalCSS(){return wt}get aemFragmentMapping(){return It}renderLayout(){return Gt`
@@ -1460,7 +1468,7 @@ merch-card[variant="ccd-suggested"] [slot="cta"] a { margin-top: auto; align-items: center; } - `};import{html as It,css as qt}from"../lit-all.min.js";var Et=` + `};import{html as Ut,css as qt}from"../lit-all.min.js";var Et=` :root { --consonant-merch-card-ccd-slice-single-width: 322px; --consonant-merch-card-ccd-slice-icon-size: 30px; @@ -1482,7 +1490,7 @@ merch-card[variant="ccd-slice"] [slot='body-s'] a:not(.con-button) { overflow: hidden; border-radius: 50%; } -`;var jt={backgroundImage:{tag:"div",slot:"image"},description:{tag:"div",slot:"body-s"},ctas:{size:"s"},allowedSizes:["wide"]},M=class extends d{getGlobalCSS(){return Et}get aemFragmentMapping(){return jt}renderLayout(){return It`
+`;var jt={backgroundImage:{tag:"div",slot:"image"},description:{tag:"div",slot:"body-s"},ctas:{size:"s"},allowedSizes:["wide"]},M=class extends d{getGlobalCSS(){return Et}get aemFragmentMapping(){return jt}renderLayout(){return Ut`
${this.badge} @@ -1560,7 +1568,7 @@ merch-card[variant="ccd-slice"] [slot='body-s'] a:not(.con-button) { :host([variant='ccd-slice']) .top-section { align-items: center; } - `};var Q=(r,t=!1)=>{switch(r.variant){case"catalog":return new E(r);case"ccd-action":return new S(r);case"image":return new H(r);case"inline-heading":return new D(r);case"mini-compare-chart":return new C(r);case"plans":return new z(r);case"product":return new w(r);case"segment":return new A(r);case"special-offers":return new L(r);case"twp":return new _(r);case"ccd-suggested":return new T(r);case"ccd-slice":return new M(r);default:return t?void 0:new w(r)}},St=()=>{let r=[];return r.push(E.variantStyle),r.push(S.variantStyle),r.push(C.variantStyle),r.push(w.variantStyle),r.push(z.variantStyle),r.push(A.variantStyle),r.push(L.variantStyle),r.push(_.variantStyle),r.push(T.variantStyle),r.push(M.variantStyle),r};var kt=document.createElement("style");kt.innerHTML=` + `};var Q=(r,t=!1)=>{switch(r.variant){case"catalog":return new E(r);case"ccd-action":return new S(r);case"image":return new H(r);case"inline-heading":return new D(r);case"mini-compare-chart":return new k(r);case"plans":return new z(r);case"product":return new w(r);case"segment":return new A(r);case"special-offers":return new L(r);case"twp":return new T(r);case"ccd-suggested":return new _(r);case"ccd-slice":return new M(r);default:return t?void 0:new w(r)}},St=()=>{let r=[];return r.push(E.variantStyle),r.push(S.variantStyle),r.push(k.variantStyle),r.push(w.variantStyle),r.push(z.variantStyle),r.push(A.variantStyle),r.push(L.variantStyle),r.push(T.variantStyle),r.push(_.variantStyle),r.push(M.variantStyle),r};var Ct=document.createElement("style");Ct.innerHTML=` :root { --consonant-merch-card-detail-font-size: 12px; --consonant-merch-card-detail-font-weight: 500; @@ -1942,4 +1950,4 @@ body.merch-modal { scrollbar-gutter: stable; height: 100vh; } -`;document.head.appendChild(kt);var Kt="#000000",Wt="#F8D904";async function Ct(r,t){let e=r.fields.reduce((l,{name:u,multiple:x,values:f})=>(l[u]=x?f:f[0],l),{id:r.id}),{variant:a}=e;if(!a)return;t.querySelectorAll("[slot]").forEach(l=>{l.remove()}),t.variant=a,await t.updateComplete;let{aemFragmentMapping:o}=t.variantLayout;if(!o)return;let p=e.mnemonicIcon?.map((l,u)=>({icon:l,alt:e.mnemonicAlt[u]??"",link:e.mnemonicLink[u]??""}));if(r.computed={mnemonics:p},p.forEach(({icon:l,alt:u,link:x})=>{if(!/^https?:/.test(x))try{x=new URL(`https://${x}`).href.toString()}catch{x="#"}let f=v("merch-icon",{slot:"icons",src:l,alt:u,href:x,size:"l"});t.append(f)}),e.badge&&(t.setAttribute("badge-text",e.badge),t.setAttribute("badge-color",e.badgeColor||Kt),t.setAttribute("badge-background-color",e.badgeBackgroundColor||Wt)),e.size?o.allowedSizes?.includes(e.size)&&t.setAttribute("size",e.size):t.removeAttribute("size"),e.cardTitle&&o.title&&t.append(v(o.title.tag,{slot:o.title.slot},e.cardTitle)),e.subtitle&&o.subtitle&&t.append(v(o.subtitle.tag,{slot:o.subtitle.slot},e.subtitle)),e.backgroundImage)switch(a){case"ccd-slice":o.backgroundImage&&t.append(v(o.backgroundImage.tag,{slot:o.backgroundImage.slot},``));break;case"ccd-suggested":t.setAttribute("background-image",e.backgroundImage);break}if(e.prices&&o.prices){let l=e.prices,u=v(o.prices.tag,{slot:o.prices.slot},l);t.append(u)}if(e.description&&o.description){let l=v(o.description.tag,{slot:o.description.slot},e.description);t.append(l)}if(e.ctas){let{slot:l,button:u=!0}=o.ctas,x=v("div",{slot:l??"footer"},e.ctas),f=[];[...x.querySelectorAll("a")].forEach(b=>{let G=b.parentElement.tagName==="STRONG";if(t.consonant)b.classList.add("con-button"),G&&b.classList.add("blue"),f.push(b);else{if(!u){f.push(b);return}let V=v("sp-button",{treatment:G?"fill":"outline",variant:G?"accent":"primary"},b);V.addEventListener("click",Z=>{Z.target===V&&(Z.stopPropagation(),b.click())}),f.push(V)}}),x.innerHTML="",x.append(...f),t.append(x)}}var i="merch-card",Qt=2e3,c=class extends Yt{static 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",reflect:!0},borderColor:{type:String,attribute:"border-color",reflect:!0},badgeBackgroundColor:{type:String,attribute:"badge-background-color",reflect:!0},backgroundImage:{type:String,attribute:"background-image",reflect:!0},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:t=>{let[e,a,o]=t.split(",");return{PUF:e,ABM:a,M2M:o}}}},filters:{type:String,reflect:!0,converter:{fromAttribute:t=>Object.fromEntries(t.split(",").map(e=>{let[a,o,p]=e.split(":"),l=Number(o);return[a,{order:isNaN(l)?void 0:l,size:p}]})),toAttribute:t=>Object.entries(t).map(([e,{order:a,size:o}])=>[e,a,o].filter(p=>p!=null).join(":")).join(",")}},types:{type:String,attribute:"types",reflect:!0},merchOffer:{type:Object}};static styles=[et,St(),...rt()];customerSegment;marketSegment;variantLayout;#t=!1;constructor(){super(),this.filters={},this.types="",this.selected=!1,this.handleAemFragmentEvents=this.handleAemFragmentEvents.bind(this)}firstUpdated(){this.variantLayout=Q(this,!1),this.variantLayout?.connectedCallbackHook(),this.aemFragment?.updateComplete.catch(()=>{this.style.display="none"})}willUpdate(t){(t.has("variant")||!this.variantLayout)&&(this.variantLayout=Q(this),this.variantLayout.connectedCallbackHook())}updated(t){(t.has("badgeBackgroundColor")||t.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["twp","ccd-slice"].includes(this.variant)?"":`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:t}){if(!this.stockOfferOsis)return;let e=this.checkoutLinks;if(e.length!==0)for(let a of e){await a.onceSettled();let o=a.value?.[0]?.planType;if(!o)return;let p=this.stockOfferOsis[o];if(!p)return;let l=a.dataset.wcsOsi.split(",").filter(u=>u!==p);t.checked&&l.push(p),a.dataset.wcsOsi=l.join(",")}}handleQuantitySelection(t){let e=this.checkoutLinks;for(let a of e)a.dataset.quantity=t.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(t){let e={...this.filters};Object.keys(e).forEach(a=>{if(t){e[a].order=Math.min(e[a].order||2,2);return}let o=e[a].order;o===1||isNaN(o)||(e[a].order=Number(o)+1)}),this.filters=e}includes(t){return this.textContent.match(new RegExp(t,"i"))!==null}connectedCallback(){super.connectedCallback(),this.setAttribute("tabindex",this.getAttribute("tabindex")??"0"),this.addEventListener(I,this.handleQuantitySelection),this.addEventListener(at,this.merchCardReady,{once:!0}),this.updateComplete.then(()=>{this.merchCardReady()}),this.storageOptions?.addEventListener("change",this.handleStorageChange),this.addEventListener(N,this.handleAemFragmentEvents),this.addEventListener(P,this.handleAemFragmentEvents),this.aemFragment||setTimeout(()=>this.checkReady(),0)}disconnectedCallback(){super.disconnectedCallback(),this.variantLayout.disconnectedCallbackHook(),this.removeEventListener(I,this.handleQuantitySelection),this.storageOptions?.removeEventListener(U,this.handleStorageChange),this.removeEventListener(N,this.handleAemFragmentEvents),this.removeEventListener(P,this.handleAemFragmentEvents)}async handleAemFragmentEvents(t){if(t.type===N&&this.#e("AEM fragment cannot be loaded"),t.type===P&&t.target.nodeName==="AEM-FRAGMENT"){let e=t.detail;await Ct(e,this),this.checkReady()}}#e(t){this.dispatchEvent(new CustomEvent(st,{detail:t,bubbles:!0,composed:!0}))}async checkReady(){let t=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(p=>p.classList.contains("placeholder-resolved"))),e=new Promise(o=>setTimeout(()=>o(!1),Qt));if(await Promise.race([t,e])===!0){this.dispatchEvent(new CustomEvent(it,{bubbles:!0,composed:!0}));return}this.#e("Contains unresolved offers")}get aemFragment(){return this.querySelector("aem-fragment")}get storageOptions(){return this.querySelector("sp-radio-group#storage")}get storageSpecificOfferSelect(){let t=this.storageOptions?.selected;if(t){let e=this.querySelector(`merch-offer-select[storage="${t}"]`);if(e)return e}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(nt,{bubbles:!0}))}handleStorageChange(){let t=this.closest("merch-card")?.offerSelect.cloneNode(!0);t&&this.dispatchEvent(new CustomEvent(U,{detail:{offerSelect:t},bubbles:!0}))}get dynamicPrice(){return this.querySelector('[slot="price"]')}selectMerchOffer(t){if(t===this.merchOffer)return;this.merchOffer=t;let e=this.dynamicPrice;if(t.price&&e){let a=t.price.cloneNode(!0);e.onceSettled?e.onceSettled().then(()=>{e.replaceWith(a)}):e.replaceWith(a)}}};customElements.define(i,c); +`;document.head.appendChild(Ct);var Kt="#000000",Wt="#F8D904";async function kt(r,t){let e=r.fields.reduce((p,{name:u,multiple:x,values:f})=>(p[u]=x?f:f[0],p),{id:r.id}),{variant:a}=e;if(!a)return;t.querySelectorAll("[slot]").forEach(p=>{p.remove()}),t.variant=a,await t.updateComplete;let{aemFragmentMapping:o}=t.variantLayout;if(!o)return;let m=e.mnemonicIcon?.map((p,u)=>({icon:p,alt:e.mnemonicAlt[u]??"",link:e.mnemonicLink[u]??""}));if(r.computed={mnemonics:m},m.forEach(({icon:p,alt:u,link:x})=>{if(!/^https?:/.test(x))try{x=new URL(`https://${x}`).href.toString()}catch{x="#"}let f=v("merch-icon",{slot:"icons",src:p,alt:u,href:x,size:"l"});t.append(f)}),e.badge&&(t.setAttribute("badge-text",e.badge),t.setAttribute("badge-color",e.badgeColor||Kt),t.setAttribute("badge-background-color",e.badgeBackgroundColor||Wt)),e.size?o.allowedSizes?.includes(e.size)&&t.setAttribute("size",e.size):t.removeAttribute("size"),e.cardTitle&&o.title&&t.append(v(o.title.tag,{slot:o.title.slot},e.cardTitle)),e.subtitle&&o.subtitle&&t.append(v(o.subtitle.tag,{slot:o.subtitle.slot},e.subtitle)),e.backgroundImage)switch(a){case"ccd-slice":o.backgroundImage&&t.append(v(o.backgroundImage.tag,{slot:o.backgroundImage.slot},``));break;case"ccd-suggested":t.setAttribute("background-image",e.backgroundImage);break}if(e.prices&&o.prices){let p=e.prices,u=v(o.prices.tag,{slot:o.prices.slot},p);t.append(u)}if(e.description&&o.description){let p=v(o.description.tag,{slot:o.description.slot},e.description);t.append(p)}if(e.ctas){let{slot:p,button:u=!0}=o.ctas,x=v("div",{slot:p??"footer"},e.ctas),f=[];[...x.querySelectorAll("a")].forEach(b=>{let G=b.parentElement.tagName==="STRONG";if(t.consonant)b.classList.add("con-button"),G&&b.classList.add("blue"),f.push(b);else{if(!u){f.push(b);return}let V=v("sp-button",{treatment:G?"fill":"outline",variant:G?"accent":"primary"},b);V.addEventListener("click",Z=>{Z.target===V&&(Z.stopPropagation(),b.click())}),f.push(V)}}),x.innerHTML="",x.append(...f),t.append(x)}}var i="merch-card",Qt=2e3,c=class extends Yt{static 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",reflect:!0},borderColor:{type:String,attribute:"border-color",reflect:!0},badgeBackgroundColor:{type:String,attribute:"badge-background-color",reflect:!0},backgroundImage:{type:String,attribute:"background-image",reflect:!0},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:t=>{let[e,a,o]=t.split(",");return{PUF:e,ABM:a,M2M:o}}}},filters:{type:String,reflect:!0,converter:{fromAttribute:t=>Object.fromEntries(t.split(",").map(e=>{let[a,o,m]=e.split(":"),p=Number(o);return[a,{order:isNaN(p)?void 0:p,size:m}]})),toAttribute:t=>Object.entries(t).map(([e,{order:a,size:o}])=>[e,a,o].filter(m=>m!=null).join(":")).join(",")}},types:{type:String,attribute:"types",reflect:!0},merchOffer:{type:Object}};static styles=[et,St(),...rt()];customerSegment;marketSegment;variantLayout;#t=!1;constructor(){super(),this.filters={},this.types="",this.selected=!1,this.handleAemFragmentEvents=this.handleAemFragmentEvents.bind(this)}firstUpdated(){this.variantLayout=Q(this,!1),this.variantLayout?.connectedCallbackHook(),this.aemFragment?.updateComplete.catch(()=>{this.style.display="none"})}willUpdate(t){(t.has("variant")||!this.variantLayout)&&(this.variantLayout=Q(this),this.variantLayout.connectedCallbackHook())}updated(t){(t.has("badgeBackgroundColor")||t.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["twp","ccd-slice"].includes(this.variant)?"":`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:t}){if(!this.stockOfferOsis)return;let e=this.checkoutLinks;if(e.length!==0)for(let a of e){await a.onceSettled();let o=a.value?.[0]?.planType;if(!o)return;let m=this.stockOfferOsis[o];if(!m)return;let p=a.dataset.wcsOsi.split(",").filter(u=>u!==m);t.checked&&p.push(m),a.dataset.wcsOsi=p.join(",")}}handleQuantitySelection(t){let e=this.checkoutLinks;for(let a of e)a.dataset.quantity=t.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(t){let e={...this.filters};Object.keys(e).forEach(a=>{if(t){e[a].order=Math.min(e[a].order||2,2);return}let o=e[a].order;o===1||isNaN(o)||(e[a].order=Number(o)+1)}),this.filters=e}includes(t){return this.textContent.match(new RegExp(t,"i"))!==null}connectedCallback(){super.connectedCallback(),this.setAttribute("tabindex",this.getAttribute("tabindex")??"0"),this.addEventListener(U,this.handleQuantitySelection),this.addEventListener(at,this.merchCardReady,{once:!0}),this.updateComplete.then(()=>{this.merchCardReady()}),this.storageOptions?.addEventListener("change",this.handleStorageChange),this.addEventListener(N,this.handleAemFragmentEvents),this.addEventListener(P,this.handleAemFragmentEvents),this.aemFragment||setTimeout(()=>this.checkReady(),0)}disconnectedCallback(){super.disconnectedCallback(),this.variantLayout.disconnectedCallbackHook(),this.removeEventListener(U,this.handleQuantitySelection),this.storageOptions?.removeEventListener(I,this.handleStorageChange),this.removeEventListener(N,this.handleAemFragmentEvents),this.removeEventListener(P,this.handleAemFragmentEvents)}async handleAemFragmentEvents(t){if(t.type===N&&this.#e("AEM fragment cannot be loaded"),t.type===P&&t.target.nodeName==="AEM-FRAGMENT"){let e=t.detail;await kt(e,this),this.checkReady()}}#e(t){this.dispatchEvent(new CustomEvent(st,{detail:t,bubbles:!0,composed:!0}))}async checkReady(){let t=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(m=>m.classList.contains("placeholder-resolved"))),e=new Promise(o=>setTimeout(()=>o(!1),Qt));if(await Promise.race([t,e])===!0){this.dispatchEvent(new CustomEvent(it,{bubbles:!0,composed:!0}));return}this.#e("Contains unresolved offers")}get aemFragment(){return this.querySelector("aem-fragment")}get storageOptions(){return this.querySelector("sp-radio-group#storage")}get storageSpecificOfferSelect(){let t=this.storageOptions?.selected;if(t){let e=this.querySelector(`merch-offer-select[storage="${t}"]`);if(e)return e}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(nt,{bubbles:!0}))}handleStorageChange(){let t=this.closest("merch-card")?.offerSelect.cloneNode(!0);t&&this.dispatchEvent(new CustomEvent(I,{detail:{offerSelect:t},bubbles:!0}))}get dynamicPrice(){return this.querySelector('[slot="price"]')}selectMerchOffer(t){if(t===this.merchOffer)return;this.merchOffer=t;let e=this.dynamicPrice;if(t.price&&e){let a=t.price.cloneNode(!0);e.onceSettled?e.onceSettled().then(()=>{e.replaceWith(a)}):e.replaceWith(a)}}};customElements.define(i,c); diff --git a/libs/features/mas/web-components/src/merch-card.css.js b/libs/features/mas/web-components/src/merch-card.css.js index 1e440a8c9b..f21a57ce9a 100644 --- a/libs/features/mas/web-components/src/merch-card.css.js +++ b/libs/features/mas/web-components/src/merch-card.css.js @@ -30,7 +30,9 @@ export const styles = css` visibility: hidden; } - :host(:hover) .invisible { + :host(:hover) .invisible, + :host(:active) .invisible, + :host(:focus) .invisible { visibility: visible; background-image: var(--ellipsis-icon); cursor: pointer; @@ -39,6 +41,7 @@ export const styles = css` .action-menu.always-visible { visibility: visible; background-image: var(--ellipsis-icon); + cursor: pointer; } .top-section { @@ -124,6 +127,7 @@ export const styles = css` background-repeat: no-repeat; background-position: center; background-size: 16px 16px; + font-size: 0; } .hidden { visibility: hidden; diff --git a/libs/features/mas/web-components/src/variants/catalog.js b/libs/features/mas/web-components/src/variants/catalog.js index cfa4e50f97..d42a38e8be 100644 --- a/libs/features/mas/web-components/src/variants/catalog.js +++ b/libs/features/mas/web-components/src/variants/catalog.js @@ -33,14 +33,18 @@ export class Catalog extends VariantLayout { : ''} ${!this.card.actionMenu ? 'hidden' : 'invisible'}" @click="${this.toggleActionMenu}" - >
+ @keypress="${this.toggleActionMenu}" + tabindex="0" + role="button" + >Action Menu
${this.card.actionMenuContent} + @focusout="${this.hideActionMenu}" + >${this.card.actionMenuContent} + @@ -62,34 +66,74 @@ export class Catalog extends VariantLayout { return CSS; } + dispatchActionMenuToggle = () => { + this.card.dispatchEvent( + new CustomEvent(EVENT_MERCH_CARD_ACTION_MENU_TOGGLE, { + bubbles: true, + composed: true, + detail: { + card: this.card.name, + type: 'action-menu', + }, + }), + ); + }; + toggleActionMenu = (e) => { + const actionMenuContentSlot = this.card.shadowRoot.querySelector( + 'slot[name="action-menu-content"]', + ); + if (!actionMenuContentSlot || !e || (e.type !== 'click' && e.code !== 'Space' && e.code !== 'Enter')) return; + + e.preventDefault(); + actionMenuContentSlot.classList.toggle('hidden'); + if (!actionMenuContentSlot.classList.contains('hidden')) this.dispatchActionMenuToggle(); + }; + + toggleActionMenuFromCard = (e) => { //beware this is an event on card, so this points to the card, not the layout const retract = e?.type === 'mouseleave' ? true : undefined; - const actionMenuContentSlot = this.card.shadowRoot.querySelector( + const shadowRoot = this.card.shadowRoot; + const actionMenu = shadowRoot.querySelector('.action-menu'); + this.card.blur(); + actionMenu?.classList.remove('always-visible'); + const actionMenuContentSlot = shadowRoot.querySelector( 'slot[name="action-menu-content"]', ); if (!actionMenuContentSlot) return; - if (!retract) { - this.card.dispatchEvent( - new CustomEvent(EVENT_MERCH_CARD_ACTION_MENU_TOGGLE, { - bubbles: true, - composed: true, - detail: { - card: this.card.name, - type: 'action-menu', - }, - }), - ); - } + + if (!retract) this.dispatchActionMenuToggle(); actionMenuContentSlot.classList.toggle('hidden', retract); }; + + hideActionMenu = (e) => { + const actionMenuContentSlot = this.card.shadowRoot.querySelector( + 'slot[name="action-menu-content"]', + ); + actionMenuContentSlot?.classList.add('hidden'); + } + + focusEventHandler = (e) => { + const actionMenu = this.card.shadowRoot.querySelector('.action-menu'); + if (!actionMenu) return; + + actionMenu.classList.add('always-visible'); + if (e.relatedTarget?.nodeName === 'MERCH-CARD-COLLECTION' + || (e.relatedTarget?.nodeName === 'MERCH-CARD' && e.target.nodeName !== 'MERCH-ICON')) { + actionMenu.classList.remove('always-visible'); + } + }; connectedCallbackHook() { - this.card.addEventListener('mouseleave', this.toggleActionMenu); + this.card.addEventListener('mouseleave', this.toggleActionMenuFromCard); + this.card.addEventListener('focusout', this.focusEventHandler); } + disconnectedCallbackHook() { - this.card.removeEventListener('mouseleave', this.toggleActionMenu); + this.card.removeEventListener('mouseleave', this.toggleActionMenuFromCard); + this.card.removeEventListener('focusout', this.focusEventHandler); } + static variantStyle = css` :host([variant='catalog']) { min-height: 330px; diff --git a/libs/features/mas/web-components/test/merch-card.catalog.test.html.js b/libs/features/mas/web-components/test/merch-card.catalog.test.html.js index f514677e34..d63297bf03 100644 --- a/libs/features/mas/web-components/test/merch-card.catalog.test.html.js +++ b/libs/features/mas/web-components/test/merch-card.catalog.test.html.js @@ -1,5 +1,6 @@ // @ts-nocheck import { runTests } from '@web/test-runner-mocha'; +import { sendKeys } from '@web/test-runner-commands'; import { expect } from '@esm-bundle/chai'; import { mockLana } from './mocks/lana.js'; @@ -49,6 +50,42 @@ runTests(async () => { expect(actionMenuContent).to.exist; }); + it('action menu and card focus for catalog variant', async () => { + const catalogCard = document.querySelector( + 'merch-card[variant="catalog"]', + ); + const mouseoverEvent = new MouseEvent('mouseover', { bubbles: true }); + const mouseleaveEvent = new MouseEvent('mouseleave', { bubbles: true }); + const focusoutEvent = new Event('focusout'); + catalogCard.dispatchEvent(mouseleaveEvent); + await delay(100); + const shadowRoot = catalogCard.shadowRoot; + const actionMenu = shadowRoot.querySelector('.action-menu'); + const actionMenuContent = shadowRoot.querySelector( + '.action-menu-content', + ); + actionMenu.click(); + await delay(100); + catalogCard.focus(); + await delay(100); + expect(actionMenu.classList.contains('invisible')).to.be.true; + expect(actionMenuContent.classList.contains('hidden')).to.be.false; + expect(actionMenu).to.exist; + expect(actionMenuContent).to.exist; + actionMenuContent.dispatchEvent(focusoutEvent); + await sendKeys({ + press: 'Enter', + }); + await delay(100); + expect(actionMenuContent.classList.contains('hidden')).to.be.true; + Array.from(document.querySelector('merch-card').querySelectorAll('a')).at(-1).focus(); + await delay(100); + await sendKeys({ + press: 'Tab', + }); + expect(actionMenu.classList.contains('invisible')).to.be.true; + }); + it('should display some content when action is clicked for catalog variant', async () => { const catalogCard = document.querySelector( 'merch-card[variant="catalog"]', From 7c6a0430498ba20d465f64788b09c48b7b201b85 Mon Sep 17 00:00:00 2001 From: Axel Cureno Basurto Date: Wed, 30 Oct 2024 10:35:43 -0700 Subject: [PATCH 4/9] MWPW-161191: Checkout cli parameter does not get rendered correctly (#3108) * MWPW-161191: Checkout cli parameter does not get rendered correctly * null safe check * remove line * unit tests --- libs/blocks/merch/merch.js | 17 +++++++++++++++++ .../features/mas/commerce/test/settings.test.js | 2 +- test/blocks/merch/merch.test.js | 4 ++-- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/libs/blocks/merch/merch.js b/libs/blocks/merch/merch.js index 0013e9608a..274b207936 100644 --- a/libs/blocks/merch/merch.js +++ b/libs/blocks/merch/merch.js @@ -560,6 +560,23 @@ export async function initService(force = false, attributes = {}) { fetchCheckoutLinkConfigs.promise = undefined; } const { commerce, env: miloEnv, locale: miloLocale } = getConfig(); + + const extraAttrs = [ + 'checkout-workflow-step', + 'force-tax-exclusive', + 'checkout-client-id', + 'allow-override', + ]; + + extraAttrs.forEach((attr) => { + const camelCaseAttr = attr.replace(/-([a-z])/g, (g) => g[1].toUpperCase()); + // eslint-disable-next-line no-prototype-builtins + if (commerce?.hasOwnProperty(camelCaseAttr)) { + const value = commerce[camelCaseAttr]; + delete commerce[camelCaseAttr]; + commerce[attr] = value; + } + }); initService.promise = initService.promise ?? polyfills().then(async () => { await import('../../deps/mas/commerce.js'); const { language, locale } = getMiloLocaleSettings(miloLocale); diff --git a/libs/features/mas/commerce/test/settings.test.js b/libs/features/mas/commerce/test/settings.test.js index b30c938fee..47807e913e 100644 --- a/libs/features/mas/commerce/test/settings.test.js +++ b/libs/features/mas/commerce/test/settings.test.js @@ -32,7 +32,7 @@ describe('getSettings', () => { }); it('overrides with search parameters', () => { - const checkoutClientId = 'adobecom'; + const checkoutClientId = 'adobe_com'; const checkoutWorkflowStep = 'segmentation'; const promotionCode = 'nicopromo'; diff --git a/test/blocks/merch/merch.test.js b/test/blocks/merch/merch.test.js index 751edb85a4..70ee9a03f5 100644 --- a/test/blocks/merch/merch.test.js +++ b/test/blocks/merch/merch.test.js @@ -311,10 +311,10 @@ describe('Merch Block', () => { it('renders merch link to CTA, config values', async () => { setConfig({ ...config, - commerce: { ...config.commerce }, + commerce: { ...config.commerce, checkoutClientId: 'dc' }, }); mockIms(); - await initService(true, { 'checkout-client-id': 'dc' }); + await initService(true); const el = await merch(document.querySelector('.merch.cta.config')); const { dataset, href, nodeName, textContent } = await el.onceSettled(); const url = new URL(href); From ac3a71d8d239b8698ff74064385f0d8bc0587d78 Mon Sep 17 00:00:00 2001 From: Vivian A Goodrich <101133187+vgoodric@users.noreply.github.com> Date: Wed, 30 Oct 2024 11:35:50 -0600 Subject: [PATCH 5/9] MWPW-153998, 148129, 149504 [MILO][MEP] Change Target gnav setting to be useable for any post LCP updates (#3039) * stash * ready to publish * interact call coming back but timing out * working on a fast connection * clean up ifs * working with promise * use camel case on let variable * unit tests * update unit tests * MWPW-149504 [MILO][MEP] Move entitlements object to the same JSON file used by the library (#3047) * create mepxlg branch * update library * require full hostname match * update reference for unit test * switch to use config instead of domain list and stub response in unit test * update fetch to 2 * updating another fetch to 2 * restore normalizePath to use preview domains on preview links * preload segment list json * use getFederatedUrl instead * import at top so we don't have to make normalizePath async * MWPW-148129 [MILO][MEP][GNAV] Able to use select by url feature with federated link (#3064) * add federated link function to registerInBlockActions * add to unit test * add unit test coverage * change spreadsheet name --- libs/blocks/library-config/library-config.js | 4 +- .../library-config/lists/personalization.js | 32 +- libs/features/personalization/entitlements.js | 62 -- .../personalization/personalization.js | 96 ++- libs/features/personalization/preview.js | 2 +- libs/martech/martech.js | 20 +- libs/utils/utils.js | 4 +- test/features/personalization/actions.test.js | 58 +- .../personalization/entitlements.test.js | 102 +-- .../mocks/actions/manifestCustomAction.json | 14 +- .../mocks/targetIntegration.html | 88 +++ .../personalization/mocks/targetResponse.json | 600 ++++++++++++++++++ .../personalization/pageFilter.test.js | 12 +- .../personalization/replacePage.test.js | 2 +- .../personalization/targetIntegration.test.js | 56 ++ ...get-gnav.html => head-target-postlcp.html} | 2 +- test/utils/utils-mep-gnav.test.js | 4 +- test/utils/utils-mep-with-params.test.js | 4 +- test/utils/utils-mep.test.js | 6 +- 19 files changed, 999 insertions(+), 169 deletions(-) delete mode 100644 libs/features/personalization/entitlements.js create mode 100644 test/features/personalization/mocks/targetIntegration.html create mode 100644 test/features/personalization/mocks/targetResponse.json create mode 100644 test/features/personalization/targetIntegration.test.js rename test/utils/mocks/mep/{head-target-gnav.html => head-target-postlcp.html} (61%) diff --git a/libs/blocks/library-config/library-config.js b/libs/blocks/library-config/library-config.js index 2e58495f37..7605432fc6 100644 --- a/libs/blocks/library-config/library-config.js +++ b/libs/blocks/library-config/library-config.js @@ -103,7 +103,7 @@ async function loadList(type, content, list) { case 'assets': loadAssets(content, list); break; - case 'personalization_tags': + case 'MEP_personalization': loadPersonalization(content, list); break; default: @@ -153,7 +153,7 @@ async function combineLibraries(base, supplied) { blocks: base.blocks.data, templates: base.templates?.data, icons: base.icons?.data, - personalization_tags: base.personalization?.data, + MEP_personalization: base.personalization?.data, placeholders: base.placeholders?.data, }; diff --git a/libs/blocks/library-config/lists/personalization.js b/libs/blocks/library-config/lists/personalization.js index 6f583f65a0..4b62102876 100644 --- a/libs/blocks/library-config/lists/personalization.js +++ b/libs/blocks/library-config/lists/personalization.js @@ -1,23 +1,24 @@ import { createTag } from '../../../utils/utils.js'; import createCopy from '../library-utils.js'; -const fetchTags = async (path) => { - const resp = await fetch(path); - if (!resp.ok) return []; - const json = await resp.json(); - return json.data || []; -}; - -const categorize = (tagData) => tagData +const categorize = (tagData, category) => tagData .reduce((tags, tag) => { - tags[tag.category] ??= []; - tags[tag.category].push({ + const tagCategory = tag.category || category; + tags[tagCategory] ??= []; + tags[tagCategory].push({ tagname: tag.tagname, description: tag.description, }); return tags; }, {}); +const fetchTags = async (path, category) => { + const resp = await fetch(path); + if (!resp.ok) return []; + const json = await resp.json(); + return categorize(json.data, category); +}; + const getCopyBtn = (tagName) => { const copy = createTag('button', { class: 'copy' }); copy.id = `${tagName}-tag-copy`; @@ -31,8 +32,15 @@ const getCopyBtn = (tagName) => { }; export default async function loadPersonalization(content, list) { - const tagData = await fetchTags(content[0].path); - const tagsObj = categorize(tagData); + let tagsObj = {}; + for (const item of content) { + const { category, path } = item; + tagsObj = { + ...tagsObj, + ...await fetchTags(path, category), + }; + } + list.textContent = ''; Object.entries(tagsObj).forEach(([category, tags]) => { diff --git a/libs/features/personalization/entitlements.js b/libs/features/personalization/entitlements.js deleted file mode 100644 index b329c8b338..0000000000 --- a/libs/features/personalization/entitlements.js +++ /dev/null @@ -1,62 +0,0 @@ -import { getConfig } from '../../utils/utils.js'; - -const ENTITLEMENT_MAP = { - '31943c06-06de-4f5f-8689-18973c13207a': 'photoshop-any', - '8ba78b22-90fb-4b97-a1c4-f8c03a45cbc2': 'indesign-any', - '8d3c8ac2-2937-486b-b6ff-37f02271b09b': 'illustrator-any', - 'fd30e9c7-9ae9-44db-8e70-5c652a5bb1d2': 'cc-all-apps-any', - '4e2f2a6e-48c4-49eb-9dd5-c44070abb3f0': 'after-effects-any', - 'e7650448-268b-4a0d-9795-05f604d7e42f': 'lightroom-any', - '619130fc-c7b5-4b39-a687-b32061326869': 'premiere-pro-any', - 'cec4d899-4b41-469e-9f2d-4658689abf29': 'phsp-ltr-bundle', - '8da44606-9841-43d0-af72-86d5a9d3bba0': 'cc-photo', - 'ab713720-91a2-4e8e-b6d7-6f613e049566': 'any-cc-product-no-stock', - 'b0f65e1c-7737-4788-b3ae-0011c80bcbe1': 'any-cc-product-with-stock', - '934fdc1d-7ba6-4644-908b-53e01e550086': 'any-dc-product', - '6dfcb769-324f-42e0-9e12-1fc4dc0ee85b': 'always-on-promo', - '015c52cb-30b0-4ac9-b02e-f8716b39bfb6': 'not-q-always-on-promo', - '42e06851-64cd-4684-a54a-13777403487a': '3d-substance-collection', - 'eda8c774-420b-44c2-9006-f9a8d0fb5168': '3d-substance-texturing', - '76e408f6-ab08-49f0-adb6-f9b4efcc205d': 'cc-free', - '08216aa4-4a0f-4136-8b27-182212764a7c': 'dc-free', - 'fc2d5b34-fa75-4e80-9f23-7d4b40bcfc9b': 'cc-paid', - 'c6927505-97b3-4655-995a-6452630fa9cb': 'fresco-any', - 'e82be3ab-1fbc-4410-a099-af6ac6d5dffe': 'cc-paid-no-stock', - '08691170-f6d6-46c7-9f3c-543d7761b64a': 'free-no-trial-loggedin-today', - - // PEP segments - '6cb0d58c-3a65-47e2-b459-c52bb158d5b6': 'lightroom-web-usage', - 'caa3de84-6336-4fa8-8db2-240fc88106cc': 'photoshop-signup-source', - 'ef82408e-1bab-4518-b655-a88981515d6b': 'photoshop-web-usage', - '5c6a4bb8-a2f3-4202-8cca-f5e918b969dc': 'firefly-signup-source', - '20106303-e88c-4b15-93e5-f6a1c3215a12': 'firefly-web-usage', - '3df0b0b0-d06e-4fcc-986e-cc97f54d04d8': 'acrobat-web-usage', - - // Express segments - '2a537e84-b35f-4158-8935-170c22b8ae87': 'express-entitled', - 'eb0dcb78-3e56-4b10-89f9-51831f2cc37f': 'express-pep', -}; - -export const getEntitlementMap = async () => { - const { env, consumerEntitlements } = getConfig(); - if (env?.name === 'prod') return { ...consumerEntitlements, ...ENTITLEMENT_MAP }; - const { default: STAGE_ENTITLEMENTS } = await import('./stage-entitlements.js'); - return { ...consumerEntitlements, ...STAGE_ENTITLEMENTS }; -}; - -const getEntitlements = async (data) => { - const entitlementMap = await getEntitlementMap(); - - return data.flatMap((destination) => { - const ents = destination.segments?.flatMap((segment) => { - const entMatch = entitlementMap[segment.id]; - return entMatch ? [entMatch] : []; - }); - - return ents || []; - }); -}; - -export default function init(data) { - return getEntitlements(data); -} diff --git a/libs/features/personalization/personalization.js b/libs/features/personalization/personalization.js index 4c2b5997f3..7cf87b0469 100644 --- a/libs/features/personalization/personalization.js +++ b/libs/features/personalization/personalization.js @@ -2,7 +2,7 @@ /* eslint-disable no-console */ import { createTag, getConfig, loadLink, loadScript, localizeLink } from '../../utils/utils.js'; -import { getEntitlementMap } from './entitlements.js'; +import { getFederatedUrl } from '../../utils/federated.js'; /* c8 ignore start */ const PHONE_SIZE = window.screen.width < 550 || window.screen.height < 550; @@ -31,11 +31,13 @@ const CLASS_EL_REPLACE = 'p13n-replaced'; const COLUMN_NOT_OPERATOR = 'not '; const TARGET_EXP_PREFIX = 'target-'; const INLINE_HASH = '_inline'; +const MARTECH_RETURNED_EVENT = 'martechReturned'; const PAGE_URL = new URL(window.location.href); const FLAGS = { all: 'all', includeFragments: 'include-fragments', }; +let isPostLCP = false; export const TRACKED_MANIFEST_TYPE = 'personalization'; @@ -65,6 +67,9 @@ export const normalizePath = (p, localize = true) => { } const config = getConfig(); + if (path.startsWith('https://www.adobe.com/federal/')) { + return getFederatedUrl(path); + } if (path.startsWith(config.codeRoot) || path.includes('.hlx.') @@ -338,6 +343,8 @@ function registerInBlockActions(command) { blockSelector = blockAndSelector.slice(1).join(' '); command.selector = blockSelector; if (getSelectorType(blockSelector) === 'fragment') { + if (blockSelector.includes('/federal/')) blockSelector = getFederatedUrl(blockSelector); + if (command.content.includes('/federal/')) command.content = getFederatedUrl(command.content); config.mep.inBlock[blockName].fragments ??= {}; const { fragments } = config.mep.inBlock[blockName]; delete command.selector; @@ -445,7 +452,7 @@ function getSelectedElements(sel, rootEl, forceRootEl) { ); return { els: fragments, modifiers: [FLAGS.all, FLAGS.includeFragments] }; } catch (e) { - /* c8 ignore next */ + /* c8 ignore next 2 */ return { els: [], modifiers: [] }; } } @@ -489,6 +496,7 @@ export const updateFragDataProps = (a, inline, sections, fragment) => { }; export function handleCommands(commands, rootEl, forceInline = false, forceRootEl = false) { + const section1 = document.querySelector('main > div'); commands.forEach((cmd) => { const { action, content, selector } = cmd; cmd.content = forceInline ? addHash(content, INLINE_HASH) : content; @@ -501,8 +509,10 @@ export function handleCommands(commands, rootEl, forceInline = false, forceRootE cmd.modifiers = modifiers; els?.forEach((el) => { - if (!el || (!(action in COMMANDS) && !(action in CREATE_CMDS)) - || (rootEl && !rootEl.contains(el))) return; + if (!el + || (!(action in COMMANDS) && !(action in CREATE_CMDS)) + || (rootEl && !rootEl.contains(el)) + || (isPostLCP && section1?.contains(el))) return; if (action in COMMANDS) { COMMANDS[action](el, cmd); @@ -699,6 +709,40 @@ export function buildVariantInfo(variantNames) { }, { allNames: [] }); } +const getXLGListURL = (config) => { + const sheet = config.env?.name === 'prod' ? 'prod' : 'stage'; + return `https://www.adobe.com/federal/assets/data/mep-xlg-tags.json?sheet=${sheet}`; +}; + +export const getEntitlementMap = async () => { + const config = getConfig(); + if (config.mep?.entitlementMap) return config.mep.entitlementMap; + const entitlementUrl = getXLGListURL(config); + const fetchedData = await fetchData(entitlementUrl, DATA_TYPE.JSON); + if (!fetchedData) return config.consumerEntitlements || {}; + const entitlements = {}; + fetchedData?.data?.forEach((ent) => { + const { id, tagname } = ent; + entitlements[id] = tagname; + }); + config.mep ??= {}; + config.mep.entitlementMap = { ...config.consumerEntitlements, ...entitlements }; + return config.mep.entitlementMap; +}; + +export const getEntitlements = async (data) => { + const entitlementMap = await getEntitlementMap(); + + return data.flatMap((destination) => { + const ents = destination.segments?.flatMap((segment) => { + const entMatch = entitlementMap[segment.id]; + return entMatch ? [entMatch] : []; + }); + + return ents || []; + }); +}; + async function getPersonalizationVariant(manifestPath, variantNames = [], variantLabel = null) { const config = getConfig(); if (config.mep?.variantOverride?.[manifestPath]) { @@ -971,7 +1015,7 @@ export function parseNestedPlaceholders({ placeholders }) { }); } -export async function applyPers(manifests, postLCP = false) { +export async function applyPers(manifests) { if (!manifests?.length) return; let experiments = manifests; const config = getConfig(); @@ -996,13 +1040,13 @@ export async function applyPers(manifests, postLCP = false) { config.mep.commands = consolidateArray(results, 'commands', config.mep.commands); const main = document.querySelector('main'); - if (config.mep.replacepage && !postLCP && main) { + if (config.mep.replacepage && !isPostLCP && main) { await replaceInner(config.mep.replacepage.val, main); const { manifestId, targetManifestId } = config.mep.replacepage; addIds(main, manifestId, targetManifestId); } - if (!postLCP) config.mep.commands = handleCommands(config.mep.commands); + config.mep.commands = handleCommands(config.mep.commands); deleteMarkedEls(); const pznList = results.filter((r) => (r.experiment?.manifestType === TRACKED_MANIFEST_TYPE)); @@ -1056,13 +1100,33 @@ export const combineMepSources = async (persEnabled, promoEnabled, mepParam) => return persManifests; }; +async function callMartech(config) { + const { getTargetPersonalization } = await import('../../martech/martech.js'); + const { targetManifests, targetPropositions } = await getTargetPersonalization(); + config.mep.targetManifests = targetManifests; + if (targetPropositions?.length && window._satellite) { + window._satellite.track('propositionDisplay', targetPropositions); + } + if (config.mep.targetEnabled === 'postlcp') { + const event = new CustomEvent(MARTECH_RETURNED_EVENT, { detail: 'Martech returned' }); + window.dispatchEvent(event); + } + return targetManifests; +} +const awaitMartech = () => new Promise((resolve) => { + const listener = (event) => resolve(event.detail); + window.addEventListener(MARTECH_RETURNED_EVENT, listener, { once: true }); +}); + export async function init(enablements = {}) { let manifests = []; const { mepParam, mepHighlight, mepButton, pzn, promo, target, postLCP, } = enablements; const config = getConfig(); - if (!postLCP) { + if (postLCP) { + isPostLCP = true; + } else { config.mep = { updateFragDataProps, preview: (mepButton !== 'off' @@ -1079,18 +1143,18 @@ export async function init(enablements = {}) { const normalizedURL = normalizePath(manifest.manifestPath); loadLink(normalizedURL, { as: 'fetch', crossorigin: 'anonymous', rel: 'preload' }); }); + if (pzn) loadLink(getXLGListURL(config), { as: 'fetch', crossorigin: 'anonymous', rel: 'preload' }); } - if (target === true || (target === 'gnav' && postLCP)) { - const { getTargetPersonalization } = await import('../../martech/martech.js'); - const { targetManifests, targetPropositions } = await getTargetPersonalization(); - manifests = manifests.concat(targetManifests); - if (targetPropositions?.length && window._satellite) { - window._satellite.track('propositionDisplay', targetPropositions); - } + if (target === true) manifests = manifests.concat(await callMartech(config)); + if (target === 'postlcp') callMartech(config); + if (postLCP) { + if (!config.mep.targetManifests) await awaitMartech(); + manifests = config.mep.targetManifests; } + if (!manifests || !manifests.length) return; try { - await applyPers(manifests, postLCP); + await applyPers(manifests); } catch (e) { log(`MEP Error: ${e.toString()}`); window.lana?.log(`MEP Error: ${e.toString()}`); diff --git a/libs/features/personalization/preview.js b/libs/features/personalization/preview.js index d1a888067a..ebb2d9a6db 100644 --- a/libs/features/personalization/preview.js +++ b/libs/features/personalization/preview.js @@ -202,7 +202,7 @@ function createPreviewPill(manifests) { }); const config = getConfig(); let targetOnText = config.mep.targetEnabled ? 'on' : 'off'; - if (config.mep.targetEnabled === 'gnav') targetOnText = 'on for gnav only'; + if (config.mep.targetEnabled === 'postlcp') targetOnText = 'on post LCP'; const personalizationOn = getMetadata('personalization'); const personalizationOnText = personalizationOn && personalizationOn !== '' ? 'on' : 'off'; const simulateHref = new URL(window.location.href); diff --git a/libs/martech/martech.js b/libs/martech/martech.js index f7f6d73a11..74df28252c 100644 --- a/libs/martech/martech.js +++ b/libs/martech/martech.js @@ -118,14 +118,24 @@ export const getTargetPersonalization = async () => { const responseStart = Date.now(); window.addEventListener(ALLOY_SEND_EVENT, () => { const responseTime = calculateResponseTime(responseStart); - window.lana.log(`target response time: ${responseTime}`, { tags: 'martech', errorType: 'i' }); + try { + window.lana.log(`target response time: ${responseTime}`, { tags: 'martech', errorType: 'i' }); + } catch (e) { + // eslint-disable-next-line no-console + console.error('Error logging target response time:', e); + } }, { once: true }); let targetManifests = []; let targetPropositions = []; const response = await waitForEventOrTimeout(ALLOY_SEND_EVENT, timeout); if (response.error) { - window.lana.log('target response time: ad blocker', { tags: 'martech', errorType: 'i' }); + try { + window.lana.log('target response time: ad blocker', { tags: 'martech', errorType: 'i' }); + } catch (e) { + // eslint-disable-next-line no-console + console.error('Error logging target response time for ad blocker:', e); + } return { targetManifests, targetPropositions }; } if (response.timeout) { @@ -142,8 +152,8 @@ export const getTargetPersonalization = async () => { const setupEntitlementCallback = () => { const setEntitlements = async (destinations) => { - const { default: parseEntitlements } = await import('../features/personalization/entitlements.js'); - return parseEntitlements(destinations); + const { getEntitlements } = await import('../features/personalization/personalization.js'); + return getEntitlements(destinations); }; const getEntitlements = (resolve) => { @@ -163,7 +173,7 @@ const setupEntitlementCallback = () => { getEntitlements(resolveEnt); loadLink( - `${miloLibs || codeRoot}/features/personalization/entitlements.js`, + `${miloLibs || codeRoot}/features/personalization/personalization.js`, { as: 'script', rel: 'modulepreload' }, ); }; diff --git a/libs/utils/utils.js b/libs/utils/utils.js index 5943cce373..3da9d8bada 100644 --- a/libs/utils/utils.js +++ b/libs/utils/utils.js @@ -909,7 +909,7 @@ export async function decorateFooterPromo(doc = document) { } const getMepValue = (val) => { - const valMap = { on: true, off: false, gnav: 'gnav' }; + const valMap = { on: true, off: false, postLCP: 'postlcp' }; const finalVal = val?.toLowerCase().trim(); if (finalVal in valMap) return valMap[finalVal]; return finalVal; @@ -1057,7 +1057,7 @@ async function checkForPageMods() { async function loadPostLCP(config) { await decoratePlaceholders(document.body.querySelector('header'), config); - if (config.mep?.targetEnabled === 'gnav') { + if (config.mep?.targetEnabled === 'postlcp') { /* c8 ignore next 2 */ const { init } = await import('../features/personalization/personalization.js'); await init({ postLCP: true }); diff --git a/test/features/personalization/actions.test.js b/test/features/personalization/actions.test.js index d0a7d0dc83..fad860915b 100644 --- a/test/features/personalization/actions.test.js +++ b/test/features/personalization/actions.test.js @@ -3,7 +3,7 @@ import { readFile } from '@web/test-runner-commands'; import { stub } from 'sinon'; import { getConfig, loadBlock } from '../../../libs/utils/utils.js'; import initFragments from '../../../libs/blocks/fragment/fragment.js'; -import { init, handleFragmentCommand } from '../../../libs/features/personalization/personalization.js'; +import { init, handleCommands } from '../../../libs/features/personalization/personalization.js'; import mepSettings from './mepSettings.js'; document.head.innerHTML = await readFile({ path: './mocks/metadata.html' }); @@ -151,7 +151,6 @@ describe('prependToSection action', async () => { describe('appendToSection action', async () => { it('appendToSection should add fragment to end of section', async () => { - config.mep = { handleFragmentCommand }; let manifestJson = await readFile({ path: './mocks/actions/manifestAppendToSection.json' }); manifestJson = JSON.parse(manifestJson); @@ -167,6 +166,24 @@ describe('appendToSection action', async () => { }); }); +describe('addHash', async () => { + it('if forceInline is true, addHash is called', async () => { + config.mep.commands = [{ + action: 'replace', + content: '/new-fragment', + selector: 'h1', + }]; + const rootEl = document.createElement('div'); + handleCommands(config.mep.commands, rootEl, true, true); + console.log(config.mep.commands[0].content); + expect(config.mep.commands[0].content).to.equal('/new-fragment#_inline'); + config.mep.commands[0].content = 'https://main--cc--adobecom.hlx.page/cc/fragments/new-fragment'; + handleCommands(config.mep.commands, rootEl, true, true); + console.log(config.mep.commands[0].content); + expect(config.mep.commands[0].content).to.equal('https://main--cc--adobecom.hlx.page/cc/fragments/new-fragment#_inline'); + }); +}); + describe('replace action with html/text instead of fragment', () => { it('should replace marquee content', async () => { document.body.innerHTML = await readFile({ path: './mocks/personalization.html' }); @@ -219,20 +236,25 @@ describe('remove action', () => { let manifestJson = await readFile({ path: './mocks/actions/manifestRemove.json' }); manifestJson = JSON.parse(manifestJson); setFetchResponse(manifestJson); + delete config.mep; + + expect(document.querySelector('.z-pattern')).to.not.be.null; + await init({ + mepParam: '', + mepHighlight: false, + mepButton: false, + pzn: '/path/to/manifest.json', + promo: false, + target: false, + }); - setTimeout(async () => { - expect(document.querySelector('.z-pattern')).to.not.be.null; - mepSettings.mepButton = false; - await init(mepSettings); - - expect(document.querySelector('.z-pattern')).to.not.be.null; - expect(document.querySelector('.z-pattern').dataset.removedManifestId).to.not.be.null; + expect(document.querySelector('.z-pattern')).to.not.be.null; + expect(document.querySelector('.z-pattern').dataset.removedManifestId).to.equal('manifest.json'); - const removeMeFrag = document.querySelector('a[href="/fragments/removeme"]'); - await initFragments(removeMeFrag); - expect(document.querySelector('a[href="/fragments/removeme"]')).to.not.be.null; - expect(document.querySelector('a[href="/fragments/removeme"]').dataset.removedManifestId).to.not.be.null; - }, 50); + const removeMeFrag = document.querySelector('a[href="/fragments/removeme"]'); + await initFragments(removeMeFrag); + expect(document.querySelector('a[href="/fragments/removeme"]')).to.not.be.null; + expect(document.querySelector('a[href="/fragments/removeme"]').dataset.removedManifestId).to.not.be.null; }); }); @@ -322,6 +344,14 @@ describe('custom actions', async () => { pageFilter: '', selectorType: 'in-block:', }, + 'https://main--federal--adobecom.hlx.page/federal/fragments/new-sub-menu': { + action: 'replace', + pageFilter: '', + content: 'https://main--federal--adobecom.hlx.page/federal/fragments/even-more-new-sub-menu', + selectorType: 'in-block:', + manifestId: false, + targetManifestId: false, + }, }, }, }); diff --git a/test/features/personalization/entitlements.test.js b/test/features/personalization/entitlements.test.js index 990a7f5fac..de6184c944 100644 --- a/test/features/personalization/entitlements.test.js +++ b/test/features/personalization/entitlements.test.js @@ -1,12 +1,49 @@ import { expect } from '@esm-bundle/chai'; +import { stub } from 'sinon'; import { getConfig } from '../../../libs/utils/utils.js'; -import getEntitlements from '../../../libs/features/personalization/entitlements.js'; +import { getEntitlements } from '../../../libs/features/personalization/personalization.js'; + +const config = getConfig(); +config.env = { name: 'prod' }; +config.mep = {}; + +const getFetchPromise = (data, type = 'json') => new Promise((resolve) => { + resolve({ + ok: true, + [type]: () => data, + }); +}); + +const setFetchResponse = () => { + const response = { + data: [ + { + tagname: 'photoshop-any', + id: 'photoshop-guid-id', + }, + { + tagname: 'illustrator-any', + id: 'illustrator-guid-id', + }, + { + tagname: 'indesign-any', + id: 'indesign-guid-id', + }, + { + tagname: 'after-effects-any', + id: 'after-effects-guid-id', + }, + ], + }; + window.fetch = stub().returns(getFetchPromise(response, 'json')); +}; +setFetchResponse(); describe('entitlements', () => { + beforeEach(() => { + config.mep.entitlementMap = undefined; + }); it('Should return any entitlements that match the id', async () => { - const config = getConfig(); - config.env = { name: 'prod' }; - const destinations = [ { segments: [ @@ -15,99 +52,90 @@ describe('entitlements', () => { namespace: 'ups', }, { - id: 'e7650448-268b-4a0d-9795-05f604d7e42f', + id: 'photoshop-guid-id', namespace: 'ups', }, { - id: '8da44606-9841-43d0-af72-86d5a9d3bba0', + id: 'illustrator-guid-id', namespace: 'ups', }, ], }, ]; - const expectedEntitlements = ['lightroom-any', 'cc-photo']; + const expectedEntitlements = ['photoshop-any', 'illustrator-any']; const entitlements = await getEntitlements(destinations); expect(entitlements).to.deep.equal(expectedEntitlements); }); - it('Should return any stage entitlements that match the id', async () => { - const config = getConfig(); - config.env = { name: 'stage' }; - + it('Should not return any entitlements if there is no match', async () => { const destinations = [ { segments: [ { - id: '09bc4ba3-ebed-4d05-812d-a1fb1a7e82ae', - namespace: 'ups', - }, - { - id: '11111111-aaaa-bbbb-6666-cccccccccccc', + id: 'x1111111-aaaa-bbbb-6666-cccccccccccc', namespace: 'ups', }, { - id: '73c3406b-32a2-4465-abf3-2d415b9b1f4f', + id: 'y2222222-xxxx-bbbb-7777-cccccccccccc', namespace: 'ups', }, ], }, ]; - const expectedEntitlements = ['indesign-any', 'after-effects-any']; + const expectedEntitlements = []; const entitlements = await getEntitlements(destinations); expect(entitlements).to.deep.equal(expectedEntitlements); }); - it('Should not return any entitlements if there is no match', async () => { - const config = getConfig(); - config.env = { name: 'prod' }; - + it('Should be able to use consumer defined entitlements in the config', async () => { + config.consumerEntitlements = { 'consumer-defined-entitlement': 'consumer-defined' }; const destinations = [ { segments: [ { - id: 'x1111111-aaaa-bbbb-6666-cccccccccccc', + id: 'photoshop-guid-id', namespace: 'ups', }, { - id: 'y2222222-xxxx-bbbb-7777-cccccccccccc', + id: '11111111-aaaa-bbbb-6666-cccccccccccc', + namespace: 'ups', + }, + { + id: 'consumer-defined-entitlement', namespace: 'ups', }, ], }, ]; - const expectedEntitlements = []; + const expectedEntitlements = ['photoshop-any', 'consumer-defined']; const entitlements = await getEntitlements(destinations); expect(entitlements).to.deep.equal(expectedEntitlements); }); - it('Should be able to use consumer defined entitlements in the config', async () => { - const config = getConfig(); - config.consumerEntitlements = { 'consumer-defined-entitlement': 'consumer-defined' }; - config.env = { name: 'prod' }; - + it('Should return previously retrieved entitlements map if available', async () => { + config.mep.entitlementMap = { + 'photoshop-guid-id2': 'photoshop-any', + 'illustrator-guid-id2': 'illustrator-any', + }; const destinations = [ { segments: [ { - id: 'e7650448-268b-4a0d-9795-05f604d7e42f', + id: 'photoshop-guid-id2', namespace: 'ups', }, { - id: '11111111-aaaa-bbbb-6666-cccccccccccc', - namespace: 'ups', - }, - { - id: 'consumer-defined-entitlement', + id: 'illustrator-guid-id2', namespace: 'ups', }, ], }, ]; - const expectedEntitlements = ['lightroom-any', 'consumer-defined']; + const expectedEntitlements = ['photoshop-any', 'illustrator-any']; const entitlements = await getEntitlements(destinations); expect(entitlements).to.deep.equal(expectedEntitlements); }); diff --git a/test/features/personalization/mocks/actions/manifestCustomAction.json b/test/features/personalization/mocks/actions/manifestCustomAction.json index 1de7092bbb..ef510666fa 100644 --- a/test/features/personalization/mocks/actions/manifestCustomAction.json +++ b/test/features/personalization/mocks/actions/manifestCustomAction.json @@ -35,7 +35,8 @@ "firefox": "", "android": "", "ios": "" - }, { + }, + { "action": "replace", "selector": "in-block:my-block /fragments/new-sub-menu", "page filter (optional)": "", @@ -45,6 +46,17 @@ "firefox": "", "android": "", "ios": "" + }, + { + "action": "replace", + "selector": "in-block:my-block /federal/fragments/new-sub-menu", + "page filter (optional)": "", + "param-newoffer=123": "", + "chrome": "/federal/fragments/even-more-new-sub-menu", + "target-var1": "/federal/fragments/even-more-new-sub-menu", + "firefox": "", + "android": "", + "ios": "" } ], ":type": "sheet" diff --git a/test/features/personalization/mocks/targetIntegration.html b/test/features/personalization/mocks/targetIntegration.html new file mode 100644 index 0000000000..fff013fd5c --- /dev/null +++ b/test/features/personalization/mocks/targetIntegration.html @@ -0,0 +1,88 @@ + +
+
+
+
+
+
+ #eee +
+
+
+
+

This is my detail

+

Headline before Target update

+

Body M Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.

+

Lorem ipsum Learn more Text link

+
+
+ + + + + Inserting image... + +
+
+
+
+
+
+
+
+
+
+
+
+
+
    +
  1. Personalized Start
  2. +
  3. Default Start
  4. +
+
+
+
+
active tab
+
2
+
+
+
id
+
demo
+
+
+
+
+

Here is tab 1 content

+ +
+
+

Here is tab 2 content

+ +
+
+
+
+
+
+
+
+
+
diff --git a/test/features/personalization/mocks/targetResponse.json b/test/features/personalization/mocks/targetResponse.json new file mode 100644 index 0000000000..1f4015c924 --- /dev/null +++ b/test/features/personalization/mocks/targetResponse.json @@ -0,0 +1,600 @@ +{ + "type": "pageView", + "result": { + "destinations": [ + { + "type": "profileLookup", + "destinationId": "06de1b59-e830-4e14-80ec-375418680ea9", + "alias": "Web Personalization via XLG audience", + "segments": [ + { + "id": "1fe54fb3-8156-4247-ac8b-cb00462a1367", + "namespace": "ups" + } + ] + } + ], + "inferences": [], + "propositions": [ + { + "id": "AT:eyJhY3Rpdml0eUlkIjoiMTYxNjY2MyIsImV4cGVyaWVuY2VJZCI6IjAifQ==", + "scope": "__view__", + "scopeDetails": { + "decisionProvider": "TGT", + "activity": { + "id": "1616663" + }, + "experience": { + "id": "0" + }, + "strategies": [ + { + "step": "entry", + "trafficType": "0" + }, + { + "step": "display", + "trafficType": "0" + } + ], + "correlationID": "1616663:0:0" + }, + "items": [ + { + "id": "901343", + "schema": "https://ns.adobe.com/personalization/json-content-item", + "meta": { + "experience.id": "0", + "activity.name": "MWPW-153998 branch:meppostlcp - realistic example", + "activity.id": "1616663", + "option.name": "Offer2", + "experience.name": "Experience A", + "option.id": "2", + "offer.name": "MWPW-153998 branch:meppostlcp - realistic example", + "offer.id": "901343", + "profile.twentygroups": "Group15of20" + }, + "data": { + "id": "901343", + "format": "application/json", + "content": { + "manifestLocation": "https://main--cc--adobecom.hlx.page/drafts/mepdev/fragments/2024/q3/meppostlcp/manifest.json", + "manifestContent": { + "info": { + "total": 3, + "offset": 0, + "limit": 3, + "data": [ + { + "key": "manifest-type", + "value": "Promo" + }, + { + "key": "manifest-override-name", + "value": "" + }, + { + "key": "manifest-execution-order", + "value": "Normal" + } + ] + }, + "placeholders": { + "total": 0, + "offset": 0, + "limit": 0, + "data": [] + }, + "experiences": { + "total": 2, + "offset": 0, + "limit": 2, + "data": [ + { + "action": "replace", + "selector": "tabs row2 col2", + "page filter (optional)": "", + "all": "1" + }, + { + "action": "replace", + "selector": "any-marquee any-header", + "page filter (optional)": "", + "all": "PZN title" + } + ] + }, + ":version": 3, + ":names": [ + "info", + "placeholders", + "experiences" + ], + ":type": "multi-sheet" + } + } + } + } + ], + "renderAttempted": false + } + ], + "decisions": [ + { + "id": "AT:eyJhY3Rpdml0eUlkIjoiMTYxNjY2MyIsImV4cGVyaWVuY2VJZCI6IjAifQ==", + "scope": "__view__", + "scopeDetails": { + "decisionProvider": "TGT", + "activity": { + "id": "1616663" + }, + "experience": { + "id": "0" + }, + "strategies": [ + { + "step": "entry", + "trafficType": "0" + }, + { + "step": "display", + "trafficType": "0" + } + ], + "correlationID": "1616663:0:0" + }, + "items": [ + { + "id": "901343", + "schema": "https://ns.adobe.com/personalization/json-content-item", + "meta": { + "experience.id": "0", + "activity.name": "MWPW-153998 branch:meppostlcp - realistic example", + "activity.id": "1616663", + "option.name": "Offer2", + "experience.name": "Experience A", + "option.id": "2", + "offer.name": "MWPW-153998 branch:meppostlcp - realistic example", + "offer.id": "901343", + "profile.twentygroups": "Group15of20" + }, + "data": { + "id": "901343", + "format": "application/json", + "content": { + "manifestLocation": "https://main--cc--adobecom.hlx.page/drafts/mepdev/fragments/2024/q3/meppostlcp/manifest.json", + "manifestContent": { + "info": { + "total": 3, + "offset": 0, + "limit": 3, + "data": [ + { + "key": "manifest-type", + "value": "Promo" + }, + { + "key": "manifest-override-name", + "value": "" + }, + { + "key": "manifest-execution-order", + "value": "Normal" + } + ] + }, + "placeholders": { + "total": 0, + "offset": 0, + "limit": 0, + "data": [] + }, + "experiences": { + "total": 2, + "offset": 0, + "limit": 2, + "data": [ + { + "action": "replace", + "selector": "tabs row2 col2", + "page filter (optional)": "", + "all": "1" + }, + { + "action": "replace", + "selector": "any-marquee any-header", + "page filter (optional)": "", + "all": "PZN title" + } + ] + }, + ":version": 3, + ":names": [ + "info", + "placeholders", + "experiences" + ], + ":type": "multi-sheet" + } + } + } + } + ] + } + ] + }, + "event": { + "_beforeSatelliteLoaded": true, + "sent": {}, + "data": { + "eventMergeId": "", + "web": { + "webPageDetails": { + "URL": "https://main--cc--adobecom.hlx.page/drafts/mepdev/fragments/2024/q3/meppostlcp/?milolibs=meppostlcp&target=postlcp", + "siteSection": "main--cc--adobecom.hlx.page", + "server": "main--cc--adobecom.hlx.page", + "isErrorPage": false, + "isHomePage": false, + "name": "main--cc--adobecom.hlx.page:drafts:mepdev:fragments:2024:q3:meppostlcp", + "pageViews": { + "value": 1 + } + }, + "webReferrer": { + "URL": "" + } + }, + "_adobe_corpnew": { + "digitalData": { + "page": { + "pageInfo": { + "language": "en-US", + "siteSection": "main--cc--adobecom.hlx.page", + "pageName": "main--cc--adobecom.hlx.page:drafts:mepdev:fragments:2024:q3:meppostlcp", + "processedPageName": "main--cc--adobecom.hlx.page:drafts:mepdev:fragments:2024:q3:meppostlcp", + "location": { + "href": "https://main--cc--adobecom.hlx.page/drafts/mepdev/fragments/2024/q3/meppostlcp/?milolibs=meppostlcp&target=postlcp", + "origin": "https://main--cc--adobecom.hlx.page", + "protocol": "https:", + "host": "main--cc--adobecom.hlx.page", + "hostname": "main--cc--adobecom.hlx.page", + "port": "", + "pathname": "/drafts/mepdev/fragments/2024/q3/meppostlcp/", + "search": "?milolibs=meppostlcp&target=postlcp", + "hash": "" + } + } + }, + "target": { + "at_property": "STAGE", + "at_property_val": "bc8dfa27-29cc-625c-22ea-f7ccebfc6231" + }, + "clickTaleInfo": "0.09659220339555374_1728935798110", + "adobe": { + "libraryVersions": "alloy", + "gpc": "", + "experienceCloud": { + "agiCampaign": "" + } + }, + "diagnostic": { + "franklin": { + "implementation": "milo" + } + }, + "previousPage": { + "pageInfo": { + "pageName": "main--cc--adobecom.hlx.page:drafts:mepdev:fragments:2024:q3:meppostlcp" + } + }, + "primaryUser": { + "primaryProfile": { + "profileInfo": { + "authState": "loggedOut", + "entitlementCreativeCloud": "unknown", + "entitlementStatusCreativeCloud": "unknown", + "returningStatus": "Repeat" + } + } + } + } + }, + "marketingtech": { + "bootstrap": { + "version": "0.29.0" + }, + "adobe": { + "alloy": { + "edgeConfigIdLaunch": "e065836d-be57-47ef-b8d1-999e1657e8fd", + "approach": "standard", + "edgeConfigId": "8d2805dd-85bf-4748-82eb-f99fdad117a6" + } + } + }, + "__adobe": { + "target": { + "is404": false, + "authState": "loggedOut", + "hitType": "pageView", + "isMilo": true, + "adobeLocale": "en-US", + "hasGnav": true + } + }, + "_i": 0, + "eventType": "web.webpagedetails.pageViews" + }, + "xdm": { + "eventMergeId": "5256835b-764b-41fd-82bc-0825a7896332", + "web": { + "webPageDetails": { + "URL": "https://main--cc--adobecom.hlx.page/drafts/mepdev/fragments/2024/q3/meppostlcp/?milolibs=meppostlcp&target=postlcp", + "siteSection": "main--cc--adobecom.hlx.page", + "server": "main--cc--adobecom.hlx.page", + "isErrorPage": false, + "isHomePage": false, + "name": "main--cc--adobecom.hlx.page:drafts:mepdev:fragments:2024:q3:meppostlcp", + "pageViews": { + "value": 1 + } + }, + "webReferrer": { + "URL": "" + } + }, + "device": { + "screenHeight": 1440, + "screenWidth": 3440, + "screenOrientation": "landscape" + }, + "environment": { + "type": "browser", + "browserDetails": { + "viewportWidth": 1510, + "viewportHeight": 1187, + "userAgentClientHints": { + "architecture": "x86", + "bitness": "64", + "model": "", + "platformVersion": "10.0.0", + "wow64": false + } + } + }, + "placeContext": { + "localTimezoneOffset": 360, + "localTime": "2024-10-14T13:56:38.118-06:00" + }, + "timestamp": "2024-10-14T19:56:38.118Z", + "implementationDetails": { + "name": "https://ns.adobe.com/experience/alloy", + "version": "2.22.0", + "environment": "browser" + } + }, + "i": 1, + "result": { + "destinations": [ + { + "type": "profileLookup", + "destinationId": "06de1b59-e830-4e14-80ec-375418680ea9", + "alias": "Web Personalization via XLG audience", + "segments": [ + { + "id": "1fe54fb3-8156-4247-ac8b-cb00462a1367", + "namespace": "ups" + } + ] + } + ], + "inferences": [], + "propositions": [ + { + "id": "AT:eyJhY3Rpdml0eUlkIjoiMTYxNjY2MyIsImV4cGVyaWVuY2VJZCI6IjAifQ==", + "scope": "__view__", + "scopeDetails": { + "decisionProvider": "TGT", + "activity": { + "id": "1616663" + }, + "experience": { + "id": "0" + }, + "strategies": [ + { + "step": "entry", + "trafficType": "0" + }, + { + "step": "display", + "trafficType": "0" + } + ], + "correlationID": "1616663:0:0" + }, + "items": [ + { + "id": "901343", + "schema": "https://ns.adobe.com/personalization/json-content-item", + "meta": { + "experience.id": "0", + "activity.name": "MWPW-153998 branch:meppostlcp - realistic example", + "activity.id": "1616663", + "option.name": "Offer2", + "experience.name": "Experience A", + "option.id": "2", + "offer.name": "MWPW-153998 branch:meppostlcp - realistic example", + "offer.id": "901343", + "profile.twentygroups": "Group15of20" + }, + "data": { + "id": "901343", + "format": "application/json", + "content": { + "manifestLocation": "https://main--cc--adobecom.hlx.page/drafts/mepdev/fragments/2024/q3/meppostlcp/manifest.json", + "manifestContent": { + "info": { + "total": 3, + "offset": 0, + "limit": 3, + "data": [ + { + "key": "manifest-type", + "value": "Promo" + }, + { + "key": "manifest-override-name", + "value": "" + }, + { + "key": "manifest-execution-order", + "value": "Normal" + } + ] + }, + "placeholders": { + "total": 0, + "offset": 0, + "limit": 0, + "data": [] + }, + "experiences": { + "total": 2, + "offset": 0, + "limit": 2, + "data": [ + { + "action": "replace", + "selector": "tabs row2 col2", + "page filter (optional)": "", + "all": "1" + }, + { + "action": "replace", + "selector": "any-marquee any-header", + "page filter (optional)": "", + "all": "PZN title" + } + ] + }, + ":version": 3, + ":names": [ + "info", + "placeholders", + "experiences" + ], + ":type": "multi-sheet" + } + } + } + } + ], + "renderAttempted": false + } + ], + "decisions": [ + { + "id": "AT:eyJhY3Rpdml0eUlkIjoiMTYxNjY2MyIsImV4cGVyaWVuY2VJZCI6IjAifQ==", + "scope": "__view__", + "scopeDetails": { + "decisionProvider": "TGT", + "activity": { + "id": "1616663" + }, + "experience": { + "id": "0" + }, + "strategies": [ + { + "step": "entry", + "trafficType": "0" + }, + { + "step": "display", + "trafficType": "0" + } + ], + "correlationID": "1616663:0:0" + }, + "items": [ + { + "id": "901343", + "schema": "https://ns.adobe.com/personalization/json-content-item", + "meta": { + "experience.id": "0", + "activity.name": "MWPW-153998 branch:meppostlcp - realistic example", + "activity.id": "1616663", + "option.name": "Offer2", + "experience.name": "Experience A", + "option.id": "2", + "offer.name": "MWPW-153998 branch:meppostlcp - realistic example", + "offer.id": "901343", + "profile.twentygroups": "Group15of20" + }, + "data": { + "id": "901343", + "format": "application/json", + "content": { + "manifestLocation": "https://main--cc--adobecom.hlx.page/drafts/mepdev/fragments/2024/q3/meppostlcp/manifest.json", + "manifestContent": { + "info": { + "total": 3, + "offset": 0, + "limit": 3, + "data": [ + { + "key": "manifest-type", + "value": "Promo" + }, + { + "key": "manifest-override-name", + "value": "" + }, + { + "key": "manifest-execution-order", + "value": "Normal" + } + ] + }, + "placeholders": { + "total": 0, + "offset": 0, + "limit": 0, + "data": [] + }, + "experiences": { + "total": 2, + "offset": 0, + "limit": 2, + "data": [ + { + "action": "replace", + "selector": "tabs row2 col2", + "page filter (optional)": "", + "all": "1" + }, + { + "action": "replace", + "selector": "any-marquee any-header", + "page filter (optional)": "", + "all": "PZN title" + } + ] + }, + ":version": 3, + ":names": [ + "info", + "placeholders", + "experiences" + ], + ":type": "multi-sheet" + } + } + } + } + ] + } + ] + } + } +} diff --git a/test/features/personalization/pageFilter.test.js b/test/features/personalization/pageFilter.test.js index 0a08e45481..150e20e33d 100644 --- a/test/features/personalization/pageFilter.test.js +++ b/test/features/personalization/pageFilter.test.js @@ -6,11 +6,10 @@ import { init } from '../../../libs/features/personalization/personalization.js' import mepSettings from './mepSettings.js'; document.body.innerHTML = await readFile({ path: './mocks/personalization.html' }); +const config = getConfig(); +config.env = { name: 'prod' }; it('pageFilter should exclude page if it is not a match', async () => { - const config = getConfig(); - config.env = { name: 'prod' }; - let manifestJson = await readFile({ path: './mocks/manifestPageFilterExclude.json' }); manifestJson = JSON.parse(manifestJson); const replacePageHtml = await readFile({ path: './mocks/fragments/replacePage.plain.html' }); @@ -24,7 +23,7 @@ it('pageFilter should exclude page if it is not a match', async () => { }); }), ); - window.fetch.onCall(1).returns( + window.fetch.onCall(2).returns( new Promise((resolve) => { resolve({ ok: true, @@ -44,9 +43,6 @@ it('pageFilter should exclude page if it is not a match', async () => { }); it('pageFilter should include page if it is a match', async () => { - const config = getConfig(); - config.env = { name: 'prod' }; - let manifestJson = await readFile({ path: './mocks/manifestPageFilterInclude.json' }); manifestJson = JSON.parse(manifestJson); const replacePageHtml = await readFile({ path: './mocks/fragments/replacePage.plain.html' }); @@ -60,7 +56,7 @@ it('pageFilter should include page if it is a match', async () => { }); }), ); - window.fetch.onCall(1).returns( + window.fetch.onCall(2).returns( new Promise((resolve) => { resolve({ ok: true, diff --git a/test/features/personalization/replacePage.test.js b/test/features/personalization/replacePage.test.js index 3ea70387f5..d05a09f615 100644 --- a/test/features/personalization/replacePage.test.js +++ b/test/features/personalization/replacePage.test.js @@ -24,7 +24,7 @@ it('replacePage should replace all of the main block', async () => { }); }), ); - window.fetch.onCall(1).returns( + window.fetch.onCall(2).returns( new Promise((resolve) => { resolve({ ok: true, diff --git a/test/features/personalization/targetIntegration.test.js b/test/features/personalization/targetIntegration.test.js new file mode 100644 index 0000000000..432dcf3c79 --- /dev/null +++ b/test/features/personalization/targetIntegration.test.js @@ -0,0 +1,56 @@ +import { expect } from '@esm-bundle/chai'; +import { readFile } from '@web/test-runner-commands'; +import { getConfig } from '../../../libs/utils/utils.js'; +import { init } from '../../../libs/features/personalization/personalization.js'; + +const mepSettings = { + mepParam: '', + mepHighlight: false, + mepButton: false, + pzn: '', + promo: false, + target: true, +}; +const titleSelector = 'h2'; +const activeTabSelector = '.tabs > div:nth-child(2) > div:nth-child(2)'; +const htmlReset = await readFile({ path: './mocks/targetIntegration.html' }); +const targetResponse = JSON.parse(await readFile({ path: './mocks/targetResponse.json' })); +const config = getConfig(); + +function mockTargetResponse(timeout = 50) { + const event = new CustomEvent('alloy_sendEvent', { detail: targetResponse }); + setTimeout(() => { + window.dispatchEvent(event); + }, timeout); +} + +describe('Target integration settings', () => { + beforeEach(() => { + document.body.innerHTML = htmlReset; + config.mep = {}; + }); + it('makes 2 updates when Target is enabled', async () => { + const title = document.querySelector(titleSelector); + const activeTab = document.querySelector(activeTabSelector); + expect(title.innerText).to.equal('Headline before Target update'); + expect(activeTab.innerText).to.equal('2'); + mockTargetResponse(); + await init(mepSettings); + expect(title.innerText).to.equal('PZN title'); + expect(activeTab.innerText).to.equal('1'); + }); + it('makes 1 update when Target is postLCP', async () => { + mepSettings.target = 'postlcp'; + const title = document.querySelector(titleSelector); + const activeTab = document.querySelector(activeTabSelector); + expect(title.innerText).to.equal('Headline before Target update'); + expect(activeTab.innerText).to.equal('2'); + mockTargetResponse(); + await init(mepSettings); + expect(title.innerText).to.equal('Headline before Target update'); + expect(activeTab.innerText).to.equal('2'); + await init({ postLCP: true }); + expect(title.innerText).to.equal('Headline before Target update'); + expect(activeTab.innerText).to.equal('1'); + }); +}); diff --git a/test/utils/mocks/mep/head-target-gnav.html b/test/utils/mocks/mep/head-target-postlcp.html similarity index 61% rename from test/utils/mocks/mep/head-target-gnav.html rename to test/utils/mocks/mep/head-target-postlcp.html index ae03fcc998..a6e5366c20 100644 --- a/test/utils/mocks/mep/head-target-gnav.html +++ b/test/utils/mocks/mep/head-target-postlcp.html @@ -1,3 +1,3 @@ - + Document Title diff --git a/test/utils/utils-mep-gnav.test.js b/test/utils/utils-mep-gnav.test.js index 524184bf64..7dac40700c 100644 --- a/test/utils/utils-mep-gnav.test.js +++ b/test/utils/utils-mep-gnav.test.js @@ -38,10 +38,10 @@ describe('Utils - MEP GNav', () => { it('have target be set to gnav and save in config', async () => { window.fetch = sinon.stub().returns(htmlResponse()); - document.head.innerHTML = await readFile({ path: './mocks/mep/head-target-gnav.html' }); + document.head.innerHTML = await readFile({ path: './mocks/mep/head-target-postlcp.html' }); await utils.loadArea(); const resultConfig = utils.getConfig(); - expect(resultConfig.mep.targetEnabled).to.equal('gnav'); + expect(resultConfig.mep.targetEnabled).to.equal('postlcp'); }); }); }); diff --git a/test/utils/utils-mep-with-params.test.js b/test/utils/utils-mep-with-params.test.js index e813619f5b..8eb2fa0795 100644 --- a/test/utils/utils-mep-with-params.test.js +++ b/test/utils/utils-mep-with-params.test.js @@ -7,14 +7,14 @@ describe('MEP Utils', () => { describe('getMepEnablement', async () => { it('checks param overwrites', async () => { document.head.innerHTML = await readFile({ path: './mocks/mep/head-promo.html' }); - spoofParams({ target: 'gnav', promo: 'off', personalization: 'off' }); + spoofParams({ target: 'postlcp', promo: 'off', personalization: 'off' }); setTimeout(() => { const persEnabled = getMepEnablement('personalization'); const promoEnabled = getMepEnablement('manifestnames', 'promo'); const targetEnabled = getMepEnablement('target'); expect(promoEnabled).to.equal(false); expect(persEnabled).to.equal(false); - expect(targetEnabled).to.equal('gnav'); + expect(targetEnabled).to.equal('postlcp'); }, 1000); }); }); diff --git a/test/utils/utils-mep.test.js b/test/utils/utils-mep.test.js index e2afe54b64..8b161acb5e 100644 --- a/test/utils/utils-mep.test.js +++ b/test/utils/utils-mep.test.js @@ -43,10 +43,10 @@ describe('MEP Utils', () => { const targetEnabled = getMepEnablement('target'); expect(targetEnabled).to.equal(false); }); - it('checks target metadata set to gnav', async () => { - document.head.innerHTML = await readFile({ path: './mocks/mep/head-target-gnav.html' }); + it('checks target metadata set to postlcp', async () => { + document.head.innerHTML = await readFile({ path: './mocks/mep/head-target-postlcp.html' }); const targetEnabled = getMepEnablement('target'); - expect(targetEnabled).to.equal('gnav'); + expect(targetEnabled).to.equal('postlcp'); }); it('checks from just metadata with no target metadata', async () => { document.head.innerHTML = await readFile({ path: './mocks/mep/head-promo.html' }); From 7255d63b659dcf8a5ab3a1ba6df3ed6905833126 Mon Sep 17 00:00:00 2001 From: Megan Thomas Date: Wed, 30 Oct 2024 10:35:57 -0700 Subject: [PATCH 6/9] MWPW-157460 Allow Ungated Marketo One Page Experience (#3071) * MWPW-157460 Allow Ungated Marketo One Page Experience * update tests * remove unnecessary preference fix * cr - variables and remove try catch * remove error test html * add success type check Co-authored-by: Brandon Marshall * fix syntax --------- Co-authored-by: Brandon Marshall --- libs/blocks/marketo/marketo.js | 60 ++++++++++++++----- test/blocks/marketo/marketo.test.js | 54 ++++++++++++++++- .../marketo/mocks/one-page-experience.html | 55 +++++++++++++++++ 3 files changed, 154 insertions(+), 15 deletions(-) create mode 100644 test/blocks/marketo/mocks/one-page-experience.html diff --git a/libs/blocks/marketo/marketo.js b/libs/blocks/marketo/marketo.js index d558cfcdba..a99f83500a 100644 --- a/libs/blocks/marketo/marketo.js +++ b/libs/blocks/marketo/marketo.js @@ -38,6 +38,7 @@ const FORM_MAP = { 'co-partner-names': 'program.copartnernames', 'sfdc-campaign-id': 'program.campaignids.sfdc', }; +export const FORM_PARAM = 'form'; export const formValidate = (formEl) => { formEl.classList.remove('hide-errors'); @@ -69,7 +70,7 @@ export const decorateURL = (destination, baseURL = window.location) => { return destinationUrl.href; } catch (e) { /* c8 ignore next 4 */ - window.lana?.log(`Error with Marketo destination URL: ${destination} ${e.message}`); + window.lana?.log(`Error with Marketo destination URL: ${destination} ${e.message}`, { tags: 'error,marketo' }); } return null; @@ -91,6 +92,38 @@ export const setPreferences = (formData) => { Object.entries(formData).forEach(([key, value]) => setPreference(key, value)); }; +const showSuccessSection = (formData, scroll = true) => { + const show = (el) => { + el.classList.remove('hide-block'); + if (scroll) el.scrollIntoView({ behavior: 'smooth' }); + }; + const successClass = formData[SUCCESS_SECTION]?.toLowerCase().replaceAll(' ', '-'); + if (!successClass) { + window.lana?.log('Error showing Marketo success section', { tags: 'warn,marketo' }); + return; + } + const section = document.querySelector(`.section.${successClass}`); + if (section) { + show(section); + return; + } + // For Marquee use case + const maxIntervals = 6; + let count = 0; + const interval = setInterval(() => { + const el = document.querySelector(`.section.${successClass}`); + if (el) { + clearInterval(interval); + show(el); + } + count += 1; + if (count > maxIntervals) { + clearInterval(interval); + window.lana?.log('Error showing Marketo success section', { tags: 'warn,marketo' }); + } + }, 500); +}; + export const formSuccess = (formEl, formData) => { const el = formEl.closest('.marketo'); const parentModal = formEl?.closest('.dialog-modal'); @@ -108,18 +141,8 @@ export const formSuccess = (formEl, formData) => { } if (formData?.[SUCCESS_TYPE] !== 'section') return true; - - try { - const section = formData[SUCCESS_SECTION].toLowerCase().replaceAll(' ', '-'); - const success = document.querySelector(`.section.${section}`); - success.classList.remove('hide-block'); - success.scrollIntoView({ behavior: 'smooth' }); - setPreference(SUCCESS_TYPE, 'message'); - } catch (e) { - /* c8 ignore next 2 */ - window.lana?.log('Error showing Marketo success section', { tags: 'errorType=warn,module=marketo' }); - } - + showSuccessSection(formData); + setPreference(SUCCESS_TYPE, 'message'); return false; }; @@ -161,7 +184,7 @@ export const loadMarketo = (el, formData) => { .catch(() => { /* c8 ignore next 2 */ el.style.display = 'none'; - window.lana?.log(`Error loading Marketo form for ${munchkinID}_${formID}`, { tags: 'errorType=error,module=marketo' }); + window.lana?.log(`Error loading Marketo form for ${munchkinID}_${formID}`, { tags: 'error,marketo' }); }); }; @@ -198,6 +221,15 @@ export default function init(el) { return; } + const searchParams = new URLSearchParams(window.location.search); + const ungated = searchParams.get(FORM_PARAM) === 'off'; + + if (formData[SUCCESS_TYPE] === 'section' && ungated) { + el.classList.add('hide-block'); + showSuccessSection(formData, false); + return; + } + formData[SUCCESS_TYPE] = formData[SUCCESS_TYPE] || 'redirect'; if (formData[SUCCESS_TYPE] === 'redirect') { diff --git a/test/blocks/marketo/marketo.test.js b/test/blocks/marketo/marketo.test.js index b986b6b2cb..2a8fa9e91d 100644 --- a/test/blocks/marketo/marketo.test.js +++ b/test/blocks/marketo/marketo.test.js @@ -1,10 +1,12 @@ import { readFile } from '@web/test-runner-commands'; import { expect } from '@esm-bundle/chai'; +import sinon, { stub } from 'sinon'; import { delay } from '../../helpers/waitfor.js'; import { setConfig } from '../../../libs/utils/utils.js'; -import init, { setPreferences, decorateURL } from '../../../libs/blocks/marketo/marketo.js'; +import init, { setPreferences, decorateURL, FORM_PARAM } from '../../../libs/blocks/marketo/marketo.js'; const innerHTML = await readFile({ path: './mocks/body.html' }); +window.lana = { log: stub() }; describe('marketo', () => { beforeEach(() => { @@ -104,3 +106,53 @@ describe('marketo decorateURL', () => { expect(result).to.be.null; }); }); + +const onePage = await readFile({ path: './mocks/one-page-experience.html' }); + +describe('Marketo ungated one page experience', () => { + let url; + let clock; + + beforeEach(() => { + url = new URL(window.location); + url.searchParams.set(FORM_PARAM, 'off'); + window.history.pushState({}, '', url); + document.body.innerHTML = onePage; + clock = sinon.useFakeTimers(); + }); + + afterEach(() => { + url.searchParams.delete(FORM_PARAM); + window.history.pushState({}, '', url); + clock.restore(); + }); + + it('shows success section', () => { + init(document.querySelector('.marketo')); + expect(document.querySelector('.section.form-success').classList.contains('hide-block')).to.be.false; + }); + + it('shows success section that appears after marketo', () => { + document.querySelector('#success-section').classList.remove('form-success'); + init(document.querySelector('.marketo')); + expect(document.querySelector('#success-section').classList.contains('hide-block')).to.be.true; + document.querySelector('#success-section').classList.add('form-success'); + clock.tick(500); + expect(document.querySelector('#success-section').classList.contains('hide-block')).to.be.false; + }); + + it('logs error if success section is not provided', async () => { + document.querySelector('#success-data').remove(); + init(document.querySelector('.marketo')); + expect(window.lana.log.args[0][0]).to.equal('Error showing Marketo success section'); + }); + + it('logs error if success section does not appear after maximum intervals', async () => { + document.querySelector('#success-section').classList.remove('form-success'); + + init(document.querySelector('.marketo')); + expect(document.querySelector('#success-section').classList.contains('hide-block')).to.be.true; + clock.runAll(); + expect(window.lana.log.args[0][0]).to.equal('Error showing Marketo success section'); + }); +}); diff --git a/test/blocks/marketo/mocks/one-page-experience.html b/test/blocks/marketo/mocks/one-page-experience.html new file mode 100644 index 0000000000..b7c864380e --- /dev/null +++ b/test/blocks/marketo/mocks/one-page-experience.html @@ -0,0 +1,55 @@ +
+

Form Success

+ +
+
+
+
+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus mi id tincidunt pretium. Praesent a porta ex. + Etiam eu metus urna. Etiam vulputate nibh nisi, sed gravida diam dictum id. Cras et justo metus. Morbi consectetur + diam eu mi ultricies, molestie efficitur quam posuere. Integer iaculis euismod pulvinar.

+
+
+
+
+ +
+
Title
+
New Title
+
+
+
Description
+
New Description
+
+
+
Destination Type
+
section
+
+
+
Success Section
+
form success
+
+
+
Success Content
+
Thank you
+
+
+ +
From fa39a05dc130baacbd0cee5e729aae70195a5eff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilyas=20T=C3=BCrkben?= Date: Wed, 30 Oct 2024 18:36:04 +0100 Subject: [PATCH 7/9] MWPW-160015: M@S: support for mnemonic multifield (#3075) * MWPW-160015: M@S: support for mnemonic multifield during card hydration. * updated deps --- libs/deps/mas/mas.js | 132 +++++++++--------- libs/features/mas/mas/dist/mas.js | 132 +++++++++--------- .../mas/web-components/src/aem-fragment.js | 13 +- .../test/aem-fragment.test.html.js | 38 +++-- 4 files changed, 157 insertions(+), 158 deletions(-) diff --git a/libs/deps/mas/mas.js b/libs/deps/mas/mas.js index 3ccd962176..168d14d4f3 100644 --- a/libs/deps/mas/mas.js +++ b/libs/deps/mas/mas.js @@ -1,10 +1,10 @@ -var ss=Object.create;var jt=Object.defineProperty;var cs=Object.getOwnPropertyDescriptor;var ls=Object.getOwnPropertyNames;var hs=Object.getPrototypeOf,ds=Object.prototype.hasOwnProperty;var ki=e=>{throw TypeError(e)};var us=(e,t,r)=>t in e?jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var ms=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ps=(e,t)=>{for(var r in t)jt(e,r,{get:t[r],enumerable:!0})},fs=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ls(t))!ds.call(e,i)&&i!==r&&jt(e,i,{get:()=>t[i],enumerable:!(n=cs(t,i))||n.enumerable});return e};var gs=(e,t,r)=>(r=e!=null?ss(hs(e)):{},fs(t||!e||!e.__esModule?jt(r,"default",{value:e,enumerable:!0}):r,e));var p=(e,t,r)=>us(e,typeof t!="symbol"?t+"":t,r),$r=(e,t,r)=>t.has(e)||ki("Cannot "+r);var F=(e,t,r)=>($r(e,t,"read from private field"),r?r.call(e):t.get(e)),B=(e,t,r)=>t.has(e)?ki("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),ft=(e,t,r,n)=>($r(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),Ge=(e,t,r)=>($r(e,t,"access private method"),r);var zo=ms((qd,cl)=>{cl.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 gt;(function(e){e.STAGE="STAGE",e.PRODUCTION="PRODUCTION",e.LOCAL="LOCAL"})(gt||(gt={}));var Mr;(function(e){e.STAGE="STAGE",e.PRODUCTION="PROD",e.LOCAL="LOCAL"})(Mr||(Mr={}));var xt;(function(e){e.DRAFT="DRAFT",e.PUBLISHED="PUBLISHED"})(xt||(xt={}));var Ee;(function(e){e.V2="UCv2",e.V3="UCv3"})(Ee||(Ee={}));var X;(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"})(X||(X={}));var Ur=function(e){var t;return(t=xs.get(e))!==null&&t!==void 0?t:e},xs=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 Oi=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.")},Vi=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 He(e,t,r){var n,i;try{for(var o=Oi(Object.entries(e)),a=o.next();!a.done;a=o.next()){var s=Vi(a.value,2),c=s[0],l=s[1],h=Ur(c);l!=null&&r.has(h)&&t.set(h,l)}}catch(d){n={error:d}}finally{try{a&&!a.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}}function Yt(e){switch(e){case gt.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,Oi(Object.entries(o))),s=a.next();!s.done;s=a.next()){var c=Vi(s.value,2),l=c[0],h=c[1];if(h!=null){var d=Ur(l);t.set("items["+i+"]["+d+"]",h)}}}catch(u){r={error:u}}finally{try{s&&!s.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}}}var vs=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 Ri(e){Ss(e);var t=e.env,r=e.items,n=e.workflowStep,i=vs(e,["env","items","workflowStep"]),o=new URL(Yt(t));return o.pathname=n+"/",Xt(r,o.searchParams),He(i,o.searchParams,As),o.toString()}var As=new Set(["cli","co","lang","ctx","cUrl","mv","nglwfdata","otac","promoid","rUrl","sdid","spint","trackingid","code","campaignid","appctxid"]),Es=["env","workflowStep","clientId","country","items"];function Ss(e){var t,r;try{for(var n=bs(Es),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 ys=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.")},_s="p_draft_landscape",Ls="/store/";function Gr(e){Ps(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,d=ys(e,["env","items","workflowStep","ms","marketSegment","ot","offerType","pa","productArrangementCode","landscape"]),u={marketSegment:o??i,offerType:s??a,productArrangementCode:l??c},m=new URL(Yt(t));return m.pathname=""+Ls+n,n!==X.SEGMENTATION&&n!==X.CHANGE_PLAN_TEAM_PLANS&&Xt(r,m.searchParams),n===X.SEGMENTATION&&He(u,m.searchParams,Dr),He(d,m.searchParams,Dr),h===xt.DRAFT&&He({af:_s},m.searchParams,Dr),m.toString()}var Dr=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"]),ws=["env","workflowStep","clientId","country"];function Ps(e){var t,r;try{for(var n=Ts(ws),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!==X.SEGMENTATION&&e.workflowStep!==X.CHANGE_PLAN_TEAM_PLANS&&!e.items)throw new Error('Argument "checkoutData" is not valid, missing: items');return!0}function Hr(e,t){switch(e){case Ee.V2:return Ri(t);case Ee.V3:return Gr(t);default:return console.warn("Unsupported CheckoutType, will use UCv3 as default. Given type: "+e),Gr(t)}}var zr;(function(e){e.BASE="BASE",e.TRIAL="TRIAL",e.PROMOTION="PROMOTION"})(zr||(zr={}));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 Fr;(function(e){e.INDIVIDUAL="INDIVIDUAL",e.TEAM="TEAM",e.ENTERPRISE="ENTERPRISE"})(Fr||(Fr={}));var Kr;(function(e){e.COM="COM",e.EDU="EDU",e.GOV="GOV"})(Kr||(Kr={}));var Br;(function(e){e.DIRECT="DIRECT",e.INDIRECT="INDIRECT"})(Br||(Br={}));var jr;(function(e){e.ENTERPRISE_PRODUCT="ENTERPRISE_PRODUCT",e.ETLA="ETLA",e.RETAIL="RETAIL",e.VIP="VIP",e.VIPMP="VIPMP",e.FREE="FREE"})(jr||(jr={}));var $i="tacocat.js";var Wt=(e,t)=>String(e??"").toLowerCase()==String(t??"").toLowerCase(),Mi=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=ze(n)?n:e;o=a.get(s)}if(i&&o==null){let a=ze(i)?i:e;o=window.sessionStorage.getItem(a)??window.localStorage.getItem(a)}if(r&&o==null){let a=Cs(ze(r)?r:e);o=document.documentElement.querySelector(`meta[name="${a}"]`)?.content}return o??t[e]}var Fe=()=>{};var Ui=e=>typeof e=="boolean",vt=e=>typeof e=="function",qt=e=>typeof e=="number",Di=e=>e!=null&&typeof e=="object";var ze=e=>typeof e=="string",Yr=e=>ze(e)&&e,Ke=e=>qt(e)&&Number.isFinite(e)&&e>0;function Be(e,t=r=>r==null||r===""){return e!=null&&Object.entries(e).forEach(([r,n])=>{t(n)&&delete e[r]}),e}function S(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 Cs(e=""){return String(e).replace(/(\p{Lowercase_Letter})(\p{Uppercase_Letter})/gu,(t,r,n)=>`${r}-${n}`).replace(/\W+/gu,"-").toLowerCase()}function je(e,t=1){return qt(e)||(e=Number.parseInt(e,10)),!Number.isNaN(e)&&e>0&&Number.isFinite(e)?e:t}var Is=Date.now(),Xr=()=>`(+${Date.now()-Is}ms)`,Zt=new Set,Ns=S(O("tacocat.debug",{},{metadata:!1}),typeof process<"u"&&process.env?.DEBUG);function Gi(e){let t=`[${$i}/${e}]`,r=(a,s,...c)=>a?!0:(i(s,...c),!1),n=Ns?(a,...s)=>{console.debug(`${t} ${a}`,...s,Xr())}:()=>{},i=(a,...s)=>{let c=`${t} ${a}`;Zt.forEach(([l])=>l(c,...s))};return{assert:r,debug:n,error:i,warn:(a,...s)=>{let c=`${t} ${a}`;Zt.forEach(([,l])=>l(c,...s))}}}function ks(e,t){let r=[e,t];return Zt.add(r),()=>{Zt.delete(r)}}ks((e,...t)=>{console.error(e,...t,Xr())},(e,...t)=>{console.warn(e,...t,Xr())});var Os="no promo",Hi="promo-tag",Vs="yellow",Rs="neutral",$s=(e,t,r)=>{let n=o=>o||Os,i=r?` (was "${n(t)}")`:"";return`${n(e)}${i}`},Ms="cancel-context",bt=(e,t)=>{let r=e===Ms,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?Hi:`${Hi} no-promo`,text:$s(a,t,i),variant:o?Vs:Rs,isOverriden:i}};var Wr="ABM",qr="PUF",Zr="M2M",Jr="PERPETUAL",Qr="P3Y",Us="TAX_INCLUSIVE_DETAILS",Ds="TAX_EXCLUSIVE",zi={ABM:Wr,PUF:qr,M2M:Zr,PERPETUAL:Jr,P3Y:Qr},ch={[Wr]:{commitment:$.YEAR,term:k.MONTHLY},[qr]:{commitment:$.YEAR,term:k.ANNUAL},[Zr]:{commitment:$.MONTH,term:k.MONTHLY},[Jr]:{commitment:$.PERPETUAL,term:void 0},[Qr]:{commitment:$.THREE_MONTHS,term:k.P3Y}},Fi="Value is not an offer",Jt=e=>{if(typeof e!="object")return Fi;let{commitment:t,term:r}=e,n=Gs(t,r);return{...e,planType:n}};var Gs=(e,t)=>{switch(e){case void 0:return Fi;case"":return"";case $.YEAR:return t===k.MONTHLY?Wr:t===k.ANNUAL?qr:"";case $.MONTH:return t===k.MONTHLY?Zr:"";case $.PERPETUAL:return Jr;case $.TERM_LICENSE:return t===k.P3Y?Qr:"";default:return""}};function en(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:Ds}};return s.offerType==="TRIAL"&&s.priceDetails.price===0&&(s.priceDetails.price=s.priceDetails.priceWithoutDiscount),s}var tn=function(e,t){return tn=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])},tn(e,t)};function At(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");tn(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(Fs,function(s,c,l,h,d,u){if(c)t.minimumIntegerDigits=l.length;else{if(h&&d)throw new Error("We currently do not support maximum integer digits");if(u)throw new Error("We currently do not support exact integer digits")}return""});continue}if(Qi.test(i.stem)){t.minimumIntegerDigits=i.stem.length;continue}if(Xi.test(i.stem)){if(i.options.length>1)throw new RangeError("Fraction-precision stems only accept a single optional option");i.stem.replace(Xi,function(s,c,l,h,d,u){return l==="*"?t.minimumFractionDigits=c.length:h&&h[0]==="#"?t.maximumFractionDigits=h.length:d&&u?(t.minimumFractionDigits=d.length,t.maximumFractionDigits=d.length+u.length):(t.minimumFractionDigits=c.length,t.maximumFractionDigits=c.length),""}),i.options.length&&(t=E(E({},t),Wi(i.options[0])));continue}if(Ji.test(i.stem)){t=E(E({},t),Wi(i.stem));continue}var o=eo(i.stem);o&&(t=E(E({},t),o));var a=Ks(i.stem);a&&(t=E(E({},t),a))}return t}var on,Bs=new RegExp("^"+nn.source+"*"),js=new RegExp(nn.source+"*$");function b(e,t){return{start:e,end:t}}var Ys=!!String.prototype.startsWith,Xs=!!String.fromCodePoint,Ws=!!Object.fromEntries,qs=!!String.prototype.codePointAt,Zs=!!String.prototype.trimStart,Js=!!String.prototype.trimEnd,Qs=!!Number.isSafeInteger,ec=Qs?Number.isSafeInteger:function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e&&Math.abs(e)<=9007199254740991},sn=!0;try{ro=ao("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu"),sn=((on=ro.exec("a"))===null||on===void 0?void 0:on[0])==="a"}catch{sn=!1}var ro,no=Ys?function(t,r,n){return t.startsWith(r,n)}:function(t,r,n){return t.slice(n,n+r.length)===r},cn=Xs?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},io=Ws?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}},tc=Zs?function(t){return t.trimStart()}:function(t){return t.replace(Bs,"")},rc=Js?function(t){return t.trimEnd()}:function(t){return t.replace(js,"")};function ao(e,t){return new RegExp(e,t)}var ln;sn?(an=ao("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu"),ln=function(t,r){var n;an.lastIndex=r;var i=an.exec(t);return(n=i[1])!==null&&n!==void 0?n:""}):ln=function(t,r){for(var n=[];;){var i=oo(t,r);if(i===void 0||co(i)||oc(i))break;n.push(i),r+=i>=65536?2:1}return cn.apply(void 0,n)};var an,so=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:C.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&&hn(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:C.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:C.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()&&ic(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:C.literal,value:i,location:c},err:null}},e.prototype.tryParseLeftAngleBracket=function(){return!this.isEOF()&&this.char()===60&&(this.ignoreTag||!nc(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 cn.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(),cn(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:C.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=ln(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(),d=this.parseSimpleArgStyleIfPossible();if(d.err)return d;var u=rc(d.val);if(u.length===0)return this.error(v.EXPECT_ARGUMENT_STYLE,b(this.clonePosition(),this.clonePosition()));var m=b(h,this.clonePosition());l={style:u,styleLocation:m}}var g=this.tryParseArgumentClose(i);if(g.err)return g;var f=b(i,this.clonePosition());if(l&&no(l?.style,"::",0)){var L=tc(l.style.slice(2));if(s==="number"){var d=this.parseNumberSkeletonFromString(L,l.styleLocation);return d.err?d:{val:{type:C.number,value:n,location:f,style:d.val},err:null}}else{if(L.length===0)return this.error(v.EXPECT_DATE_TIME_SKELETON,f);var u={type:Se.dateTime,pattern:L,location:l.styleLocation,parsedOptions:this.shouldParseSkeletons?ji(L):{}},I=s==="date"?C.date:C.time;return{val:{type:I,value:n,location:f,style:u},err:null}}}return{val:{type:s==="number"?C.number:s==="date"?C.date:C.time,value:n,location:f,style:(o=l?.style)!==null&&o!==void 0?o:null},err:null}}case"plural":case"selectordinal":case"select":{var A=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(","))return this.error(v.EXPECT_SELECT_ARGUMENT_OPTIONS,b(A,E({},A)));this.bumpSpace();var T=this.parseIdentifierIfPossible(),R=0;if(s!=="select"&&T.value==="offset"){if(!this.bumpIf(":"))return this.error(v.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,b(this.clonePosition(),this.clonePosition()));this.bumpSpace();var d=this.tryParseDecimalInteger(v.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,v.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);if(d.err)return d;this.bumpSpace(),T=this.parseIdentifierIfPossible(),R=d.val}var _=this.tryParsePluralOrSelectOptions(t,s,r,T);if(_.err)return _;var g=this.tryParseArgumentClose(i);if(g.err)return g;var z=b(i,this.clonePosition());return s==="select"?{val:{type:C.select,value:n,options:io(_.val),location:z},err:null}:{val:{type:C.plural,value:n,options:io(_.val),offset:R,pluralType:s==="plural"?"cardinal":"ordinal",location:z},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=Zi(t)}catch{return this.error(v.INVALID_NUMBER_SKELETON,r)}return{val:{type:Se.number,tokens:n,location:r,parsedOptions:this.shouldParseSkeletons?to(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 d=this.clonePosition();if(r!=="select"&&this.bumpIf("=")){var u=this.tryParseDecimalInteger(v.EXPECT_PLURAL_ARGUMENT_SELECTOR,v.INVALID_PLURAL_ARGUMENT_SELECTOR);if(u.err)return u;h=b(d,this.clonePosition()),l=this.message.slice(d.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 g=this.parseMessage(t+1,r,n);if(g.err)return g;var f=this.tryParseArgumentClose(m);if(f.err)return f;s.push([l,{value:g.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,ec(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=oo(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(no(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()&&co(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 hn(e){return e>=97&&e<=122||e>=65&&e<=90}function nc(e){return hn(e)||e===47}function ic(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 co(e){return e>=9&&e<=13||e===32||e===133||e>=8206&&e<=8207||e===8232||e===8233}function oc(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 dn(e){e.forEach(function(t){if(delete t.location,nr(t)||ir(t))for(var r in t.options)delete t.options[r].location,dn(t.options[r].value);else er(t)&&ar(t.style)||(tr(t)||rr(t))&&Et(t.style)?delete t.style.location:or(t)&&dn(t.children)})}function lo(e,t){t===void 0&&(t={}),t=E({shouldParseSkeletons:!0,requiresOtherClause:!0},t);var r=new so(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||dn(r.val),r.val}function St(e,t){var r=t&&t.cache?t.cache:dc,n=t&&t.serializer?t.serializer:hc,i=t&&t.strategy?t.strategy:sc;return i(e,{cache:r,serializer:n})}function ac(e){return e==null||typeof e=="number"||typeof e=="boolean"}function ho(e,t,r,n){var i=ac(n)?n:r(n),o=t.get(i);return typeof o>"u"&&(o=e.call(this,n),t.set(i,o)),o}function uo(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 un(e,t,r,n,i){return r.bind(t,e,n,i)}function sc(e,t){var r=e.length===1?ho:uo;return un(e,this,r,t.cache.create(),t.serializer)}function cc(e,t){return un(e,this,uo,t.cache.create(),t.serializer)}function lc(e,t){return un(e,this,ho,t.cache.create(),t.serializer)}var hc=function(){return JSON.stringify(arguments)};function mn(){this.cache=Object.create(null)}mn.prototype.get=function(e){return this.cache[e]};mn.prototype.set=function(e,t){this.cache[e]=t};var dc={create:function(){return new mn}},sr={variadic:cc,monadic:lc};var ye;(function(e){e.MISSING_VALUE="MISSING_VALUE",e.INVALID_VALUE="INVALID_VALUE",e.MISSING_INTL_API="MISSING_INTL_API"})(ye||(ye={}));var yt=function(e){At(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 pn=function(e){At(t,e);function t(r,n,i,o){return e.call(this,'Invalid values for "'+r+'": "'+n+'". Options are "'+Object.keys(i).join('", "')+'"',ye.INVALID_VALUE,o)||this}return t}(yt);var mo=function(e){At(t,e);function t(r,n,i){return e.call(this,'Value for "'+r+'" must be of type '+n,ye.INVALID_VALUE,i)||this}return t}(yt);var po=function(e){At(t,e);function t(r,n){return e.call(this,'The intl string context variable "'+r+'" was not provided to the string "'+n+'"',ye.MISSING_VALUE,n)||this}return t}(yt);var G;(function(e){e[e.literal=0]="literal",e[e.object=1]="object"})(G||(G={}));function uc(e){return e.length<2?e:e.reduce(function(t,r){var n=t[t.length-1];return!n||n.type!==G.literal||r.type!==G.literal?t.push(r):n.value+=r.value,t},[])}function mc(e){return typeof e=="function"}function Tt(e,t,r,n,i,o,a){if(e.length===1&&rn(e[0]))return[{type:G.literal,value:e[0].value}];for(var s=[],c=0,l=e;c{throw TypeError(e)};var ms=(e,t,r)=>t in e?Yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var ps=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),fs=(e,t)=>{for(var r in t)Yt(e,r,{get:t[r],enumerable:!0})},gs=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of hs(t))!us.call(e,i)&&i!==r&&Yt(e,i,{get:()=>t[i],enumerable:!(n=ls(t,i))||n.enumerable});return e};var xs=(e,t,r)=>(r=e!=null?cs(ds(e)):{},gs(t||!e||!e.__esModule?Yt(r,"default",{value:e,enumerable:!0}):r,e));var p=(e,t,r)=>ms(e,typeof t!="symbol"?t+"":t,r),Mr=(e,t,r)=>t.has(e)||Oi("Cannot "+r);var M=(e,t,r)=>(Mr(e,t,"read from private field"),r?r.call(e):t.get(e)),K=(e,t,r)=>t.has(e)?Oi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),pe=(e,t,r,n)=>(Mr(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),ze=(e,t,r)=>(Mr(e,t,"access private method"),r);var Fo=ps((Zd,ll)=>{ll.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 xt;(function(e){e.STAGE="STAGE",e.PRODUCTION="PRODUCTION",e.LOCAL="LOCAL"})(xt||(xt={}));var Ur;(function(e){e.STAGE="STAGE",e.PRODUCTION="PROD",e.LOCAL="LOCAL"})(Ur||(Ur={}));var vt;(function(e){e.DRAFT="DRAFT",e.PUBLISHED="PUBLISHED"})(vt||(vt={}));var ye;(function(e){e.V2="UCv2",e.V3="UCv3"})(ye||(ye={}));var X;(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"})(X||(X={}));var Dr=function(e){var t;return(t=vs.get(e))!==null&&t!==void 0?t:e},vs=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 Vi=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.")},Ri=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=Vi(Object.entries(e)),a=o.next();!a.done;a=o.next()){var s=Ri(a.value,2),c=s[0],l=s[1],h=Dr(c);l!=null&&r.has(h)&&t.set(h,l)}}catch(d){n={error:d}}finally{try{a&&!a.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}}function Xt(e){switch(e){case xt.PRODUCTION:return"https://commerce.adobe.com";default:return"https://commerce-stg.adobe.com"}}function Wt(e,t){var r,n;for(var i in e){var o=e[i];try{for(var a=(r=void 0,Vi(Object.entries(o))),s=a.next();!s.done;s=a.next()){var c=Ri(s.value,2),l=c[0],h=c[1];if(h!=null){var d=Dr(l);t.set("items["+i+"]["+d+"]",h)}}}catch(u){r={error:u}}finally{try{s&&!s.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}}}var bs=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 $i(e){ys(e);var t=e.env,r=e.items,n=e.workflowStep,i=bs(e,["env","items","workflowStep"]),o=new URL(Xt(t));return o.pathname=n+"/",Wt(r,o.searchParams),Fe(i,o.searchParams,Es),o.toString()}var Es=new Set(["cli","co","lang","ctx","cUrl","mv","nglwfdata","otac","promoid","rUrl","sdid","spint","trackingid","code","campaignid","appctxid"]),Ss=["env","workflowStep","clientId","country","items"];function ys(e){var t,r;try{for(var n=As(Ss),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 Ts=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.")},Ls="p_draft_landscape",ws="/store/";function Hr(e){Cs(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,d=Ts(e,["env","items","workflowStep","ms","marketSegment","ot","offerType","pa","productArrangementCode","landscape"]),u={marketSegment:o??i,offerType:s??a,productArrangementCode:l??c},m=new URL(Xt(t));return m.pathname=""+ws+n,n!==X.SEGMENTATION&&n!==X.CHANGE_PLAN_TEAM_PLANS&&Wt(r,m.searchParams),n===X.SEGMENTATION&&Fe(u,m.searchParams,Gr),Fe(d,m.searchParams,Gr),h===vt.DRAFT&&Fe({af:Ls},m.searchParams,Gr),m.toString()}var Gr=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"]),Ps=["env","workflowStep","clientId","country"];function Cs(e){var t,r;try{for(var n=_s(Ps),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!==X.SEGMENTATION&&e.workflowStep!==X.CHANGE_PLAN_TEAM_PLANS&&!e.items)throw new Error('Argument "checkoutData" is not valid, missing: items');return!0}function zr(e,t){switch(e){case ye.V2:return $i(t);case ye.V3:return Hr(t);default:return console.warn("Unsupported CheckoutType, will use UCv3 as default. Given type: "+e),Hr(t)}}var Fr;(function(e){e.BASE="BASE",e.TRIAL="TRIAL",e.PROMOTION="PROMOTION"})(Fr||(Fr={}));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 Kr;(function(e){e.INDIVIDUAL="INDIVIDUAL",e.TEAM="TEAM",e.ENTERPRISE="ENTERPRISE"})(Kr||(Kr={}));var Br;(function(e){e.COM="COM",e.EDU="EDU",e.GOV="GOV"})(Br||(Br={}));var jr;(function(e){e.DIRECT="DIRECT",e.INDIRECT="INDIRECT"})(jr||(jr={}));var Yr;(function(e){e.ENTERPRISE_PRODUCT="ENTERPRISE_PRODUCT",e.ETLA="ETLA",e.RETAIL="RETAIL",e.VIP="VIP",e.VIPMP="VIPMP",e.FREE="FREE"})(Yr||(Yr={}));var Mi="tacocat.js";var qt=(e,t)=>String(e??"").toLowerCase()==String(t??"").toLowerCase(),Ui=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=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=Is(Ke(r)?r:e);o=document.documentElement.querySelector(`meta[name="${a}"]`)?.content}return o??t[e]}var Be=()=>{};var Di=e=>typeof e=="boolean",bt=e=>typeof e=="function",Zt=e=>typeof e=="number",Gi=e=>e!=null&&typeof e=="object";var Ke=e=>typeof e=="string",Xr=e=>Ke(e)&&e,je=e=>Zt(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 S(e,t){if(Di(e))return e;let r=String(e);return r==="1"||r==="true"?!0:r==="0"||r==="false"?!1:t}function fe(e,t,r){let n=Object.values(t);return n.find(i=>qt(i,e))??r??n[0]}function Is(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 Zt(e)||(e=Number.parseInt(e,10)),!Number.isNaN(e)&&e>0&&Number.isFinite(e)?e:t}var Ns=Date.now(),Wr=()=>`(+${Date.now()-Ns}ms)`,Jt=new Set,ks=S(O("tacocat.debug",{},{metadata:!1}),typeof process<"u"&&process.env?.DEBUG);function Hi(e){let t=`[${Mi}/${e}]`,r=(a,s,...c)=>a?!0:(i(s,...c),!1),n=ks?(a,...s)=>{console.debug(`${t} ${a}`,...s,Wr())}:()=>{},i=(a,...s)=>{let c=`${t} ${a}`;Jt.forEach(([l])=>l(c,...s))};return{assert:r,debug:n,error:i,warn:(a,...s)=>{let c=`${t} ${a}`;Jt.forEach(([,l])=>l(c,...s))}}}function Os(e,t){let r=[e,t];return Jt.add(r),()=>{Jt.delete(r)}}Os((e,...t)=>{console.error(e,...t,Wr())},(e,...t)=>{console.warn(e,...t,Wr())});var Vs="no promo",zi="promo-tag",Rs="yellow",$s="neutral",Ms=(e,t,r)=>{let n=o=>o||Vs,i=r?` (was "${n(t)}")`:"";return`${n(e)}${i}`},Us="cancel-context",At=(e,t)=>{let r=e===Us,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?zi:`${zi} no-promo`,text:Ms(a,t,i),variant:o?Rs:$s,isOverriden:i}};var qr="ABM",Zr="PUF",Jr="M2M",Qr="PERPETUAL",en="P3Y",Ds="TAX_INCLUSIVE_DETAILS",Gs="TAX_EXCLUSIVE",Fi={ABM:qr,PUF:Zr,M2M:Jr,PERPETUAL:Qr,P3Y:en},lh={[qr]:{commitment:$.YEAR,term:k.MONTHLY},[Zr]:{commitment:$.YEAR,term:k.ANNUAL},[Jr]:{commitment:$.MONTH,term:k.MONTHLY},[Qr]:{commitment:$.PERPETUAL,term:void 0},[en]:{commitment:$.THREE_MONTHS,term:k.P3Y}},Ki="Value is not an offer",Qt=e=>{if(typeof e!="object")return Ki;let{commitment:t,term:r}=e,n=Hs(t,r);return{...e,planType:n}};var Hs=(e,t)=>{switch(e){case void 0:return Ki;case"":return"";case $.YEAR:return t===k.MONTHLY?qr:t===k.ANNUAL?Zr:"";case $.MONTH:return t===k.MONTHLY?Jr:"";case $.PERPETUAL:return Qr;case $.TERM_LICENSE:return t===k.P3Y?en:"";default:return""}};function tn(e){let{priceDetails:t}=e,{price:r,priceWithoutDiscount:n,priceWithoutTax:i,priceWithoutDiscountAndTax:o,taxDisplay:a}=t;if(a!==Ds)return e;let s={...e,priceDetails:{...t,price:i??r,priceWithoutDiscount:o??n,taxDisplay:Gs}};return s.offerType==="TRIAL"&&s.priceDetails.price===0&&(s.priceDetails.price=s.priceDetails.priceWithoutDiscount),s}var rn=function(e,t){return rn=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])},rn(e,t)};function Et(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");rn(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(Ks,function(s,c,l,h,d,u){if(c)t.minimumIntegerDigits=l.length;else{if(h&&d)throw new Error("We currently do not support maximum integer digits");if(u)throw new Error("We currently do not support exact integer digits")}return""});continue}if(eo.test(i.stem)){t.minimumIntegerDigits=i.stem.length;continue}if(Wi.test(i.stem)){if(i.options.length>1)throw new RangeError("Fraction-precision stems only accept a single optional option");i.stem.replace(Wi,function(s,c,l,h,d,u){return l==="*"?t.minimumFractionDigits=c.length:h&&h[0]==="#"?t.maximumFractionDigits=h.length:d&&u?(t.minimumFractionDigits=d.length,t.maximumFractionDigits=d.length+u.length):(t.minimumFractionDigits=c.length,t.maximumFractionDigits=c.length),""}),i.options.length&&(t=E(E({},t),qi(i.options[0])));continue}if(Qi.test(i.stem)){t=E(E({},t),qi(i.stem));continue}var o=to(i.stem);o&&(t=E(E({},t),o));var a=Bs(i.stem);a&&(t=E(E({},t),a))}return t}var an,js=new RegExp("^"+on.source+"*"),Ys=new RegExp(on.source+"*$");function b(e,t){return{start:e,end:t}}var Xs=!!String.prototype.startsWith,Ws=!!String.fromCodePoint,qs=!!Object.fromEntries,Zs=!!String.prototype.codePointAt,Js=!!String.prototype.trimStart,Qs=!!String.prototype.trimEnd,ec=!!Number.isSafeInteger,tc=ec?Number.isSafeInteger:function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e&&Math.abs(e)<=9007199254740991},cn=!0;try{no=so("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu"),cn=((an=no.exec("a"))===null||an===void 0?void 0:an[0])==="a"}catch{cn=!1}var no,io=Xs?function(t,r,n){return t.startsWith(r,n)}:function(t,r,n){return t.slice(n,n+r.length)===r},ln=Ws?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},oo=qs?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}},rc=Js?function(t){return t.trimStart()}:function(t){return t.replace(js,"")},nc=Qs?function(t){return t.trimEnd()}:function(t){return t.replace(Ys,"")};function so(e,t){return new RegExp(e,t)}var hn;cn?(sn=so("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu"),hn=function(t,r){var n;sn.lastIndex=r;var i=sn.exec(t);return(n=i[1])!==null&&n!==void 0?n:""}):hn=function(t,r){for(var n=[];;){var i=ao(t,r);if(i===void 0||lo(i)||ac(i))break;n.push(i),r+=i>=65536?2:1}return ln.apply(void 0,n)};var sn,co=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:C.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:C.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:C.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()&&oc(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:C.literal,value:i,location:c},err:null}},e.prototype.tryParseLeftAngleBracket=function(){return!this.isEOF()&&this.char()===60&&(this.ignoreTag||!ic(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 ln.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(),ln(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:C.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=hn(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(),d=this.parseSimpleArgStyleIfPossible();if(d.err)return d;var u=nc(d.val);if(u.length===0)return this.error(v.EXPECT_ARGUMENT_STYLE,b(this.clonePosition(),this.clonePosition()));var m=b(h,this.clonePosition());l={style:u,styleLocation:m}}var g=this.tryParseArgumentClose(i);if(g.err)return g;var f=b(i,this.clonePosition());if(l&&io(l?.style,"::",0)){var L=rc(l.style.slice(2));if(s==="number"){var d=this.parseNumberSkeletonFromString(L,l.styleLocation);return d.err?d:{val:{type:C.number,value:n,location:f,style:d.val},err:null}}else{if(L.length===0)return this.error(v.EXPECT_DATE_TIME_SKELETON,f);var u={type:Te.dateTime,pattern:L,location:l.styleLocation,parsedOptions:this.shouldParseSkeletons?Yi(L):{}},I=s==="date"?C.date:C.time;return{val:{type:I,value:n,location:f,style:u},err:null}}}return{val:{type:s==="number"?C.number:s==="date"?C.date:C.time,value:n,location:f,style:(o=l?.style)!==null&&o!==void 0?o:null},err:null}}case"plural":case"selectordinal":case"select":{var A=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(","))return this.error(v.EXPECT_SELECT_ARGUMENT_OPTIONS,b(A,E({},A)));this.bumpSpace();var T=this.parseIdentifierIfPossible(),R=0;if(s!=="select"&&T.value==="offset"){if(!this.bumpIf(":"))return this.error(v.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,b(this.clonePosition(),this.clonePosition()));this.bumpSpace();var d=this.tryParseDecimalInteger(v.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,v.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);if(d.err)return d;this.bumpSpace(),T=this.parseIdentifierIfPossible(),R=d.val}var _=this.tryParsePluralOrSelectOptions(t,s,r,T);if(_.err)return _;var g=this.tryParseArgumentClose(i);if(g.err)return g;var F=b(i,this.clonePosition());return s==="select"?{val:{type:C.select,value:n,options:oo(_.val),location:F},err:null}:{val:{type:C.plural,value:n,options:oo(_.val),offset:R,pluralType:s==="plural"?"cardinal":"ordinal",location:F},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=Ji(t)}catch{return this.error(v.INVALID_NUMBER_SKELETON,r)}return{val:{type:Te.number,tokens:n,location:r,parsedOptions:this.shouldParseSkeletons?ro(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 d=this.clonePosition();if(r!=="select"&&this.bumpIf("=")){var u=this.tryParseDecimalInteger(v.EXPECT_PLURAL_ARGUMENT_SELECTOR,v.INVALID_PLURAL_ARGUMENT_SELECTOR);if(u.err)return u;h=b(d,this.clonePosition()),l=this.message.slice(d.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 g=this.parseMessage(t+1,r,n);if(g.err)return g;var f=this.tryParseArgumentClose(m);if(f.err)return f;s.push([l,{value:g.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,tc(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=ao(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(io(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()&&lo(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 ic(e){return dn(e)||e===47}function oc(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 lo(e){return e>=9&&e<=13||e===32||e===133||e>=8206&&e<=8207||e===8232||e===8233}function ac(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 un(e){e.forEach(function(t){if(delete t.location,ir(t)||or(t))for(var r in t.options)delete t.options[r].location,un(t.options[r].value);else tr(t)&&sr(t.style)||(rr(t)||nr(t))&&St(t.style)?delete t.style.location:ar(t)&&un(t.children)})}function ho(e,t){t===void 0&&(t={}),t=E({shouldParseSkeletons:!0,requiresOtherClause:!0},t);var r=new co(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||un(r.val),r.val}function yt(e,t){var r=t&&t.cache?t.cache:uc,n=t&&t.serializer?t.serializer:dc,i=t&&t.strategy?t.strategy:cc;return i(e,{cache:r,serializer:n})}function sc(e){return e==null||typeof e=="number"||typeof e=="boolean"}function uo(e,t,r,n){var i=sc(n)?n:r(n),o=t.get(i);return typeof o>"u"&&(o=e.call(this,n),t.set(i,o)),o}function mo(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 mn(e,t,r,n,i){return r.bind(t,e,n,i)}function cc(e,t){var r=e.length===1?uo:mo;return mn(e,this,r,t.cache.create(),t.serializer)}function lc(e,t){return mn(e,this,mo,t.cache.create(),t.serializer)}function hc(e,t){return mn(e,this,uo,t.cache.create(),t.serializer)}var dc=function(){return JSON.stringify(arguments)};function pn(){this.cache=Object.create(null)}pn.prototype.get=function(e){return this.cache[e]};pn.prototype.set=function(e,t){this.cache[e]=t};var uc={create:function(){return new pn}},cr={variadic:lc,monadic:hc};var _e;(function(e){e.MISSING_VALUE="MISSING_VALUE",e.INVALID_VALUE="INVALID_VALUE",e.MISSING_INTL_API="MISSING_INTL_API"})(_e||(_e={}));var Tt=function(e){Et(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 fn=function(e){Et(t,e);function t(r,n,i,o){return e.call(this,'Invalid values for "'+r+'": "'+n+'". Options are "'+Object.keys(i).join('", "')+'"',_e.INVALID_VALUE,o)||this}return t}(Tt);var po=function(e){Et(t,e);function t(r,n,i){return e.call(this,'Value for "'+r+'" must be of type '+n,_e.INVALID_VALUE,i)||this}return t}(Tt);var fo=function(e){Et(t,e);function t(r,n){return e.call(this,'The intl string context variable "'+r+'" was not provided to the string "'+n+'"',_e.MISSING_VALUE,n)||this}return t}(Tt);var H;(function(e){e[e.literal=0]="literal",e[e.object=1]="object"})(H||(H={}));function mc(e){return e.length<2?e:e.reduce(function(t,r){var n=t[t.length-1];return!n||n.type!==H.literal||r.type!==H.literal?t.push(r):n.value+=r.value,t},[])}function pc(e){return typeof e=="function"}function _t(e,t,r,n,i,o,a){if(e.length===1&&nn(e[0]))return[{type:H.literal,value:e[0].value}];for(var s=[],c=0,l=e;c0?e.substring(0,n):"";let i=xo(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(vc);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 Ac(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,Ec(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 Ec(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},gn=(e,t)=>({accept:e,round:t}),Lc=[gn(({divisor:e,price:t})=>t%e==0,({divisor:e,price:t})=>t/e),gn(({usePrecision:e})=>e,({divisor:e,price:t})=>Math.ceil(Math.floor(t*1e4/e)/100)/100),gn(()=>!0,({divisor:e,price:t})=>Math.ceil(Math.floor(t*100/e)/100))],xn={[$.YEAR]:{[k.MONTHLY]:_t.MONTH,[k.ANNUAL]:_t.YEAR},[$.MONTH]:{[k.MONTHLY]:_t.MONTH}},wc=(e,t)=>e.indexOf(`'${t}'`)===0,Pc=(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)?/,"$&"+Ic(e)),r},Cc=e=>{let t=Nc(e),r=wc(e,t),n=e.replace(/'.*?'/,""),i=Eo.test(n)||So.test(n);return{currencySymbol:t,isCurrencyFirst:r,hasCurrencySpace:i}},yo=e=>e.replace(Eo,Ao).replace(So,Ao),Ic=e=>e.match(/#(.?)#/)?.[1]===bo?yc:bo,Nc=e=>e.match(/'(.*?)'/)?.[1]??"",To=e=>e.match(/0(.?)0/)?.[1]??"";function cr({formatString:e,price:t,usePrecision:r,isIndianPrice:n=!1},i,o=a=>a){let{currencySymbol:a,isCurrencyFirst:s,hasCurrencySpace:c}=Cc(e),l=r?To(e):"",h=Pc(e,r),d=r?2:0,u=o(t,{currencySymbol:a}),m=n?u.toLocaleString("hi-IN",{minimumFractionDigits:d,maximumFractionDigits:d}):vo(h,u),g=r?m.lastIndexOf(l):m.length,f=m.substring(0,g),L=m.substring(g+1);return{accessiblePrice:e.replace(/'.*?'/,"SYMBOL").replace(/#.*0/,m).replace(/SYMBOL/,a),currencySymbol:a,decimals:L,decimalsDelimiter:l,hasCurrencySpace:c,integer:f,isCurrencyFirst:s,recurrenceTerm:i}}var _o=e=>{let{commitment:t,term:r,usePrecision:n}=e,i=Tc[r]??1;return cr(e,i>1?_t.MONTH:xn[t]?.[r],(o,{currencySymbol:a})=>{let s={divisor:i,price:o,usePrecision:n},{round:c}=Lc.find(({accept:h})=>h(s));if(!c)throw new Error(`Missing rounding rule for: ${JSON.stringify(s)}`);return(_c[a]??(h=>h))(c(s))})},Lo=({commitment:e,term:t,...r})=>cr(r,xn[e]?.[t]),wo=e=>{let{commitment:t,term:r}=e;return t===$.YEAR&&r===k.MONTHLY?cr(e,_t.YEAR,n=>n*12):cr(e,xn[t]?.[r])};var kc={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}"},Oc=Gi("ConsonantTemplates/price"),Vc=/<.+?>/g,K={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"},Te={perUnitLabel:"perUnitLabel",perUnitAriaLabel:"perUnitAriaLabel",recurrenceLabel:"recurrenceLabel",recurrenceAriaLabel:"recurrenceAriaLabel",taxExclusiveLabel:"taxExclusiveLabel",taxInclusiveLabel:"taxInclusiveLabel",strikethroughAriaLabel:"strikethroughAriaLabel"},Rc="TAX_EXCLUSIVE",$c=e=>Di(e)?Object.entries(e).filter(([,t])=>ze(t)||qt(t)||t===!0).reduce((t,[r,n])=>t+` ${r}${n===!0?"":'="'+Mi(n)+'"'}`,""):"",J=(e,t,r,n=!1)=>`${n?yo(t):t??""}`;function Mc(e,{accessibleLabel:t,currencySymbol:r,decimals:n,decimalsDelimiter:i,hasCurrencySpace:o,integer:a,isCurrencyFirst:s,recurrenceLabel:c,perUnitLabel:l,taxInclusivityLabel:h},d={}){let u=J(K.currencySymbol,r),m=J(K.currencySpace,o?" ":""),g="";return s&&(g+=u+m),g+=J(K.integer,a),g+=J(K.decimalsDelimiter,i),g+=J(K.decimals,n),s||(g+=m+u),g+=J(K.recurrence,c,null,!0),g+=J(K.unitType,l,null,!0),g+=J(K.taxInclusivity,h,!0),J(e,g,{...d,"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:d,price:u,priceWithoutDiscount:m,taxDisplay:g,taxTerm:f,term:L,usePrecision:I}={},A={})=>{Object.entries({country:n,formatString:d,language:c,price:u}).forEach(([ie,Vr])=>{if(Vr==null)throw new Error(`Argument "${ie}" is missing`)});let T={...kc,...l},R=`${c.toLowerCase()}-${n.toUpperCase()}`;function _(ie,Vr){let Rr=T[ie];if(Rr==null)return"";try{return new go(Rr.replace(Vc,""),R).format(Vr)}catch{return Oc.error("Failed to format literal:",Rr),""}}let z=t&&m?m:u,H=e?_o:Lo;r&&(H=wo);let{accessiblePrice:he,recurrenceTerm:de,...Ue}=H({commitment:h,formatString:d,term:L,price:e?u:z,usePrecision:I,isIndianPrice:n==="IN"}),q=he,Ae="";if(S(o)&&de){let ie=_(Te.recurrenceAriaLabel,{recurrenceTerm:de});ie&&(q+=" "+ie),Ae=_(Te.recurrenceLabel,{recurrenceTerm:de})}let ue="";if(S(a)){ue=_(Te.perUnitLabel,{perUnit:"LICENSE"});let ie=_(Te.perUnitAriaLabel,{perUnit:"LICENSE"});ie&&(q+=" "+ie)}let Y="";S(s)&&f&&(Y=_(g===Rc?Te.taxExclusiveLabel:Te.taxInclusiveLabel,{taxTerm:f}),Y&&(q+=" "+Y)),t&&(q=_(Te.strikethroughAriaLabel,{strikethroughPrice:q}));let Z=K.container;if(e&&(Z+=" "+K.containerOptical),t&&(Z+=" "+K.containerStrikethrough),r&&(Z+=" "+K.containerAnnual),S(i))return Mc(Z,{...Ue,accessibleLabel:q,recurrenceLabel:Ae,perUnitLabel:ue,taxInclusivityLabel:Y},A);let{currencySymbol:Bt,decimals:rs,decimalsDelimiter:ns,hasCurrencySpace:Ni,integer:is,isCurrencyFirst:os}=Ue,De=[is,ns,rs];os?(De.unshift(Ni?"\xA0":""),De.unshift(Bt)):(De.push(Ni?"\xA0":""),De.push(Bt)),De.push(Ae,ue,Y);let as=De.join("");return J(Z,as,A)},Po=()=>(e,t,r)=>{let i=(e.displayOldPrice===void 0||S(e.displayOldPrice))&&t.priceWithoutDiscount&&t.priceWithoutDiscount!=t.price;return`${_e()(e,t,r)}${i?" "+_e({displayStrikethrough:!0})(e,t,r):""}`};var vn=_e(),bn=Po(),An=_e({displayOptical:!0}),En=_e({displayStrikethrough:!0}),Sn=_e({displayAnnual:!0});var Uc=(e,t)=>{if(!(!Ke(e)||!Ke(t)))return Math.floor((t-e)/t*100)},Co=()=>(e,t,r)=>{let{price:n,priceWithoutDiscount:i}=t,o=Uc(n,i);return o===void 0?'':`${o}%`};var yn=Co();var{freeze:Lt}=Object,Q=Lt({...Ee}),ee=Lt({...X}),Le={STAGE:"STAGE",PRODUCTION:"PRODUCTION",LOCAL:"LOCAL"},Tn=Lt({...$}),_n=Lt({...zi}),Ln=Lt({...k});var Dn={};ps(Dn,{CLASS_NAME_FAILED:()=>wn,CLASS_NAME_PENDING:()=>Pn,CLASS_NAME_RESOLVED:()=>Cn,ERROR_MESSAGE_BAD_REQUEST:()=>lr,ERROR_MESSAGE_MISSING_LITERALS_URL:()=>Dc,ERROR_MESSAGE_OFFER_NOT_FOUND:()=>In,EVENT_TYPE_ERROR:()=>Gc,EVENT_TYPE_FAILED:()=>Nn,EVENT_TYPE_PENDING:()=>kn,EVENT_TYPE_READY:()=>Ye,EVENT_TYPE_RESOLVED:()=>On,LOG_NAMESPACE:()=>Vn,Landscape:()=>we,PARAM_AOS_API_KEY:()=>Hc,PARAM_ENV:()=>Rn,PARAM_LANDSCAPE:()=>$n,PARAM_WCS_API_KEY:()=>zc,STATE_FAILED:()=>oe,STATE_PENDING:()=>ae,STATE_RESOLVED:()=>se,WCS_PROD_URL:()=>Mn,WCS_STAGE_URL:()=>Un});var wn="placeholder-failed",Pn="placeholder-pending",Cn="placeholder-resolved",lr="Bad WCS request",In="Commerce offer not found",Dc="Literals URL not provided",Gc="mas:error",Nn="mas:failed",kn="mas:pending",Ye="mas:ready",On="mas:resolved",Vn="mas/commerce",Rn="commerce.env",$n="commerce.landscape",Hc="commerce.aosKey",zc="commerce.wcsKey",Mn="https://www.adobe.com/web_commerce_artifact",Un="https://www.stage.adobe.com/web_commerce_artifact_stage",oe="failed",ae="pending",se="resolved",we={DRAFT:"DRAFT",PUBLISHED:"PUBLISHED"};var Io="mas-commerce-service";function No(e,{once:t=!1}={}){let r=null;function n(){let i=document.querySelector(Io);i!==r&&(r=i,i&&e(i))}return document.addEventListener(Ye,n,{once:t}),pe(n),()=>document.removeEventListener(Ye,n)}function wt(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(en)),i}var pe=e=>window.setTimeout(e);function Xe(e,t=1){if(e==null)return[t];let r=(Array.isArray(e)?e:String(e).split(",")).map(je).filter(Ke);return r.length||(r=[t]),r}function hr(e){return e==null?[]:(Array.isArray(e)?e:String(e).split(",")).filter(Yr)}function j(){return document.getElementsByTagName(Io)?.[0]}var Fc={[oe]:wn,[ae]:Pn,[se]:Cn},Kc={[oe]:Nn,[ae]:kn,[se]:On},We=class{constructor(t){p(this,"changes",new Map);p(this,"connected",!1);p(this,"dispose",Fe);p(this,"error");p(this,"log");p(this,"options");p(this,"promises",[]);p(this,"state",ae);p(this,"timer",null);p(this,"value");p(this,"version",0);p(this,"wrapperElement");this.wrapperElement=t}update(){[oe,ae,se].forEach(t=>{this.wrapperElement.classList.toggle(Fc[t],t===this.state)})}notify(){(this.state===se||this.state===oe)&&(this.state===se?this.promises.forEach(({resolve:t})=>t(this.wrapperElement)):this.state===oe&&this.promises.forEach(({reject:t})=>t(this.error)),this.promises=[]),this.wrapperElement.dispatchEvent(new CustomEvent(Kc[this.state],{bubbles:!0}))}attributeChangedCallback(t,r,n){this.changes.set(t,n),this.requestUpdate()}connectedCallback(){this.dispose=No(()=>this.requestUpdate(!0))}disconnectedCallback(){this.connected&&(this.connected=!1,this.log?.debug("Disconnected:",{element:this.wrapperElement})),this.dispose(),this.dispose=Fe}onceSettled(){let{error:t,promises:r,state:n}=this;return se===n?Promise.resolve(this.wrapperElement):oe===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=se,this.value=r,this.update(),this.log?.debug("Resolved:",{element:this.wrapperElement,value:r}),pe(()=>this.notify()),!0)}toggleFailed(t,r,n){return t!==this.version?!1:(n!==void 0&&(this.options=n),this.error=r,this.state=oe,this.update(),this.log?.error("Failed:",{element:this.wrapperElement,error:r}),pe(()=>this.notify()),!0)}togglePending(t){return this.version++,t&&(this.options=t),this.state=ae,this.update(),pe(()=>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=ae,this.timer=pe(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===ae&&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 ko(e={}){return Object.entries(e).forEach(([t,r])=>{(r==null||r===""||r?.length===0)&&delete e[t]}),e}function dr(e,t={}){let{tag:r,is:n}=e,i=document.createElement(r,{is:n});return i.setAttribute("is",n),Object.assign(i.dataset,ko(t)),i}function ur(e,t={}){return e instanceof HTMLElement?(Object.assign(e.dataset,ko(t)),e):null}var Bc="download",jc="upgrade",Pe,Pt=class Pt extends HTMLAnchorElement{constructor(){super();B(this,Pe);p(this,"masElement",new We(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:d,promotionCode:u,quantity:m,wcsOsi:g,extraOptions:f}=i.collectCheckoutOptions(r),L=dr(Pt,{checkoutMarketSegment:o,checkoutWorkflow:a,checkoutWorkflowStep:s,entitlement:c,upgrade:l,modal:h,perpetual:d,promotionCode:u,quantity:m,wcsOsi:g,extraOptions:f});return n&&(L.innerHTML=`${n}`),L}get isCheckoutLink(){return!0}clickHandler(r){var n;(n=F(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)},Fe);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=>wt(h,i));let l=await n.buildCheckoutAction?.(c.flat(),{...o,...i},this);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)),F(this,Pe)&&ft(this,Pe,void 0),o){this.classList.remove(Bc,jc),this.masElement.toggleResolved(a,r,n);let{url:l,text:h,className:d,handler:u}=o;return l&&(this.href=l),h&&(this.firstElementChild.innerHTML=h),d&&this.classList.add(...d.split(" ")),u&&(this.setAttribute("href","#"),ft(this,Pe,u.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:d,quantity:u,wcsOsi:m}=n.collectCheckoutOptions(r);return ur(this,{checkoutMarketSegment:i,checkoutWorkflow:o,checkoutWorkflowStep:a,entitlement:s,upgrade:c,modal:l,perpetual:h,promotionCode:d,quantity:u,wcsOsi:m}),!0}};Pe=new WeakMap,p(Pt,"is","checkout-link"),p(Pt,"tag","a");var te=Pt;window.customElements.get(te.is)||window.customElements.define(te.is,te,{extends:te.tag});var y=Object.freeze({checkoutClientId:"adobe_com",checkoutWorkflow:Q.V3,checkoutWorkflowStep:ee.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});function Oo({providers:e,settings:t}){function r(o,a){let{checkoutClientId:s,checkoutWorkflow:c,checkoutWorkflowStep:l,country:h,language:d,promotionCode:u,quantity:m}=t,{checkoutMarketSegment:g,checkoutWorkflow:f=c,checkoutWorkflowStep:L=l,imsCountry:I,country:A=I??h,language:T=d,quantity:R=m,entitlement:_,upgrade:z,modal:H,perpetual:he,promotionCode:de=u,wcsOsi:Ue,extraOptions:q,...Ae}=Object.assign({},a?.dataset??{},o??{}),ue=me(f,Q,y.checkoutWorkflow),Y=ee.CHECKOUT;ue===Q.V3&&(Y=me(L,ee,y.checkoutWorkflowStep));let Z=Be({...Ae,extraOptions:q,checkoutClientId:s,checkoutMarketSegment:g,country:A,quantity:Xe(R,y.quantity),checkoutWorkflow:ue,checkoutWorkflowStep:Y,language:T,entitlement:S(_),upgrade:S(z),modal:S(H),perpetual:S(he),promotionCode:bt(de).effectivePromoCode,wcsOsi:hr(Ue)});if(a)for(let Bt of e.checkout)Bt(a,Z);return Z}function n(o,a){if(!Array.isArray(o)||!o.length||!a)return"";let{env:s,landscape:c}=t,{checkoutClientId:l,checkoutMarketSegment:h,checkoutWorkflow:d,checkoutWorkflowStep:u,country:m,promotionCode:g,quantity:f,...L}=r(a),I=window.frameElement?"if":"fp",A={checkoutPromoCode:g,clientId:l,context:I,country:m,env:s,items:[],marketSegment:h,workflowStep:u,landscape:c,...L};if(o.length===1){let[{offerId:T,offerType:R,productArrangementCode:_}]=o,{marketSegments:[z]}=o[0];Object.assign(A,{marketSegment:z,offerType:R,productArrangementCode:_}),A.items.push(f[0]===1?{id:T}:{id:T,quantity:f[0]})}else A.items.push(...o.map(({offerId:T},R)=>({id:T,quantity:f[R]??y.quantity})));return Hr(d,A)}let{createCheckoutLink:i}=te;return{CheckoutLink:te,CheckoutWorkflow:Q,CheckoutWorkflowStep:ee,buildCheckoutURL:n,collectCheckoutOptions:r,createCheckoutLink:i}}var Gn={clientId:"merch-at-scale",delimiter:"\xB6",ignoredProperties:["analytics","literals"],serializableTypes:["Array","Object"],sampleRate:30,tags:"consumer=milo/commerce"},Vo=new Set,Yc=e=>e instanceof Error||typeof e.originatingRequest=="string";function Ro(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 Xc(e,t){if(!Gn.ignoredProperties.includes(e))return Ro(t)}var Hn={append(e){let{delimiter:t,sampleRate:r,tags:n,clientId:i}=Gn,{message:o,params:a}=e,s=[],c=o,l=[];a.forEach(u=>{u!=null&&(Yc(u)?s:l).push(u)}),s.length&&(c+=" ",c+=s.map(Ro).join(" "));let{pathname:h,search:d}=window.location;c+=`${t}page=`,c+=h+d,l.length&&(c+=`${t}facts=`,c+=JSON.stringify(l,Xc)),Vo.has(c)||(Vo.add(c),window.lana?.log(c,{sampleRate:r,tags:n,clientId:i}))}};var zn=Object.freeze({LOCAL:"local",PROD:"prod",STAGE:"stage"});function Wc({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 Fn(e={}){let{commerce:t={}}=e,r=Le.PRODUCTION,n=Mn,i=O("checkoutClientId",t)??y.checkoutClientId,o=me(O("checkoutWorkflow",t),Q,y.checkoutWorkflow),a=ee.CHECKOUT;o===Q.V3&&(a=me(O("checkoutWorkflowStep",t),ee,y.checkoutWorkflowStep));let s=S(O("displayOldPrice",t),y.displayOldPrice),c=S(O("displayPerUnit",t),y.displayPerUnit),l=S(O("displayRecurrence",t),y.displayRecurrence),h=S(O("displayTax",t),y.displayTax),d=S(O("entitlement",t),y.entitlement),u=S(O("modal",t),y.modal),m=S(O("forceTaxExclusive",t),y.forceTaxExclusive),g=O("promotionCode",t)??y.promotionCode,f=Xe(O("quantity",t)),L=O("wcsApiKey",t)??y.wcsApiKey,I=t?.env==="stage",A=we.PUBLISHED;["true",""].includes(t.allowOverride)&&(I=(O(Rn,t,{metadata:!1})?.toLowerCase()??t?.env)==="stage",A=me(O($n,t),we,A)),I&&(r=Le.STAGE,n=Un);let R=je(O("wcsBufferDelay",t),y.wcsBufferDelay),_=je(O("wcsBufferLimit",t),y.wcsBufferLimit);return{...Wc(e),displayOldPrice:s,checkoutClientId:i,checkoutWorkflow:o,checkoutWorkflowStep:a,displayPerUnit:c,displayRecurrence:l,displayTax:h,entitlement:d,extraOptions:y.extraOptions,modal:u,env:r,forceTaxExclusive:m,promotionCode:g,quantity:f,wcsApiKey:L,wcsBufferDelay:R,wcsBufferLimit:_,wcsURL:n,landscape:A}}var Mo="debug",qc="error",Zc="info",Jc="warn",Qc=Date.now(),Kn=new Set,Bn=new Set,$o=new Map,Ct=Object.freeze({DEBUG:Mo,ERROR:qc,INFO:Zc,WARN:Jc}),Uo={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!==Mo},el={filter:()=>!1};function tl(e,t,r,n,i){return{level:e,message:t,namespace:r,get params(){if(n.length===1){let[o]=n;vt(o)&&(n=o(),Array.isArray(n)||(n=[n]))}return n},source:i,timestamp:Date.now()-Qc}}function rl(e){[...Bn].every(t=>t(e))&&Kn.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)=>rl(tl(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 mr(...e){e.forEach(t=>{let{append:r,filter:n}=t;vt(n)?Bn.add(n):vt(r)&&Kn.add(r)})}function nl(e={}){let{name:t}=e,r=S(O("commerce.debug",{search:!0,storage:!0}),t===zn.LOCAL);return mr(r?Uo:Do),t===zn.PROD&&mr(Hn),W}function il(){Kn.clear(),Bn.clear()}var W={...Go(Vn),Level:Ct,Plugins:{consoleAppender:Uo,debugFilter:Do,quietFilter:el,lanaAppender:Hn},init:nl,reset:il,use:mr};function ol({interval:e=200,maxAttempts:t=25}={}){let r=W.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 al(e){return e.then(()=>window.adobeIMS?.isSignedInUser()??!1)}function sl(e){let t=W.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 Ho({}){let e=ol(),t=al(e),r=sl(t);return{imsReadyPromise:e,imsSignedInPromise:t,imsCountryPromise:r}}async function Fo(e,t){let{data:r}=t||await Promise.resolve().then(()=>gs(zo(),1));if(Array.isArray(r)){let n=o=>r.find(a=>Wt(a.lang,o)),i=n(e.language)??n(y.language);if(i)return Object.freeze(i)}return{}}var Ko=["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"],ll={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"]},It=class It extends HTMLSpanElement{constructor(){super();p(this,"masElement",new We(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:d,template:u,wcsOsi:m}=n.collectPriceOptions(r);return dr(It,{displayOldPrice:i,displayPerUnit:o,displayRecurrence:a,displayTax:s,forceTaxExclusive:c,perpetual:l,promotionCode:h,quantity:d,template:u,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(Ko.includes(r)||Ko.includes(a))return!0;let s=ll[`${i}_${o}`];return s?!!(s.includes(r)||s.includes(a)):!1}async resolveDisplayTax(r,n){let[i]=await r.resolveOfferSelectors(n),o=wt(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(wt(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:d,template:u,wcsOsi:m}=n.collectPriceOptions(r);return ur(this,{displayOldPrice:i,displayPerUnit:o,displayRecurrence:a,displayTax:s,forceTaxExclusive:c,perpetual:l,promotionCode:h,quantity:d,template:u,wcsOsi:m}),!0}};p(It,"is","inline-price"),p(It,"tag","span");var re=It;window.customElements.get(re.is)||window.customElements.define(re.is,re,{extends:re.tag});function Bo({literals:e,providers:t,settings:r}){function n(a,s){let{country:c,displayOldPrice:l,displayPerUnit:h,displayRecurrence:d,displayTax:u,forceTaxExclusive:m,language:g,promotionCode:f,quantity:L}=r,{displayOldPrice:I=l,displayPerUnit:A=h,displayRecurrence:T=d,displayTax:R=u,forceTaxExclusive:_=m,country:z=c,language:H=g,perpetual:he,promotionCode:de=f,quantity:Ue=L,template:q,wcsOsi:Ae,...ue}=Object.assign({},s?.dataset??{},a??{}),Y=Be({...ue,country:z,displayOldPrice:S(I),displayPerUnit:S(A),displayRecurrence:S(T),displayTax:S(R),forceTaxExclusive:S(_),language:H,perpetual:S(he),promotionCode:bt(de).effectivePromoCode,quantity:Xe(Ue,y.quantity),template:q,wcsOsi:hr(Ae)});if(s)for(let Z of t.price)Z(s,Y);return Y}function i(a,s){if(!Array.isArray(a)||!a.length||!s)return"";let{template:c}=s,l;switch(c){case"discount":l=yn;break;case"strikethrough":l=En;break;case"optical":l=An;break;case"annual":l=Sn;break;default:l=s.promotionCode?bn:vn}let h=n(s);h.literals=Object.assign({},e.price,Be(s.literals??{}));let[d]=a;return d={...d,...d.priceDetails},l(h,d)}let{createInlinePrice:o}=re;return{InlinePrice:re,buildPriceHTML:i,collectPriceOptions:n,createInlinePrice:o}}function jo({settings:e}){let t=W.module("wcs"),{env:r,wcsApiKey:n}=e,i=new Map,o=new Map,a;async function s(d,u,m=!0){let g=In;t.debug("Fetching:",d);try{d.offerSelectorIds=d.offerSelectorIds.sort();let f=new URL(e.wcsURL);f.searchParams.set("offer_selector_ids",d.offerSelectorIds.join(",")),f.searchParams.set("country",d.country),f.searchParams.set("locale",d.locale),f.searchParams.set("landscape",r===Le.STAGE?"ALL":e.landscape),f.searchParams.set("api_key",n),d.language&&f.searchParams.set("language",d.language),d.promotionCode&&f.searchParams.set("promotion_code",d.promotionCode),d.currency&&f.searchParams.set("currency",d.currency);let L=await fetch(f.toString(),{credentials:"omit"});if(L.ok){let I=await L.json();t.debug("Fetched:",d,I);let A=I.resolvedOffers??[];A=A.map(Jt),u.forEach(({resolve:T},R)=>{let _=A.filter(({offerSelectorIds:z})=>z.includes(R)).flat();_.length&&(u.delete(R),T(_))})}else L.status===404&&d.offerSelectorIds.length>1?(t.debug("Multi-osi 404, fallback to fetch-by-one strategy"),await Promise.allSettled(d.offerSelectorIds.map(I=>s({...d,offerSelectorIds:[I]},u,!1)))):(g=lr,t.error(g,d))}catch(f){g=lr,t.error(g,d,f)}m&&u.size&&(t.debug("Missing:",{offerSelectorIds:[...u.keys()]}),u.forEach(f=>{f.reject(new Error(g))}))}function c(){clearTimeout(a);let d=[...o.values()];o.clear(),d.forEach(({options:u,promises:m})=>s(u,m))}function l(){let d=i.size;i.clear(),t.debug(`Flushed ${d} cache entries`)}function h({country:d,language:u,perpetual:m=!1,promotionCode:g="",wcsOsi:f=[]}){let L=`${u}_${d}`;d!=="GB"&&(u=m?"EN":"MULT");let I=[d,u,g].filter(A=>A).join("-").toLowerCase();return f.map(A=>{let T=`${A}-${I}`;if(!i.has(T)){let R=new Promise((_,z)=>{let H=o.get(I);if(!H){let he={country:d,locale:L,offerSelectorIds:[]};d!=="GB"&&(he.language=u),H={options:he,promises:new Map},o.set(I,H)}g&&(H.options.promotionCode=g),H.options.offerSelectorIds.push(A),H.promises.set(A,{resolve:_,reject:z}),H.options.offerSelectorIds.length>=e.wcsBufferLimit?c():(t.debug("Queued:",H.options),a||(a=setTimeout(c,e.wcsBufferDelay)))});i.set(T,R)}return i.get(T)})}return{WcsCommitment:Tn,WcsPlanType:_n,WcsTerm:Ln,resolveOfferSelectors:h,flushWcsCache:l}}var jn="mas-commerce-service",fr,Yo,pr=class extends HTMLElement{constructor(){super(...arguments);B(this,fr);p(this,"promise",null)}async registerCheckoutAction(r){typeof r=="function"&&(this.buildCheckoutAction=async(n,i,o)=>{let a=await r?.(n,i,this.imsSignedInPromise,o);return a||null})}async activate(){let r=F(this,fr,Yo),n=W.init(r.env).module("service");n.debug("Activating:",r);let i=Object.freeze(Fn(r)),o={price:{}};try{o.price=await Fo(i,r.commerce.priceLiterals)}catch{}let a={checkout:new Set,price:new Set},s={literals:o,providers:a,settings:i};Object.defineProperties(this,Object.getOwnPropertyDescriptors({...Oo(s),...Ho(s),...Bo(s),...jo(s),...Dn,Log:W,get defaults(){return y},get log(){return W},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:o,settings:i}),pe(()=>{let c=new CustomEvent(Ye,{bubbles:!0,cancelable:!1,detail:this});this.dispatchEvent(c)})}connectedCallback(){this.readyPromise||(this.readyPromise=this.activate())}disconnectedCallback(){this.readyPromise=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")}};fr=new WeakSet,Yo=function(){let r={commerce:{env:this.getAttribute("env")}};return["locale","country","language"].forEach(n=>{let i=this.getAttribute(n);i&&(r[n]=i)}),["checkout-workflow-step","force-tax-exclusive","checkout-client-id","allow-override"].forEach(n=>{let i=this.getAttribute(n);if(i!=null){let o=n.replace(/-([a-z])/g,a=>a[1].toUpperCase());r.commerce[o]=i}}),r},p(pr,"instance");window.customElements.get(jn)||window.customElements.define(jn,pr);var gr=window,vr=gr.ShadowRoot&&(gr.ShadyCSS===void 0||gr.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Wo=Symbol(),Xo=new WeakMap,xr=class{constructor(t,r,n){if(this._$cssResult$=!0,n!==Wo)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(vr&&t===void 0){let n=r!==void 0&&r.length===1;n&&(t=Xo.get(r)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),n&&Xo.set(r,t))}return t}toString(){return this.cssText}},qo=e=>new xr(typeof e=="string"?e:e+"",void 0,Wo);var Yn=(e,t)=>{vr?e.adoptedStyleSheets=t.map(r=>r instanceof CSSStyleSheet?r:r.styleSheet):t.forEach(r=>{let n=document.createElement("style"),i=gr.litNonce;i!==void 0&&n.setAttribute("nonce",i),n.textContent=r.cssText,e.appendChild(n)})},br=vr?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let r="";for(let n of t.cssRules)r+=n.cssText;return qo(r)})(e):e;var Xn,Ar=window,Zo=Ar.trustedTypes,hl=Zo?Zo.emptyScript:"",Jo=Ar.reactiveElementPolyfillSupport,qn={toAttribute(e,t){switch(t){case Boolean:e=e?hl: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}},Qo=(e,t)=>t!==e&&(t==t||e==e),Wn={attribute:!0,type:String,converter:qn,reflect:!1,hasChanged:Qo},Zn="finalized",Ce=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=Wn){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)||Wn}static finalize(){if(this.hasOwnProperty(Zn))return!1;this[Zn]=!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(br(i))}else t!==void 0&&r.push(br(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 Yn(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=Wn){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:qn).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:qn;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||Qo)(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){}};Ce[Zn]=!0,Ce.elementProperties=new Map,Ce.elementStyles=[],Ce.shadowRootOptions={mode:"open"},Jo?.({ReactiveElement:Ce}),((Xn=Ar.reactiveElementVersions)!==null&&Xn!==void 0?Xn:Ar.reactiveElementVersions=[]).push("1.6.3");var Jn,Er=window,qe=Er.trustedTypes,ea=qe?qe.createPolicy("lit-html",{createHTML:e=>e}):void 0,ei="$lit$",fe=`lit$${(Math.random()+"").slice(9)}$`,sa="?"+fe,dl=`<${sa}>`,ke=document,Sr=()=>ke.createComment(""),kt=e=>e===null||typeof e!="object"&&typeof e!="function",ca=Array.isArray,ul=e=>ca(e)||typeof e?.[Symbol.iterator]=="function",Qn=`[ -\f\r]`,Nt=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,ta=/-->/g,ra=/>/g,Ie=RegExp(`>|${Qn}(?:([^\\s"'>=/]+)(${Qn}*=${Qn}*(?:[^ -\f\r"'\`<>=]|("|')|))|$)`,"g"),na=/'/g,ia=/"/g,la=/^(?:script|style|textarea|title)$/i,ha=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),Du=ha(1),Gu=ha(2),Ot=Symbol.for("lit-noChange"),M=Symbol.for("lit-nothing"),oa=new WeakMap,Ne=ke.createTreeWalker(ke,129,null,!1);function da(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return ea!==void 0?ea.createHTML(t):t}var ml=(e,t)=>{let r=e.length-1,n=[],i,o=t===2?"":"",a=Nt;for(let s=0;s"?(a=i??Nt,d=-1):h[1]===void 0?d=-2:(d=a.lastIndex-h[2].length,l=h[1],a=h[3]===void 0?Ie:h[3]==='"'?ia:na):a===ia||a===na?a=Ie:a===ta||a===ra?a=Nt:(a=Ie,i=void 0);let m=a===Ie&&e[s+1].startsWith("/>")?" ":"";o+=a===Nt?c+dl:d>=0?(n.push(l),c.slice(0,d)+ei+c.slice(d)+fe+m):c+fe+(d===-2?(n.push(void 0),s):m)}return[da(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,[l,h]=ml(t,r);if(this.el=e.createElement(l,n),Ne.currentNode=this.el.content,r===2){let d=this.el.content,u=d.firstChild;u.remove(),d.append(...u.childNodes)}for(;(i=Ne.nextNode())!==null&&c.length0){i.textContent=qe?qe.emptyScript:"";for(let m=0;m2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=M}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=Ze(this,t,r,0),a=!kt(t)||t!==this._$AH&&t!==Ot,a&&(this._$AH=t);else{let s=t,c,l;for(t=o[0],c=0;cnew Rt(typeof e=="string"?e:e+"",void 0,ai),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 Rt(r,e,ai)},si=(e,t)=>{_r?e.adoptedStyleSheets=t.map(r=>r instanceof CSSStyleSheet?r:r.styleSheet):t.forEach(r=>{let n=document.createElement("style"),i=Tr.litNonce;i!==void 0&&n.setAttribute("nonce",i),n.textContent=r.cssText,e.appendChild(n)})},Lr=_r?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let r="";for(let n of t.cssRules)r+=n.cssText;return ge(r)})(e):e;var ci,wr=window,ma=wr.trustedTypes,fl=ma?ma.emptyScript:"",pa=wr.reactiveElementPolyfillSupport,hi={toAttribute(e,t){switch(t){case Boolean:e=e?fl: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}},fa=(e,t)=>t!==e&&(t==t||e==e),li={attribute:!0,type:String,converter:hi,reflect:!1,hasChanged:fa},di="finalized",ce=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=li){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)||li}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(Lr(i))}else t!==void 0&&r.push(Lr(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 si(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=li){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:hi).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:hi;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||fa)(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){}};ce[di]=!0,ce.elementProperties=new Map,ce.elementStyles=[],ce.shadowRootOptions={mode:"open"},pa?.({ReactiveElement:ce}),((ci=wr.reactiveElementVersions)!==null&&ci!==void 0?ci:wr.reactiveElementVersions=[]).push("1.6.3");var ui,Pr=window,Qe=Pr.trustedTypes,ga=Qe?Qe.createPolicy("lit-html",{createHTML:e=>e}):void 0,pi="$lit$",xe=`lit$${(Math.random()+"").slice(9)}$`,ya="?"+xe,gl=`<${ya}>`,Re=document,Mt=()=>Re.createComment(""),Ut=e=>e===null||typeof e!="object"&&typeof e!="function",Ta=Array.isArray,xl=e=>Ta(e)||typeof e?.[Symbol.iterator]=="function",mi=`[ -\f\r]`,$t=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,xa=/-->/g,va=/>/g,Oe=RegExp(`>|${mi}(?:([^\\s"'>=/]+)(${mi}*=${mi}*(?:[^ -\f\r"'\`<>=]|("|')|))|$)`,"g"),ba=/'/g,Aa=/"/g,_a=/^(?:script|style|textarea|title)$/i,La=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),x=La(1),ju=La(2),$e=Symbol.for("lit-noChange"),U=Symbol.for("lit-nothing"),Ea=new WeakMap,Ve=Re.createTreeWalker(Re,129,null,!1);function wa(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return ga!==void 0?ga.createHTML(t):t}var vl=(e,t)=>{let r=e.length-1,n=[],i,o=t===2?"":"",a=$t;for(let s=0;s"?(a=i??$t,d=-1):h[1]===void 0?d=-2:(d=a.lastIndex-h[2].length,l=h[1],a=h[3]===void 0?Oe:h[3]==='"'?Aa:ba):a===Aa||a===ba?a=Oe:a===xa||a===va?a=$t:(a=Oe,i=void 0);let m=a===Oe&&e[s+1].startsWith("/>")?" ":"";o+=a===$t?c+gl:d>=0?(n.push(l),c.slice(0,d)+pi+c.slice(d)+xe+m):c+xe+(d===-2?(n.push(void 0),s):m)}return[wa(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,[l,h]=vl(t,r);if(this.el=e.createElement(l,n),Ve.currentNode=this.el.content,r===2){let d=this.el.content,u=d.firstChild;u.remove(),d.append(...u.childNodes)}for(;(i=Ve.nextNode())!==null&&c.length0){i.textContent=Qe?Qe.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=et(this,t,r,0),a=!Ut(t)||t!==this._$AH&&t!==$e,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 Gt(t.insertBefore(Mt(),s),s,void 0,r??{})}return a._$AI(e),a};var Ai,Ei;var ne=class extends ce{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=Pa(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 $e}};ne.finalized=!0,ne._$litElement$=!0,(Ai=globalThis.litElementHydrateSupport)===null||Ai===void 0||Ai.call(globalThis,{LitElement:ne});var Ca=globalThis.litElementPolyfillSupport;Ca?.({LitElement:ne});((Ei=globalThis.litElementVersions)!==null&&Ei!==void 0?Ei:globalThis.litElementVersions=[]).push("3.3.3");var ve="(max-width: 767px)",Cr="(max-width: 1199px)",V="(min-width: 768px)",N="(min-width: 1200px)",D="(min-width: 1600px)";var Ia=w` +`,_e.MISSING_INTL_API,a);var R=r.getPluralRules(t,{type:h.pluralType}).select(u-(h.offset||0));T=h.options[R]||h.options.other}if(!T)throw new fn(h.value,u,Object.keys(h.options),a);s.push.apply(s,_t(T.value,t,r,n,i,u-(h.offset||0)));continue}}return mc(s)}function fc(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 gc(e,t){return t?Object.keys(e).reduce(function(r,n){return r[n]=fc(e[n],t[n]),r},E({},e)):e}function gn(e){return{create:function(){return{get:function(t){return e[t]},set:function(t,r){e[t]=r}}}}}function xc(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=vo(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(bc);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 Ec(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,Sc(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 Sc(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},xn=(e,t)=>({accept:e,round:t}),wc=[xn(({divisor:e,price:t})=>t%e==0,({divisor:e,price:t})=>t/e),xn(({usePrecision:e})=>e,({divisor:e,price:t})=>Math.ceil(Math.floor(t*1e4/e)/100)/100),xn(()=>!0,({divisor:e,price:t})=>Math.ceil(Math.floor(t*100/e)/100))],vn={[$.YEAR]:{[k.MONTHLY]:Lt.MONTH,[k.ANNUAL]:Lt.YEAR},[$.MONTH]:{[k.MONTHLY]:Lt.MONTH}},Pc=(e,t)=>e.indexOf(`'${t}'`)===0,Cc=(e,t=!0)=>{let r=e.replace(/'.*?'/,"").trim(),n=_o(r);return!!n?t||(r=r.replace(/[,\.]0+/,n)):r=r.replace(/\s?(#.*0)(?!\s)?/,"$&"+Nc(e)),r},Ic=e=>{let t=kc(e),r=Pc(e,t),n=e.replace(/'.*?'/,""),i=So.test(n)||yo.test(n);return{currencySymbol:t,isCurrencyFirst:r,hasCurrencySpace:i}},To=e=>e.replace(So,Eo).replace(yo,Eo),Nc=e=>e.match(/#(.?)#/)?.[1]===Ao?Tc:Ao,kc=e=>e.match(/'(.*?)'/)?.[1]??"",_o=e=>e.match(/0(.?)0/)?.[1]??"";function lr({formatString:e,price:t,usePrecision:r,isIndianPrice:n=!1},i,o=a=>a){let{currencySymbol:a,isCurrencyFirst:s,hasCurrencySpace:c}=Ic(e),l=r?_o(e):"",h=Cc(e,r),d=r?2:0,u=o(t,{currencySymbol:a}),m=n?u.toLocaleString("hi-IN",{minimumFractionDigits:d,maximumFractionDigits:d}):bo(h,u),g=r?m.lastIndexOf(l):m.length,f=m.substring(0,g),L=m.substring(g+1);return{accessiblePrice:e.replace(/'.*?'/,"SYMBOL").replace(/#.*0/,m).replace(/SYMBOL/,a),currencySymbol:a,decimals:L,decimalsDelimiter:l,hasCurrencySpace:c,integer:f,isCurrencyFirst:s,recurrenceTerm:i}}var Lo=e=>{let{commitment:t,term:r,usePrecision:n}=e,i=_c[r]??1;return lr(e,i>1?Lt.MONTH:vn[t]?.[r],(o,{currencySymbol:a})=>{let s={divisor:i,price:o,usePrecision:n},{round:c}=wc.find(({accept:h})=>h(s));if(!c)throw new Error(`Missing rounding rule for: ${JSON.stringify(s)}`);return(Lc[a]??(h=>h))(c(s))})},wo=({commitment:e,term:t,...r})=>lr(r,vn[e]?.[t]),Po=e=>{let{commitment:t,term:r}=e;return t===$.YEAR&&r===k.MONTHLY?lr(e,Lt.YEAR,n=>n*12):lr(e,vn[t]?.[r])};var Oc={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}"},Vc=Hi("ConsonantTemplates/price"),Rc=/<.+?>/g,B={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"},Le={perUnitLabel:"perUnitLabel",perUnitAriaLabel:"perUnitAriaLabel",recurrenceLabel:"recurrenceLabel",recurrenceAriaLabel:"recurrenceAriaLabel",taxExclusiveLabel:"taxExclusiveLabel",taxInclusiveLabel:"taxInclusiveLabel",strikethroughAriaLabel:"strikethroughAriaLabel"},$c="TAX_EXCLUSIVE",Mc=e=>Gi(e)?Object.entries(e).filter(([,t])=>Ke(t)||Zt(t)||t===!0).reduce((t,[r,n])=>t+` ${r}${n===!0?"":'="'+Ui(n)+'"'}`,""):"",J=(e,t,r,n=!1)=>`${n?To(t):t??""}`;function Uc(e,{accessibleLabel:t,currencySymbol:r,decimals:n,decimalsDelimiter:i,hasCurrencySpace:o,integer:a,isCurrencyFirst:s,recurrenceLabel:c,perUnitLabel:l,taxInclusivityLabel:h},d={}){let u=J(B.currencySymbol,r),m=J(B.currencySpace,o?" ":""),g="";return s&&(g+=u+m),g+=J(B.integer,a),g+=J(B.decimalsDelimiter,i),g+=J(B.decimals,n),s||(g+=m+u),g+=J(B.recurrence,c,null,!0),g+=J(B.unitType,l,null,!0),g+=J(B.taxInclusivity,h,!0),J(e,g,{...d,"aria-label":t})}var we=({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:d,price:u,priceWithoutDiscount:m,taxDisplay:g,taxTerm:f,term:L,usePrecision:I}={},A={})=>{Object.entries({country:n,formatString:d,language:c,price:u}).forEach(([ie,Rr])=>{if(Rr==null)throw new Error(`Argument "${ie}" is missing`)});let T={...Oc,...l},R=`${c.toLowerCase()}-${n.toUpperCase()}`;function _(ie,Rr){let $r=T[ie];if($r==null)return"";try{return new xo($r.replace(Rc,""),R).format(Rr)}catch{return Vc.error("Failed to format literal:",$r),""}}let F=t&&m?m:u,z=e?Lo:wo;r&&(z=Po);let{accessiblePrice:de,recurrenceTerm:ue,...Ge}=z({commitment:h,formatString:d,term:L,price:e?u:F,usePrecision:I,isIndianPrice:n==="IN"}),q=de,Se="";if(S(o)&&ue){let ie=_(Le.recurrenceAriaLabel,{recurrenceTerm:ue});ie&&(q+=" "+ie),Se=_(Le.recurrenceLabel,{recurrenceTerm:ue})}let me="";if(S(a)){me=_(Le.perUnitLabel,{perUnit:"LICENSE"});let ie=_(Le.perUnitAriaLabel,{perUnit:"LICENSE"});ie&&(q+=" "+ie)}let Y="";S(s)&&f&&(Y=_(g===$c?Le.taxExclusiveLabel:Le.taxInclusiveLabel,{taxTerm:f}),Y&&(q+=" "+Y)),t&&(q=_(Le.strikethroughAriaLabel,{strikethroughPrice:q}));let Z=B.container;if(e&&(Z+=" "+B.containerOptical),t&&(Z+=" "+B.containerStrikethrough),r&&(Z+=" "+B.containerAnnual),S(i))return Uc(Z,{...Ge,accessibleLabel:q,recurrenceLabel:Se,perUnitLabel:me,taxInclusivityLabel:Y},A);let{currencySymbol:jt,decimals:ns,decimalsDelimiter:is,hasCurrencySpace:ki,integer:os,isCurrencyFirst:as}=Ge,He=[os,is,ns];as?(He.unshift(ki?"\xA0":""),He.unshift(jt)):(He.push(ki?"\xA0":""),He.push(jt)),He.push(Se,me,Y);let ss=He.join("");return J(Z,ss,A)},Co=()=>(e,t,r)=>{let i=(e.displayOldPrice===void 0||S(e.displayOldPrice))&&t.priceWithoutDiscount&&t.priceWithoutDiscount!=t.price;return`${we()(e,t,r)}${i?" "+we({displayStrikethrough:!0})(e,t,r):""}`};var bn=we(),An=Co(),En=we({displayOptical:!0}),Sn=we({displayStrikethrough:!0}),yn=we({displayAnnual:!0});var Dc=(e,t)=>{if(!(!je(e)||!je(t)))return Math.floor((t-e)/t*100)},Io=()=>(e,t,r)=>{let{price:n,priceWithoutDiscount:i}=t,o=Dc(n,i);return o===void 0?'':`${o}%`};var Tn=Io();var{freeze:wt}=Object,Q=wt({...ye}),ee=wt({...X}),Pe={STAGE:"STAGE",PRODUCTION:"PRODUCTION",LOCAL:"LOCAL"},_n=wt({...$}),Ln=wt({...Fi}),wn=wt({...k});var Gn={};fs(Gn,{CLASS_NAME_FAILED:()=>Pn,CLASS_NAME_PENDING:()=>Cn,CLASS_NAME_RESOLVED:()=>In,ERROR_MESSAGE_BAD_REQUEST:()=>hr,ERROR_MESSAGE_MISSING_LITERALS_URL:()=>Gc,ERROR_MESSAGE_OFFER_NOT_FOUND:()=>Nn,EVENT_TYPE_ERROR:()=>Hc,EVENT_TYPE_FAILED:()=>kn,EVENT_TYPE_PENDING:()=>On,EVENT_TYPE_READY:()=>We,EVENT_TYPE_RESOLVED:()=>Vn,LOG_NAMESPACE:()=>Rn,Landscape:()=>Ce,PARAM_AOS_API_KEY:()=>zc,PARAM_ENV:()=>$n,PARAM_LANDSCAPE:()=>Mn,PARAM_WCS_API_KEY:()=>Fc,STATE_FAILED:()=>oe,STATE_PENDING:()=>ae,STATE_RESOLVED:()=>se,WCS_PROD_URL:()=>Un,WCS_STAGE_URL:()=>Dn});var Pn="placeholder-failed",Cn="placeholder-pending",In="placeholder-resolved",hr="Bad WCS request",Nn="Commerce offer not found",Gc="Literals URL not provided",Hc="mas:error",kn="mas:failed",On="mas:pending",We="mas:ready",Vn="mas:resolved",Rn="mas/commerce",$n="commerce.env",Mn="commerce.landscape",zc="commerce.aosKey",Fc="commerce.wcsKey",Un="https://www.adobe.com/web_commerce_artifact",Dn="https://www.stage.adobe.com/web_commerce_artifact_stage",oe="failed",ae="pending",se="resolved",Ce={DRAFT:"DRAFT",PUBLISHED:"PUBLISHED"};var No="mas-commerce-service";function ko(e,{once:t=!1}={}){let r=null;function n(){let i=document.querySelector(No);i!==r&&(r=i,i&&e(i))}return document.addEventListener(We,n,{once:t}),ge(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(tn)),i}var ge=e=>window.setTimeout(e);function qe(e,t=1){if(e==null)return[t];let r=(Array.isArray(e)?e:String(e).split(",")).map(Xe).filter(je);return r.length||(r=[t]),r}function dr(e){return e==null?[]:(Array.isArray(e)?e:String(e).split(",")).filter(Xr)}function j(){return document.getElementsByTagName(No)?.[0]}var Kc={[oe]:Pn,[ae]:Cn,[se]:In},Bc={[oe]:kn,[ae]:On,[se]:Vn},Ze=class{constructor(t){p(this,"changes",new Map);p(this,"connected",!1);p(this,"dispose",Be);p(this,"error");p(this,"log");p(this,"options");p(this,"promises",[]);p(this,"state",ae);p(this,"timer",null);p(this,"value");p(this,"version",0);p(this,"wrapperElement");this.wrapperElement=t}update(){[oe,ae,se].forEach(t=>{this.wrapperElement.classList.toggle(Kc[t],t===this.state)})}notify(){(this.state===se||this.state===oe)&&(this.state===se?this.promises.forEach(({resolve:t})=>t(this.wrapperElement)):this.state===oe&&this.promises.forEach(({reject:t})=>t(this.error)),this.promises=[]),this.wrapperElement.dispatchEvent(new CustomEvent(Bc[this.state],{bubbles:!0}))}attributeChangedCallback(t,r,n){this.changes.set(t,n),this.requestUpdate()}connectedCallback(){this.dispose=ko(()=>this.requestUpdate(!0))}disconnectedCallback(){this.connected&&(this.connected=!1,this.log?.debug("Disconnected:",{element:this.wrapperElement})),this.dispose(),this.dispose=Be}onceSettled(){let{error:t,promises:r,state:n}=this;return se===n?Promise.resolve(this.wrapperElement):oe===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=se,this.value=r,this.update(),this.log?.debug("Resolved:",{element:this.wrapperElement,value:r}),ge(()=>this.notify()),!0)}toggleFailed(t,r,n){return t!==this.version?!1:(n!==void 0&&(this.options=n),this.error=r,this.state=oe,this.update(),this.log?.error("Failed:",{element:this.wrapperElement,error:r}),ge(()=>this.notify()),!0)}togglePending(t){return this.version++,t&&(this.options=t),this.state=ae,this.update(),ge(()=>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=ae,this.timer=ge(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===ae&&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 Oo(e={}){return Object.entries(e).forEach(([t,r])=>{(r==null||r===""||r?.length===0)&&delete e[t]}),e}function ur(e,t={}){let{tag:r,is:n}=e,i=document.createElement(r,{is:n});return i.setAttribute("is",n),Object.assign(i.dataset,Oo(t)),i}function mr(e,t={}){return e instanceof HTMLElement?(Object.assign(e.dataset,Oo(t)),e):null}var jc="download",Yc="upgrade",Ie,Ct=class Ct extends HTMLAnchorElement{constructor(){super();K(this,Ie);p(this,"masElement",new Ze(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:d,promotionCode:u,quantity:m,wcsOsi:g,extraOptions:f}=i.collectCheckoutOptions(r),L=ur(Ct,{checkoutMarketSegment:o,checkoutWorkflow:a,checkoutWorkflowStep:s,entitlement:c,upgrade:l,modal:h,perpetual:d,promotionCode:u,quantity:m,wcsOsi:g,extraOptions:f});return n&&(L.innerHTML=`${n}`),L}get isCheckoutLink(){return!0}clickHandler(r){var n;(n=M(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(h=>{h&&(this.dataset.imsCountry=h)},Be);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=>Pt(h,i));let l=await n.buildCheckoutAction?.(c.flat(),{...o,...i},this);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)),M(this,Ie)&&pe(this,Ie,void 0),o){this.classList.remove(jc,Yc),this.masElement.toggleResolved(a,r,n);let{url:l,text:h,className:d,handler:u}=o;return l&&(this.href=l),h&&(this.firstElementChild.innerHTML=h),d&&this.classList.add(...d.split(" ")),u&&(this.setAttribute("href","#"),pe(this,Ie,u.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:d,quantity:u,wcsOsi:m}=n.collectCheckoutOptions(r);return mr(this,{checkoutMarketSegment:i,checkoutWorkflow:o,checkoutWorkflowStep:a,entitlement:s,upgrade:c,modal:l,perpetual:h,promotionCode:d,quantity:u,wcsOsi:m}),!0}};Ie=new WeakMap,p(Ct,"is","checkout-link"),p(Ct,"tag","a");var te=Ct;window.customElements.get(te.is)||window.customElements.define(te.is,te,{extends:te.tag});var y=Object.freeze({checkoutClientId:"adobe_com",checkoutWorkflow:Q.V3,checkoutWorkflowStep:ee.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:Ce.PUBLISHED,wcsBufferLimit:1});function Vo({providers:e,settings:t}){function r(o,a){let{checkoutClientId:s,checkoutWorkflow:c,checkoutWorkflowStep:l,country:h,language:d,promotionCode:u,quantity:m}=t,{checkoutMarketSegment:g,checkoutWorkflow:f=c,checkoutWorkflowStep:L=l,imsCountry:I,country:A=I??h,language:T=d,quantity:R=m,entitlement:_,upgrade:F,modal:z,perpetual:de,promotionCode:ue=u,wcsOsi:Ge,extraOptions:q,...Se}=Object.assign({},a?.dataset??{},o??{}),me=fe(f,Q,y.checkoutWorkflow),Y=ee.CHECKOUT;me===Q.V3&&(Y=fe(L,ee,y.checkoutWorkflowStep));let Z=Ye({...Se,extraOptions:q,checkoutClientId:s,checkoutMarketSegment:g,country:A,quantity:qe(R,y.quantity),checkoutWorkflow:me,checkoutWorkflowStep:Y,language:T,entitlement:S(_),upgrade:S(F),modal:S(z),perpetual:S(de),promotionCode:At(ue).effectivePromoCode,wcsOsi:dr(Ge)});if(a)for(let jt of e.checkout)jt(a,Z);return Z}function n(o,a){if(!Array.isArray(o)||!o.length||!a)return"";let{env:s,landscape:c}=t,{checkoutClientId:l,checkoutMarketSegment:h,checkoutWorkflow:d,checkoutWorkflowStep:u,country:m,promotionCode:g,quantity:f,...L}=r(a),I=window.frameElement?"if":"fp",A={checkoutPromoCode:g,clientId:l,context:I,country:m,env:s,items:[],marketSegment:h,workflowStep:u,landscape:c,...L};if(o.length===1){let[{offerId:T,offerType:R,productArrangementCode:_}]=o,{marketSegments:[F]}=o[0];Object.assign(A,{marketSegment:F,offerType:R,productArrangementCode:_}),A.items.push(f[0]===1?{id:T}:{id:T,quantity:f[0]})}else A.items.push(...o.map(({offerId:T},R)=>({id:T,quantity:f[R]??y.quantity})));return zr(d,A)}let{createCheckoutLink:i}=te;return{CheckoutLink:te,CheckoutWorkflow:Q,CheckoutWorkflowStep:ee,buildCheckoutURL:n,collectCheckoutOptions:r,createCheckoutLink:i}}var Hn={clientId:"merch-at-scale",delimiter:"\xB6",ignoredProperties:["analytics","literals"],serializableTypes:["Array","Object"],sampleRate:30,tags:"consumer=milo/commerce"},Ro=new Set,Xc=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(!Hn.serializableTypes.includes(r))return r}return e}function Wc(e,t){if(!Hn.ignoredProperties.includes(e))return $o(t)}var zn={append(e){let{delimiter:t,sampleRate:r,tags:n,clientId:i}=Hn,{message:o,params:a}=e,s=[],c=o,l=[];a.forEach(u=>{u!=null&&(Xc(u)?s:l).push(u)}),s.length&&(c+=" ",c+=s.map($o).join(" "));let{pathname:h,search:d}=window.location;c+=`${t}page=`,c+=h+d,l.length&&(c+=`${t}facts=`,c+=JSON.stringify(l,Wc)),Ro.has(c)||(Ro.add(c),window.lana?.log(c,{sampleRate:r,tags:n,clientId:i}))}};var Fn=Object.freeze({LOCAL:"local",PROD:"prod",STAGE:"stage"});function qc({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={}}=e,r=Pe.PRODUCTION,n=Un,i=O("checkoutClientId",t)??y.checkoutClientId,o=fe(O("checkoutWorkflow",t),Q,y.checkoutWorkflow),a=ee.CHECKOUT;o===Q.V3&&(a=fe(O("checkoutWorkflowStep",t),ee,y.checkoutWorkflowStep));let s=S(O("displayOldPrice",t),y.displayOldPrice),c=S(O("displayPerUnit",t),y.displayPerUnit),l=S(O("displayRecurrence",t),y.displayRecurrence),h=S(O("displayTax",t),y.displayTax),d=S(O("entitlement",t),y.entitlement),u=S(O("modal",t),y.modal),m=S(O("forceTaxExclusive",t),y.forceTaxExclusive),g=O("promotionCode",t)??y.promotionCode,f=qe(O("quantity",t)),L=O("wcsApiKey",t)??y.wcsApiKey,I=t?.env==="stage",A=Ce.PUBLISHED;["true",""].includes(t.allowOverride)&&(I=(O($n,t,{metadata:!1})?.toLowerCase()??t?.env)==="stage",A=fe(O(Mn,t),Ce,A)),I&&(r=Pe.STAGE,n=Dn);let R=Xe(O("wcsBufferDelay",t),y.wcsBufferDelay),_=Xe(O("wcsBufferLimit",t),y.wcsBufferLimit);return{...qc(e),displayOldPrice:s,checkoutClientId:i,checkoutWorkflow:o,checkoutWorkflowStep:a,displayPerUnit:c,displayRecurrence:l,displayTax:h,entitlement:d,extraOptions:y.extraOptions,modal:u,env:r,forceTaxExclusive:m,promotionCode:g,quantity:f,wcsApiKey:L,wcsBufferDelay:R,wcsBufferLimit:_,wcsURL:n,landscape:A}}var Uo="debug",Zc="error",Jc="info",Qc="warn",el=Date.now(),Bn=new Set,jn=new Set,Mo=new Map,It=Object.freeze({DEBUG:Uo,ERROR:Zc,INFO:Jc,WARN:Qc}),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},tl={filter:()=>!1};function rl(e,t,r,n,i){return{level:e,message:t,namespace:r,get params(){if(n.length===1){let[o]=n;bt(o)&&(n=o(),Array.isArray(n)||(n=[n]))}return n},source:i,timestamp:Date.now()-el}}function nl(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)=>nl(rl(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 pr(...e){e.forEach(t=>{let{append:r,filter:n}=t;bt(n)?jn.add(n):bt(r)&&Bn.add(r)})}function il(e={}){let{name:t}=e,r=S(O("commerce.debug",{search:!0,storage:!0}),t===Fn.LOCAL);return pr(r?Do:Go),t===Fn.PROD&&pr(zn),W}function ol(){Bn.clear(),jn.clear()}var W={...Ho(Rn),Level:It,Plugins:{consoleAppender:Do,debugFilter:Go,quietFilter:tl,lanaAppender:zn},init:il,reset:ol,use:pr};function al({interval:e=200,maxAttempts:t=25}={}){let r=W.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 sl(e){return e.then(()=>window.adobeIMS?.isSignedInUser()??!1)}function cl(e){let t=W.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 zo({}){let e=al(),t=sl(e),r=cl(t);return{imsReadyPromise:e,imsSignedInPromise:t,imsCountryPromise:r}}async function Ko(e,t){let{data:r}=t||await Promise.resolve().then(()=>xs(Fo(),1));if(Array.isArray(r)){let n=o=>r.find(a=>qt(a.lang,o)),i=n(e.language)??n(y.language);if(i)return Object.freeze(i)}return{}}var Bo=["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"],hl={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"]},Nt=class Nt extends HTMLSpanElement{constructor(){super();p(this,"masElement",new Ze(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:d,template:u,wcsOsi:m}=n.collectPriceOptions(r);return ur(Nt,{displayOldPrice:i,displayPerUnit:o,displayRecurrence:a,displayTax:s,forceTaxExclusive:c,perpetual:l,promotionCode:h,quantity:d,template:u,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(Bo.includes(r)||Bo.includes(a))return!0;let s=hl[`${i}_${o}`];return s?!!(s.includes(r)||s.includes(a)):!1}async resolveDisplayTax(r,n){let[i]=await r.resolveOfferSelectors(n),o=Pt(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(Pt(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:d,template:u,wcsOsi:m}=n.collectPriceOptions(r);return mr(this,{displayOldPrice:i,displayPerUnit:o,displayRecurrence:a,displayTax:s,forceTaxExclusive:c,perpetual:l,promotionCode:h,quantity:d,template:u,wcsOsi:m}),!0}};p(Nt,"is","inline-price"),p(Nt,"tag","span");var re=Nt;window.customElements.get(re.is)||window.customElements.define(re.is,re,{extends:re.tag});function jo({literals:e,providers:t,settings:r}){function n(a,s){let{country:c,displayOldPrice:l,displayPerUnit:h,displayRecurrence:d,displayTax:u,forceTaxExclusive:m,language:g,promotionCode:f,quantity:L}=r,{displayOldPrice:I=l,displayPerUnit:A=h,displayRecurrence:T=d,displayTax:R=u,forceTaxExclusive:_=m,country:F=c,language:z=g,perpetual:de,promotionCode:ue=f,quantity:Ge=L,template:q,wcsOsi:Se,...me}=Object.assign({},s?.dataset??{},a??{}),Y=Ye({...me,country:F,displayOldPrice:S(I),displayPerUnit:S(A),displayRecurrence:S(T),displayTax:S(R),forceTaxExclusive:S(_),language:z,perpetual:S(de),promotionCode:At(ue).effectivePromoCode,quantity:qe(Ge,y.quantity),template:q,wcsOsi:dr(Se)});if(s)for(let Z of t.price)Z(s,Y);return Y}function i(a,s){if(!Array.isArray(a)||!a.length||!s)return"";let{template:c}=s,l;switch(c){case"discount":l=Tn;break;case"strikethrough":l=Sn;break;case"optical":l=En;break;case"annual":l=yn;break;default:l=s.promotionCode?An:bn}let h=n(s);h.literals=Object.assign({},e.price,Ye(s.literals??{}));let[d]=a;return d={...d,...d.priceDetails},l(h,d)}let{createInlinePrice:o}=re;return{InlinePrice:re,buildPriceHTML:i,collectPriceOptions:n,createInlinePrice:o}}function Yo({settings:e}){let t=W.module("wcs"),{env:r,wcsApiKey:n}=e,i=new Map,o=new Map,a;async function s(d,u,m=!0){let g=Nn;t.debug("Fetching:",d);try{d.offerSelectorIds=d.offerSelectorIds.sort();let f=new URL(e.wcsURL);f.searchParams.set("offer_selector_ids",d.offerSelectorIds.join(",")),f.searchParams.set("country",d.country),f.searchParams.set("locale",d.locale),f.searchParams.set("landscape",r===Pe.STAGE?"ALL":e.landscape),f.searchParams.set("api_key",n),d.language&&f.searchParams.set("language",d.language),d.promotionCode&&f.searchParams.set("promotion_code",d.promotionCode),d.currency&&f.searchParams.set("currency",d.currency);let L=await fetch(f.toString(),{credentials:"omit"});if(L.ok){let I=await L.json();t.debug("Fetched:",d,I);let A=I.resolvedOffers??[];A=A.map(Qt),u.forEach(({resolve:T},R)=>{let _=A.filter(({offerSelectorIds:F})=>F.includes(R)).flat();_.length&&(u.delete(R),T(_))})}else L.status===404&&d.offerSelectorIds.length>1?(t.debug("Multi-osi 404, fallback to fetch-by-one strategy"),await Promise.allSettled(d.offerSelectorIds.map(I=>s({...d,offerSelectorIds:[I]},u,!1)))):(g=hr,t.error(g,d))}catch(f){g=hr,t.error(g,d,f)}m&&u.size&&(t.debug("Missing:",{offerSelectorIds:[...u.keys()]}),u.forEach(f=>{f.reject(new Error(g))}))}function c(){clearTimeout(a);let d=[...o.values()];o.clear(),d.forEach(({options:u,promises:m})=>s(u,m))}function l(){let d=i.size;i.clear(),t.debug(`Flushed ${d} cache entries`)}function h({country:d,language:u,perpetual:m=!1,promotionCode:g="",wcsOsi:f=[]}){let L=`${u}_${d}`;d!=="GB"&&(u=m?"EN":"MULT");let I=[d,u,g].filter(A=>A).join("-").toLowerCase();return f.map(A=>{let T=`${A}-${I}`;if(!i.has(T)){let R=new Promise((_,F)=>{let z=o.get(I);if(!z){let de={country:d,locale:L,offerSelectorIds:[]};d!=="GB"&&(de.language=u),z={options:de,promises:new Map},o.set(I,z)}g&&(z.options.promotionCode=g),z.options.offerSelectorIds.push(A),z.promises.set(A,{resolve:_,reject:F}),z.options.offerSelectorIds.length>=e.wcsBufferLimit?c():(t.debug("Queued:",z.options),a||(a=setTimeout(c,e.wcsBufferDelay)))});i.set(T,R)}return i.get(T)})}return{WcsCommitment:_n,WcsPlanType:Ln,WcsTerm:wn,resolveOfferSelectors:h,flushWcsCache:l}}var Yn="mas-commerce-service",gr,Xo,fr=class extends HTMLElement{constructor(){super(...arguments);K(this,gr);p(this,"promise",null)}async registerCheckoutAction(r){typeof r=="function"&&(this.buildCheckoutAction=async(n,i,o)=>{let a=await r?.(n,i,this.imsSignedInPromise,o);return a||null})}async activate(){let r=M(this,gr,Xo),n=W.init(r.env).module("service");n.debug("Activating:",r);let i=Object.freeze(Kn(r)),o={price:{}};try{o.price=await Ko(i,r.commerce.priceLiterals)}catch{}let a={checkout:new Set,price:new Set},s={literals:o,providers:a,settings:i};Object.defineProperties(this,Object.getOwnPropertyDescriptors({...Vo(s),...zo(s),...jo(s),...Yo(s),...Gn,Log:W,get defaults(){return y},get log(){return W},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:o,settings:i}),ge(()=>{let c=new CustomEvent(We,{bubbles:!0,cancelable:!1,detail:this});this.dispatchEvent(c)})}connectedCallback(){this.readyPromise||(this.readyPromise=this.activate())}disconnectedCallback(){this.readyPromise=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")}};gr=new WeakSet,Xo=function(){let r={commerce:{env:this.getAttribute("env")}};return["locale","country","language"].forEach(n=>{let i=this.getAttribute(n);i&&(r[n]=i)}),["checkout-workflow-step","force-tax-exclusive","checkout-client-id","allow-override"].forEach(n=>{let i=this.getAttribute(n);if(i!=null){let o=n.replace(/-([a-z])/g,a=>a[1].toUpperCase());r.commerce[o]=i}}),r},p(fr,"instance");window.customElements.get(Yn)||window.customElements.define(Yn,fr);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 Xn=(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 Wn,Er=window,Jo=Er.trustedTypes,dl=Jo?Jo.emptyScript:"",Qo=Er.reactiveElementPolyfillSupport,Zn={toAttribute(e,t){switch(t){case Boolean:e=e?dl: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),qn={attribute:!0,type:String,converter:Zn,reflect:!1,hasChanged:ea},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(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 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||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[Jn]=!0,Ne.elementProperties=new Map,Ne.elementStyles=[],Ne.shadowRootOptions={mode:"open"},Qo?.({ReactiveElement:Ne}),((Wn=Er.reactiveElementVersions)!==null&&Wn!==void 0?Wn:Er.reactiveElementVersions=[]).push("1.6.3");var Qn,Sr=window,Je=Sr.trustedTypes,ta=Je?Je.createPolicy("lit-html",{createHTML:e=>e}):void 0,ti="$lit$",xe=`lit$${(Math.random()+"").slice(9)}$`,ca="?"+xe,ul=`<${ca}>`,Ve=document,yr=()=>Ve.createComment(""),Ot=e=>e===null||typeof e!="object"&&typeof e!="function",la=Array.isArray,ml=e=>la(e)||typeof e?.[Symbol.iterator]=="function",ei=`[ +\f\r]`,kt=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,ra=/-->/g,na=/>/g,ke=RegExp(`>|${ei}(?:([^\\s"'>=/]+)(${ei}*=${ei}*(?:[^ +\f\r"'\`<>=]|("|')|))|$)`,"g"),ia=/'/g,oa=/"/g,ha=/^(?:script|style|textarea|title)$/i,da=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),Gu=da(1),Hu=da(2),Vt=Symbol.for("lit-noChange"),U=Symbol.for("lit-nothing"),aa=new WeakMap,Oe=Ve.createTreeWalker(Ve,129,null,!1);function ua(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return ta!==void 0?ta.createHTML(t):t}var pl=(e,t)=>{let r=e.length-1,n=[],i,o=t===2?"":"",a=kt;for(let s=0;s"?(a=i??kt,d=-1):h[1]===void 0?d=-2:(d=a.lastIndex-h[2].length,l=h[1],a=h[3]===void 0?ke:h[3]==='"'?oa:ia):a===oa||a===ia?a=ke:a===ra||a===na?a=kt:(a=ke,i=void 0);let m=a===ke&&e[s+1].startsWith("/>")?" ":"";o+=a===kt?c+ul:d>=0?(n.push(l),c.slice(0,d)+ti+c.slice(d)+xe+m):c+xe+(d===-2?(n.push(void 0),s):m)}return[ua(e,o+(e[r]||"")+(t===2?"":"")),n]},Rt=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]=pl(t,r);if(this.el=e.createElement(l,n),Oe.currentNode=this.el.content,r===2){let d=this.el.content,u=d.firstChild;u.remove(),d.append(...u.childNodes)}for(;(i=Oe.nextNode())!==null&&c.length0){i.textContent=Je?Je.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=Qe(this,t,r,0),a=!Ot(t)||t!==this._$AH&&t!==Vt,a&&(this._$AH=t);else{let s=t,c,l;for(t=o[0],c=0;cnew $t(typeof e=="string"?e:e+"",void 0,si),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 $t(r,e,si)},ci=(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 ve(r)})(e):e;var li,Pr=window,pa=Pr.trustedTypes,gl=pa?pa.emptyScript:"",fa=Pr.reactiveElementPolyfillSupport,di={toAttribute(e,t){switch(t){case Boolean:e=e?gl: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),hi={attribute:!0,type:String,converter:di,reflect:!1,hasChanged:ga},ui="finalized",ce=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(ui))return!1;this[ui]=!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 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: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){}};ce[ui]=!0,ce.elementProperties=new Map,ce.elementStyles=[],ce.shadowRootOptions={mode:"open"},fa?.({ReactiveElement:ce}),((li=Pr.reactiveElementVersions)!==null&&li!==void 0?li:Pr.reactiveElementVersions=[]).push("1.6.3");var mi,Cr=window,tt=Cr.trustedTypes,xa=tt?tt.createPolicy("lit-html",{createHTML:e=>e}):void 0,fi="$lit$",be=`lit$${(Math.random()+"").slice(9)}$`,Ta="?"+be,xl=`<${Ta}>`,Me=document,Ut=()=>Me.createComment(""),Dt=e=>e===null||typeof e!="object"&&typeof e!="function",_a=Array.isArray,vl=e=>_a(e)||typeof e?.[Symbol.iterator]=="function",pi=`[ +\f\r]`,Mt=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,va=/-->/g,ba=/>/g,Re=RegExp(`>|${pi}(?:([^\\s"'>=/]+)(${pi}*=${pi}*(?:[^ +\f\r"'\`<>=]|("|')|))|$)`,"g"),Aa=/'/g,Ea=/"/g,La=/^(?:script|style|textarea|title)$/i,wa=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),x=wa(1),Yu=wa(2),Ue=Symbol.for("lit-noChange"),D=Symbol.for("lit-nothing"),Sa=new WeakMap,$e=Me.createTreeWalker(Me,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 bl=(e,t)=>{let r=e.length-1,n=[],i,o=t===2?"":"",a=Mt;for(let s=0;s"?(a=i??Mt,d=-1):h[1]===void 0?d=-2:(d=a.lastIndex-h[2].length,l=h[1],a=h[3]===void 0?Re:h[3]==='"'?Ea:Aa):a===Ea||a===Aa?a=Re:a===va||a===ba?a=Mt:(a=Re,i=void 0);let m=a===Re&&e[s+1].startsWith("/>")?" ":"";o+=a===Mt?c+xl:d>=0?(n.push(l),c.slice(0,d)+fi+c.slice(d)+be+m):c+be+(d===-2?(n.push(void 0),s):m)}return[Pa(e,o+(e[r]||"")+(t===2?"":"")),n]},Gt=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]=bl(t,r);if(this.el=e.createElement(l,n),$e.currentNode=this.el.content,r===2){let d=this.el.content,u=d.firstChild;u.remove(),d.append(...u.childNodes)}for(;(i=$e.nextNode())!==null&&c.length0){i.textContent=tt?tt.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=rt(this,t,r,0),a=!Dt(t)||t!==this._$AH&&t!==Ue,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 Ht(t.insertBefore(Ut(),s),s,void 0,r??{})}return a._$AI(e),a};var Ei,Si;var ne=class extends ce{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 Ue}};ne.finalized=!0,ne._$litElement$=!0,(Ei=globalThis.litElementHydrateSupport)===null||Ei===void 0||Ei.call(globalThis,{LitElement:ne});var Ia=globalThis.litElementPolyfillSupport;Ia?.({LitElement:ne});((Si=globalThis.litElementVersions)!==null&&Si!==void 0?Si:globalThis.litElementVersions=[]).push("3.3.3");var Ae="(max-width: 767px)",Ir="(max-width: 1199px)",V="(min-width: 768px)",N="(min-width: 1200px)",G="(min-width: 1600px)";var Na=w` :host { position: relative; display: flex; @@ -216,9 +216,9 @@ Try polyfilling it using "@formatjs/intl-pluralrules" display: flex; gap: 8px; } -`,Na=()=>[w` +`,ka=()=>[w` /* Tablet */ - @media screen and ${ge(V)} { + @media screen and ${ve(V)} { :host([size='wide']), :host([size='super-wide']) { width: 100%; @@ -227,11 +227,11 @@ Try polyfilling it using "@formatjs/intl-pluralrules" } /* Laptop */ - @media screen and ${ge(N)} { + @media screen and ${ve(N)} { :host([size='wide']) { grid-column: span 2; } - `];var rt,Ht=class Ht{constructor(t){p(this,"card");B(this,rt);this.card=t,this.insertVariantStyle()}getContainer(){return ft(this,rt,F(this,rt)??this.card.closest('[class*="-merch-cards"]')??this.card.parentElement),F(this,rt)}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){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;`),x` + `];var it,zt=class zt{constructor(t){p(this,"card");K(this,it);this.card=t,this.insertVariantStyle()}getContainer(){return pe(this,it,M(this,it)??this.card.closest('[class*="-merch-cards"]')??this.card.parentElement),M(this,it)}insertVariantStyle(){if(!zt.styleMap[this.card.variant]){zt.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;`),x`
${this.card.secureLabel}`:"";return x`
${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(){}};rt=new WeakMap,p(Ht,"styleMap",{});var P=Ht;function le(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 ka(){return window.matchMedia("(max-width: 1024px)").matches}var Oa="merch-offer-select:ready",Va="merch-card:ready",Ra="merch-card:action-menu-toggle";var Si="merch-storage:change",yi="merch-quantity-selector:change";var nt="aem:load",it="aem:error",$a="mas:ready",Ma="mas:error";var Ua=` + >`:"";return x`
${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(){}};it=new WeakMap,p(zt,"styleMap",{});var P=zt;function le(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 Nr(){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",Ti="merch-quantity-selector:change";var ot="aem:load",at="aem:error",Ma="mas:ready",Ua="mas:error";var Da=` :root { --consonant-merch-card-catalog-width: 276px; --consonant-merch-card-catalog-icon-size: 40px; @@ -286,7 +286,7 @@ Try polyfilling it using "@formatjs/intl-pluralrules" } } -@media screen and ${D} { +@media screen and ${G} { .four-merch-cards.catalog { grid-template-columns: repeat(4, var(--consonant-merch-card-catalog-width)); } @@ -337,12 +337,12 @@ merch-card[variant="catalog"] .payment-details { font-style: italic; font-weight: 400; line-height: var(--consonant-merch-card-body-line-height); -}`;var Al={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"]},ot=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(Ra,{bubbles:!0,composed:!0,detail:{card:this.card.name,type:"action-menu"}})),i.classList.toggle("hidden",n))})}get aemFragmentMapping(){return Al}renderLayout(){return x`
+}`;var El={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 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 El}renderLayout(){return x`
${this.badge}
@@ -363,7 +363,7 @@ merch-card[variant="catalog"] .payment-details { >`:""}
${this.secureLabelFooter} - `}getGlobalCSS(){return Ua}connectedCallbackHook(){this.card.addEventListener("mouseleave",this.toggleActionMenu)}disconnectedCallbackHook(){this.card.removeEventListener("mouseleave",this.toggleActionMenu)}};p(ot,"variantStyle",w` + `}getGlobalCSS(){return Da}connectedCallbackHook(){this.card.addEventListener("mouseleave",this.toggleActionMenu)}disconnectedCallbackHook(){this.card.removeEventListener("mouseleave",this.toggleActionMenu)}};p(st,"variantStyle",w` :host([variant='catalog']) { min-height: 330px; width: var(--consonant-merch-card-catalog-width); @@ -381,7 +381,7 @@ merch-card[variant="catalog"] .payment-details { margin-left: var(--consonant-merch-spacing-xxs); box-sizing: border-box; } - `);var Da=` + `);var Ga=` :root { --consonant-merch-card-ccd-action-width: 276px; --consonant-merch-card-ccd-action-min-height: 320px; @@ -413,12 +413,12 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${D} { +@media screen and ${G} { .four-merch-cards.ccd-action { grid-template-columns: repeat(4, var(--consonant-merch-card-ccd-action-width)); } } -`;var El={title:{tag:"h3",slot:"heading-xs"},prices:{tag:"h3",slot:"heading-xs"},description:{tag:"div",slot:"body-xs"},ctas:{size:"l"}},at=class extends P{constructor(t){super(t)}getGlobalCSS(){return Da}get aemFragmentMapping(){return El}renderLayout(){return x`
+`;var Sl={title:{tag:"h3",slot:"heading-xs"},prices:{tag:"h3",slot:"heading-xs"},description:{tag:"div",slot:"body-xs"},ctas:{size:"l"}},ct=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ga}get aemFragmentMapping(){return Sl}renderLayout(){return x`
${this.badge} @@ -427,11 +427,11 @@ merch-card[variant="ccd-action"] .price-strikethrough { >`}
-
`}};p(at,"variantStyle",w` +
`}};p(ct,"variantStyle",w` :host([variant='ccd-action']:not([size])) { width: var(--consonant-merch-card-ccd-action-width); } - `);var Ga=` + `);var Ha=` :root { --consonant-merch-card-image-width: 300px; } @@ -462,12 +462,12 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${D} { +@media screen and ${G} { .four-merch-cards.image { grid-template-columns: repeat(4, var(--consonant-merch-card-image-width)); } } -`;var Nr=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ga}renderLayout(){return x`${this.cardImage} +`;var kr=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ha}renderLayout(){return x`${this.cardImage}
@@ -484,7 +484,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { `:x`
${this.secureLabelFooter} - `}`}};var Ha=` + `}`}};var za=` :root { --consonant-merch-card-inline-heading-width: 300px; } @@ -515,12 +515,12 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${D} { +@media screen and ${G} { .four-merch-cards.inline-heading { grid-template-columns: repeat(4, var(--consonant-merch-card-inline-heading-width)); } } -`;var kr=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ha}renderLayout(){return x` ${this.badge} +`;var Or=class extends P{constructor(t){super(t)}getGlobalCSS(){return za}renderLayout(){return x` ${this.badge}
@@ -528,7 +528,7 @@ merch-card[variant="ccd-action"] .price-strikethrough {
- ${this.card.customHr?"":x`
`} ${this.secureLabelFooter}`}};var za=` + ${this.card.customHr?"":x`
`} ${this.secureLabelFooter}`}};var Fa=` :root { --consonant-merch-card-mini-compare-chart-icon-size: 32px; --consonant-merch-card-mini-compare-mobile-cta-font-size: 15px; @@ -634,7 +634,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { } /* mini compare mobile */ -@media screen and ${ve} { +@media screen and ${Ae} { :root { --consonant-merch-card-mini-compare-chart-width: 302px; --consonant-merch-card-mini-compare-chart-wide-width: 302px; @@ -672,7 +672,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${Cr} { +@media screen and ${Ir} { .three-merch-cards.mini-compare-chart merch-card [slot="footer"] a, .four-merch-cards.mini-compare-chart merch-card [slot="footer"] a { flex: 1; @@ -742,7 +742,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${D} { +@media screen and ${G} { .four-merch-cards.mini-compare-chart { grid-template-columns: repeat(4, var(--consonant-merch-card-mini-compare-chart-width)); } @@ -779,11 +779,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 Sl=32,st=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?x` +`;var yl=32,lt=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?x` ${this.card.secureLabel}`:x``;return x`
${r}
`})}getGlobalCSS(){return za}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(Sl,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 x`
+ >`:x``;return x`
${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(yl,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 x`
${this.badge}
@@ -795,7 +795,7 @@ merch-card .footer-row-cell:nth-child(8) { ${this.getMiniCompareFooter()} - `}async postCardUpdateHook(){Ir()?this.removeEmptyRows():(await Promise.all(this.card.prices.map(r=>r.onceSettled())),this.adjustMiniCompareBodySlots(),this.adjustMiniCompareFooterRows())}};p(st,"variantStyle",w` + `}async postCardUpdateHook(){Nr()?this.removeEmptyRows():(await Promise.all(this.card.prices.map(r=>r.onceSettled())),this.adjustMiniCompareBodySlots(),this.adjustMiniCompareFooterRows())}};p(lt,"variantStyle",w` :host([variant='mini-compare-chart']) > slot:not([name='icons']) { display: block; } @@ -811,7 +811,7 @@ merch-card .footer-row-cell:nth-child(8) { height: var(--consonant-merch-card-mini-compare-chart-top-section-height); } - @media screen and ${ge(Cr)} { + @media screen and ${ve(Ir)} { [class*'-merch-cards'] :host([variant='mini-compare-chart']) footer { flex-direction: column; align-items: stretch; @@ -819,7 +819,7 @@ merch-card .footer-row-cell:nth-child(8) { } } - @media screen and ${ge(N)} { + @media screen and ${ve(N)} { :host([variant='mini-compare-chart']) footer { padding: var(--consonant-merch-spacing-xs) var(--consonant-merch-spacing-s) @@ -867,7 +867,7 @@ merch-card .footer-row-cell:nth-child(8) { --consonant-merch-card-mini-compare-chart-callout-content-height ); } - `);var Fa=` + `);var Ka=` :root { --consonant-merch-card-plans-width: 300px; --consonant-merch-card-plans-icon-size: 40px; @@ -916,12 +916,12 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* Large desktop */ - @media screen and ${D} { + @media screen and ${G} { .four-merch-cards.plans { grid-template-columns: repeat(4, var(--consonant-merch-card-plans-width)); } } -`;var ct=class extends P{constructor(t){super(t)}getGlobalCSS(){return Fa}postCardUpdateHook(){this.adjustTitleWidth()}get stockCheckbox(){return this.card.checkboxLabel?x`
- ${this.secureLabelFooter}`}};p(ct,"variantStyle",w` + ${this.secureLabelFooter}`}};p(ht,"variantStyle",w` :host([variant='plans']) { min-height: 348px; } @@ -945,7 +945,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 Ka=` + `);var Ba=` :root { --consonant-merch-card-product-width: 300px; } @@ -980,12 +980,12 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* Large desktop */ -@media screen and ${D} { +@media screen and ${G} { .four-merch-cards.product { grid-template-columns: repeat(4, var(--consonant-merch-card-product-width)); } } -`;var Me=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ka}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 x` ${this.badge} +`;var De=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 x` ${this.badge}
@@ -996,7 +996,7 @@ merch-card[variant="plans"] [slot="quantity-select"] {
- ${this.secureLabelFooter}`}connectedCallbackHook(){super.connectedCallbackHook(),window.addEventListener("resize",this.postCardUpdateHook.bind(this))}postCardUpdateHook(){Ir()||this.adjustProductBodySlots(),this.adjustTitleWidth()}};p(Me,"variantStyle",w` + ${this.secureLabelFooter}`}connectedCallbackHook(){super.connectedCallbackHook(),window.addEventListener("resize",this.postCardUpdateHook.bind(this))}postCardUpdateHook(){Nr()||this.adjustProductBodySlots(),this.adjustTitleWidth()}};p(De,"variantStyle",w` :host([variant='product']) > slot:not([name='icons']) { display: block; } @@ -1024,7 +1024,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { :host([variant='product']) ::slotted([slot='heading-xs']) { max-width: var(--consonant-merch-card-heading-xs-max-width, 100%); } - `);var Ba=` + `);var ja=` :root { --consonant-merch-card-segment-width: 378px; } @@ -1038,7 +1038,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* Mobile */ -@media screen and ${ve} { +@media screen and ${Ae} { :root { --consonant-merch-card-segment-width: 276px; } @@ -1070,7 +1070,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { grid-template-columns: repeat(4, minmax(276px, var(--consonant-merch-card-segment-width))); } } -`;var lt=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ba}postCardUpdateHook(){this.adjustTitleWidth()}renderLayout(){return x` ${this.badge} +`;var dt=class extends P{constructor(t){super(t)}getGlobalCSS(){return ja}postCardUpdateHook(){this.adjustTitleWidth()}renderLayout(){return x` ${this.badge}
@@ -1079,14 +1079,14 @@ merch-card[variant="plans"] [slot="quantity-select"] { ${this.promoBottom?x``:""}

- ${this.secureLabelFooter}`}};p(lt,"variantStyle",w` + ${this.secureLabelFooter}`}};p(dt,"variantStyle",w` :host([variant='segment']) { min-height: 214px; } :host([variant='segment']) ::slotted([slot='heading-xs']) { max-width: var(--consonant-merch-card-heading-xs-max-width, 100%); } - `);var ja=` + `);var Ya=` :root { --consonant-merch-card-special-offers-width: 378px; } @@ -1103,7 +1103,7 @@ 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 ${ve} { +@media screen and ${Ae} { :root { --consonant-merch-card-special-offers-width: 302px; } @@ -1129,12 +1129,12 @@ merch-card[variant="special-offers"] span[is="inline-price"][data-template="stri } } -@media screen and ${D} { +@media screen and ${G} { .four-merch-cards.special-offers { grid-template-columns: repeat(4, minmax(300px, var(--consonant-merch-card-special-offers-width))); } } -`;var yl={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"}},ht=class extends P{constructor(t){super(t)}getGlobalCSS(){return ja}get headingSelector(){return'[slot="detail-m"]'}get aemFragmentMapping(){return yl}renderLayout(){return x`${this.cardImage} +`;var Tl={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 Tl}renderLayout(){return x`${this.cardImage}
@@ -1151,7 +1151,7 @@ merch-card[variant="special-offers"] span[is="inline-price"][data-template="stri
${this.secureLabelFooter} `} - `}};p(ht,"variantStyle",w` + `}};p(ut,"variantStyle",w` :host([variant='special-offers']) { min-height: 439px; } @@ -1163,7 +1163,7 @@ merch-card[variant="special-offers"] span[is="inline-price"][data-template="stri :host([variant='special-offers'].center) { text-align: center; } - `);var Ya=` + `);var Xa=` :root { --consonant-merch-card-twp-width: 268px; --consonant-merch-card-twp-mobile-width: 300px; @@ -1218,7 +1218,7 @@ merch-card[variant='twp'] merch-offer-select { grid-template-columns: var(--consonant-merch-card-image-width); } -@media screen and ${ve} { +@media screen and ${Ae} { :root { --consonant-merch-card-twp-width: 300px; } @@ -1255,7 +1255,7 @@ merch-card[variant='twp'] merch-offer-select { } } -@media screen and ${D} { +@media screen and ${G} { .one-merch-card.twp .two-merch-cards.twp { grid-template-columns: repeat(2, var(--consonant-merch-card-twp-width)); @@ -1264,7 +1264,7 @@ merch-card[variant='twp'] merch-offer-select { grid-template-columns: repeat(3, var(--consonant-merch-card-twp-width)); } } -`;var dt=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ya}renderLayout(){return x`${this.badge} +`;var mt=class extends P{constructor(t){super(t)}getGlobalCSS(){return Xa}renderLayout(){return x`${this.badge}
@@ -1273,7 +1273,7 @@ merch-card[variant='twp'] merch-offer-select {
-
`}};p(dt,"variantStyle",w` +
`}};p(mt,"variantStyle",w` :host([variant='twp']) { padding: 4px 10px 5px 10px; } @@ -1312,7 +1312,7 @@ merch-card[variant='twp'] merch-offer-select { flex-direction: column; align-self: flex-start; } - `);var Xa=` + `);var Wa=` :root { --merch-card-ccd-suggested-width: 304px; --merch-card-ccd-suggested-height: 205px; @@ -1348,7 +1348,7 @@ merch-card[variant="ccd-suggested"] [slot="cta"] a { color: var(--spectrum-gray-800, var(--merch-color-grey-80)); font-weight: 700; } -`;var Tl={subtitle:{tag:"h4",slot:"detail-s"},title:{tag:"h3",slot:"heading-xs"},prices:{tag:"p",slot:"price"},description:{tag:"div",slot:"body-xs"},ctas:{slot:"cta",size:"s",button:!1}},ut=class extends P{getGlobalCSS(){return Xa}get aemFragmentMapping(){return Tl}renderLayout(){return x` +`;var _l={subtitle:{tag:"h4",slot:"detail-s"},title:{tag:"h3",slot:"heading-xs"},prices:{tag:"p",slot:"price"},description:{tag:"div",slot:"body-xs"},ctas:{slot:"cta",size:"s",button:!1}},pt=class extends P{getGlobalCSS(){return Wa}get aemFragmentMapping(){return _l}renderLayout(){return x`
@@ -1363,7 +1363,7 @@ merch-card[variant="ccd-suggested"] [slot="cta"] a {
- `}};p(ut,"variantStyle",w` + `}};p(pt,"variantStyle",w` :host([variant='ccd-suggested']) { background-color: var( --spectrum-gray-50, #fff); @@ -1436,7 +1436,7 @@ merch-card[variant="ccd-suggested"] [slot="cta"] a { margin-top: auto; align-items: center; } - `);var Wa=` + `);var qa=` :root { --consonant-merch-card-ccd-slice-single-width: 322px; --consonant-merch-card-ccd-slice-icon-size: 30px; @@ -1458,7 +1458,7 @@ merch-card[variant="ccd-slice"] [slot='body-s'] a:not(.con-button) { overflow: hidden; border-radius: 50%; } -`;var _l={backgroundImage:{tag:"div",slot:"image"},description:{tag:"div",slot:"body-s"},ctas:{size:"s"},allowedSizes:["wide"]},mt=class extends P{getGlobalCSS(){return Wa}get aemFragmentMapping(){return _l}renderLayout(){return x`
+`;var Ll={backgroundImage:{tag:"div",slot:"image"},description:{tag:"div",slot:"body-s"},ctas:{size:"s"},allowedSizes:["wide"]},ft=class extends P{getGlobalCSS(){return qa}get aemFragmentMapping(){return Ll}renderLayout(){return x`
${this.badge} @@ -1467,7 +1467,7 @@ merch-card[variant="ccd-slice"] [slot='body-s'] a:not(.con-button) {
- `}};p(mt,"variantStyle",w` + `}};p(ft,"variantStyle",w` :host([variant='ccd-slice']) { width: var(--consonant-merch-card-ccd-slice-single-width); background-color: var( @@ -1536,7 +1536,7 @@ merch-card[variant="ccd-slice"] [slot='body-s'] a:not(.con-button) { :host([variant='ccd-slice']) .top-section { align-items: center; } - `);var Ti=(e,t=!1)=>{switch(e.variant){case"catalog":return new ot(e);case"ccd-action":return new at(e);case"image":return new Nr(e);case"inline-heading":return new kr(e);case"mini-compare-chart":return new st(e);case"plans":return new ct(e);case"product":return new Me(e);case"segment":return new lt(e);case"special-offers":return new ht(e);case"twp":return new dt(e);case"ccd-suggested":return new ut(e);case"ccd-slice":return new mt(e);default:return t?void 0:new Me(e)}},qa=()=>{let e=[];return e.push(ot.variantStyle),e.push(at.variantStyle),e.push(st.variantStyle),e.push(Me.variantStyle),e.push(ct.variantStyle),e.push(lt.variantStyle),e.push(ht.variantStyle),e.push(dt.variantStyle),e.push(ut.variantStyle),e.push(mt.variantStyle),e};var Za=document.createElement("style");Za.innerHTML=` + `);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 kr(e);case"inline-heading":return new Or(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 dt(e);case"special-offers":return new ut(e);case"twp":return new mt(e);case"ccd-suggested":return new pt(e);case"ccd-slice":return new ft(e);default:return t?void 0:new De(e)}},Za=()=>{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(dt.variantStyle),e.push(ut.variantStyle),e.push(mt.variantStyle),e.push(pt.variantStyle),e.push(ft.variantStyle),e};var Ja=document.createElement("style");Ja.innerHTML=` :root { --consonant-merch-card-detail-font-size: 12px; --consonant-merch-card-detail-font-weight: 500; @@ -1918,9 +1918,9 @@ body.merch-modal { scrollbar-gutter: stable; height: 100vh; } -`;document.head.appendChild(Za);var Ll="#000000",wl="#F8D904";async function Ja(e,t){let r=e.fields.reduce((a,{name:s,multiple:c,values:l})=>(a[s]=c?l:l[0],a),{id:e.id}),{variant:n}=r;if(!n)return;t.querySelectorAll("[slot]").forEach(a=>{a.remove()}),t.variant=n,await t.updateComplete;let{aemFragmentMapping:i}=t.variantLayout;if(!i)return;let o=r.mnemonicIcon?.map((a,s)=>({icon:a,alt:r.mnemonicAlt[s]??"",link:r.mnemonicLink[s]??""}));if(e.computed={mnemonics:o},o.forEach(({icon:a,alt:s,link:c})=>{if(!/^https?:/.test(c))try{c=new URL(`https://${c}`).href.toString()}catch{c="#"}let l=le("merch-icon",{slot:"icons",src:a,alt:s,href:c,size:"l"});t.append(l)}),r.badge&&(t.setAttribute("badge-text",r.badge),t.setAttribute("badge-color",r.badgeColor||Ll),t.setAttribute("badge-background-color",r.badgeBackgroundColor||wl)),r.size?i.allowedSizes?.includes(r.size)&&t.setAttribute("size",r.size):t.removeAttribute("size"),r.cardTitle&&i.title&&t.append(le(i.title.tag,{slot:i.title.slot},r.cardTitle)),r.subtitle&&i.subtitle&&t.append(le(i.subtitle.tag,{slot:i.subtitle.slot},r.subtitle)),r.backgroundImage)switch(n){case"ccd-slice":i.backgroundImage&&t.append(le(i.backgroundImage.tag,{slot:i.backgroundImage.slot},``));break;case"ccd-suggested":t.setAttribute("background-image",r.backgroundImage);break}if(r.prices&&i.prices){let a=r.prices,s=le(i.prices.tag,{slot:i.prices.slot},a);t.append(s)}if(r.description&&i.description){let a=le(i.description.tag,{slot:i.description.slot},r.description);t.append(a)}if(r.ctas){let{slot:a,button:s=!0}=i.ctas,c=le("div",{slot:a??"footer"},r.ctas),l=[];[...c.querySelectorAll("a")].forEach(h=>{let d=h.parentElement.tagName==="STRONG";if(t.consonant)h.classList.add("con-button"),d&&h.classList.add("blue"),l.push(h);else{if(!s){l.push(h);return}let g=le("sp-button",{treatment:d?"fill":"outline",variant:d?"accent":"primary"},h);g.addEventListener("click",f=>{f.target===g&&(f.stopPropagation(),h.click())}),l.push(g)}}),c.innerHTML="",c.append(...l),t.append(c)}}var Pl="merch-card",Cl=2e3,Li,Ft,_i,zt=class extends ne{constructor(){super();B(this,Ft);p(this,"customerSegment");p(this,"marketSegment");p(this,"variantLayout");B(this,Li,!1);this.filters={},this.types="",this.selected=!1,this.handleAemFragmentEvents=this.handleAemFragmentEvents.bind(this)}firstUpdated(){this.variantLayout=Ti(this,!1),this.variantLayout?.connectedCallbackHook(),this.aemFragment?.updateComplete.catch(()=>{this.style.display="none"})}willUpdate(r){(r.has("variant")||!this.variantLayout)&&(this.variantLayout=Ti(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["twp","ccd-slice"].includes(this.variant)?"":`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(Oa,this.merchCardReady,{once:!0}),this.updateComplete.then(()=>{this.merchCardReady()}),this.storageOptions?.addEventListener("change",this.handleStorageChange),this.addEventListener(it,this.handleAemFragmentEvents),this.addEventListener(nt,this.handleAemFragmentEvents),this.aemFragment||setTimeout(()=>this.checkReady(),0)}disconnectedCallback(){super.disconnectedCallback(),this.variantLayout.disconnectedCallbackHook(),this.removeEventListener(yi,this.handleQuantitySelection),this.storageOptions?.removeEventListener(Si,this.handleStorageChange),this.removeEventListener(it,this.handleAemFragmentEvents),this.removeEventListener(nt,this.handleAemFragmentEvents)}async handleAemFragmentEvents(r){if(r.type===it&&Ge(this,Ft,_i).call(this,"AEM fragment cannot be loaded"),r.type===nt&&r.target.nodeName==="AEM-FRAGMENT"){let n=r.detail;await Ja(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),Cl));if(await Promise.race([r,n])===!0){this.dispatchEvent(new CustomEvent($a,{bubbles:!0,composed:!0}));return}Ge(this,Ft,_i).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(Va,{bubbles:!0}))}handleStorageChange(){let r=this.closest("merch-card")?.offerSelect.cloneNode(!0);r&&this.dispatchEvent(new CustomEvent(Si,{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)}}};Li=new WeakMap,Ft=new WeakSet,_i=function(r){this.dispatchEvent(new CustomEvent(Ma,{detail:r,bubbles:!0,composed:!0}))},p(zt,"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",reflect:!0},borderColor:{type:String,attribute:"border-color",reflect:!0},badgeBackgroundColor:{type:String,attribute:"badge-background-color",reflect:!0},backgroundImage:{type:String,attribute:"background-image",reflect:!0},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(zt,"styles",[Ia,qa(),...Na()]);customElements.define(Pl,zt);var pt=class extends ne{constructor(){super(),this.size="m",this.alt=""}render(){let{href:t}=this;return t?x` +`;document.head.appendChild(Ja);var wl="#000000",Pl="#F8D904";async function Qa(e,t){let r=e.fields.reduce((a,{name:s,multiple:c,values:l})=>(a[s]=c?l:l[0],a),{id:e.id}),{variant:n}=r;if(!n)return;t.querySelectorAll("[slot]").forEach(a=>{a.remove()}),t.variant=n,await t.updateComplete;let{aemFragmentMapping:i}=t.variantLayout;if(!i)return;let o=r.mnemonicIcon?.map((a,s)=>({icon:a,alt:r.mnemonicAlt[s]??"",link:r.mnemonicLink[s]??""}));if(e.computed={mnemonics:o},o.forEach(({icon:a,alt:s,link:c})=>{if(!/^https?:/.test(c))try{c=new URL(`https://${c}`).href.toString()}catch{c="#"}let l=le("merch-icon",{slot:"icons",src:a,alt:s,href:c,size:"l"});t.append(l)}),r.badge&&(t.setAttribute("badge-text",r.badge),t.setAttribute("badge-color",r.badgeColor||wl),t.setAttribute("badge-background-color",r.badgeBackgroundColor||Pl)),r.size?i.allowedSizes?.includes(r.size)&&t.setAttribute("size",r.size):t.removeAttribute("size"),r.cardTitle&&i.title&&t.append(le(i.title.tag,{slot:i.title.slot},r.cardTitle)),r.subtitle&&i.subtitle&&t.append(le(i.subtitle.tag,{slot:i.subtitle.slot},r.subtitle)),r.backgroundImage)switch(n){case"ccd-slice":i.backgroundImage&&t.append(le(i.backgroundImage.tag,{slot:i.backgroundImage.slot},``));break;case"ccd-suggested":t.setAttribute("background-image",r.backgroundImage);break}if(r.prices&&i.prices){let a=r.prices,s=le(i.prices.tag,{slot:i.prices.slot},a);t.append(s)}if(r.description&&i.description){let a=le(i.description.tag,{slot:i.description.slot},r.description);t.append(a)}if(r.ctas){let{slot:a,button:s=!0}=i.ctas,c=le("div",{slot:a??"footer"},r.ctas),l=[];[...c.querySelectorAll("a")].forEach(h=>{let d=h.parentElement.tagName==="STRONG";if(t.consonant)h.classList.add("con-button"),d&&h.classList.add("blue"),l.push(h);else{if(!s){l.push(h);return}let g=le("sp-button",{treatment:d?"fill":"outline",variant:d?"accent":"primary"},h);g.addEventListener("click",f=>{f.target===g&&(f.stopPropagation(),h.click())}),l.push(g)}}),c.innerHTML="",c.append(...l),t.append(c)}}var Cl="merch-card",Il=2e3,wi,Kt,Li,Ft=class extends ne{constructor(){super();K(this,Kt);p(this,"customerSegment");p(this,"marketSegment");p(this,"variantLayout");K(this,wi,!1);this.filters={},this.types="",this.selected=!1,this.handleAemFragmentEvents=this.handleAemFragmentEvents.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 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["twp","ccd-slice"].includes(this.variant)?"":`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(Ti,this.handleQuantitySelection),this.addEventListener(Va,this.merchCardReady,{once:!0}),this.updateComplete.then(()=>{this.merchCardReady()}),this.storageOptions?.addEventListener("change",this.handleStorageChange),this.addEventListener(at,this.handleAemFragmentEvents),this.addEventListener(ot,this.handleAemFragmentEvents),this.aemFragment||setTimeout(()=>this.checkReady(),0)}disconnectedCallback(){super.disconnectedCallback(),this.variantLayout.disconnectedCallbackHook(),this.removeEventListener(Ti,this.handleQuantitySelection),this.storageOptions?.removeEventListener(yi,this.handleStorageChange),this.removeEventListener(at,this.handleAemFragmentEvents),this.removeEventListener(ot,this.handleAemFragmentEvents)}async handleAemFragmentEvents(r){if(r.type===at&&ze(this,Kt,Li).call(this,"AEM fragment cannot be loaded"),r.type===ot&&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),Il));if(await Promise.race([r,n])===!0){this.dispatchEvent(new CustomEvent(Ma,{bubbles:!0,composed:!0}));return}ze(this,Kt,Li).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)}}};wi=new WeakMap,Kt=new WeakSet,Li=function(r){this.dispatchEvent(new CustomEvent(Ua,{detail:r,bubbles:!0,composed:!0}))},p(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",reflect:!0},borderColor:{type:String,attribute:"border-color",reflect:!0},badgeBackgroundColor:{type:String,attribute:"badge-background-color",reflect:!0},backgroundImage:{type:String,attribute:"background-image",reflect:!0},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(Ft,"styles",[Na,Za(),...ka()]);customElements.define(Cl,Ft);var gt=class extends ne{constructor(){super(),this.size="m",this.alt=""}render(){let{href:t}=this;return t?x` ${this.alt} - `:x` ${this.alt}`}};p(pt,"properties",{size:{type:String,attribute:!0},src:{type:String,attribute:!0},alt:{type:String,attribute:!0},href:{type:String,attribute:!0}}),p(pt,"styles",w` + `:x` ${this.alt}`}};p(gt,"properties",{size:{type:String,attribute:!0},src:{type:String,attribute:!0},alt:{type:String,attribute:!0},href:{type:String,attribute:!0}}),p(gt,"styles",w` :host { --img-width: 32px; --img-height: 32px; @@ -1948,7 +1948,7 @@ body.merch-modal { width: var(--img-width); height: var(--img-height); } - `);customElements.define("merch-icon",pt);async function Il(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 Il(n)}var ts=new CSSStyleSheet;ts.replaceSync(":host { display: contents; }");var Nl=document.querySelector('meta[name="aem-base-url"]')?.content??"https://publish-p22655-e155390.adobeaemcloud.com",es="fragment",kl="ims",wi,be,Pi=class{constructor(){B(this,be,new Map)}clear(){F(this,be).clear()}add(...t){t.forEach(r=>{let{id:n}=r;n&&F(this,be).set(n,r)})}has(t){return F(this,be).has(t)}get(t){return F(this,be).get(t)}remove(t){F(this,be).delete(t)}};be=new WeakMap;var Or=new Pi,Kt,Ii,Ci=class extends HTMLElement{constructor(){super();B(this,Kt);p(this,"cache",Or);p(this,"data");p(this,"fragmentId");p(this,"consonant",!1);p(this,"ims",!1);p(this,"_readyPromise");this.attachShadow({mode:"open"}),this.shadowRoot.adoptedStyleSheets=[ts];let r=this.getAttribute(kl);["",!0].includes(r)?(this.ims=!0,wi||(wi={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))}connectedCallback(){if(!this.fragmentId){Ge(this,Kt,Ii).call(this,"Missing fragment id");return}}async refresh(r=!0){this._readyPromise&&!await Promise.race([this._readyPromise,Promise.resolve(!1)])||(r&&Or.remove(this.fragmentId),this._readyPromise=this.fetchData().then(()=>(this.dispatchEvent(new CustomEvent(nt,{detail:this.data,bubbles:!0,composed:!0})),!0)).catch(()=>(Ge(this,Kt,Ii).call(this,"Network error: failed to load fragment"),this._readyPromise=null,!1)))}async fetchData(){let r=Or.get(this.fragmentId);r||(r=await Qa(Nl,this.fragmentId,this.ims?wi:void 0),Or.add(r)),this.data=r}get updateComplete(){return this._readyPromise??Promise.reject(new Error("AEM fragment cannot be loaded"))}};Kt=new WeakSet,Ii=function(r){this.classList.add("error"),this.dispatchEvent(new CustomEvent(it,{detail:r,bubbles:!0,composed:!0}))};customElements.define("aem-fragment",Ci); + `);customElements.define("merch-icon",gt);async function Nl(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 Nl(n)}var rs=new CSSStyleSheet;rs.replaceSync(":host { display: contents; }");var kl=document.querySelector('meta[name="aem-base-url"]')?.content??"https://publish-p22655-e155390.adobeaemcloud.com",ts="fragment",Ol="ims",Pi,Ee,Ci=class{constructor(){K(this,Ee,new Map)}clear(){M(this,Ee).clear()}add(...t){t.forEach(r=>{let{id:n}=r;n&&M(this,Ee).set(n,r)})}has(t){return M(this,Ee).has(t)}get(t){return M(this,Ee).get(t)}remove(t){M(this,Ee).delete(t)}};Ee=new WeakMap;var Vr=new Ci,he,Bt,Ni,Ii=class extends HTMLElement{constructor(){super();K(this,Bt);p(this,"cache",Vr);p(this,"data");p(this,"fragmentId");p(this,"consonant",!1);p(this,"ims",!1);K(this,he);this.attachShadow({mode:"open"}),this.shadowRoot.adoptedStyleSheets=[rs];let r=this.getAttribute(Ol);["",!0].includes(r)?(this.ims=!0,Pi||(Pi={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){ze(this,Bt,Ni).call(this,"Missing fragment id");return}}async refresh(r=!0){M(this,he)&&!await Promise.race([M(this,he),Promise.resolve(!1)])||(r&&Vr.remove(this.fragmentId),pe(this,he,this.fetchData().then(()=>(this.dispatchEvent(new CustomEvent(ot,{detail:this.data,bubbles:!0,composed:!0})),!0)).catch(()=>(ze(this,Bt,Ni).call(this,"Network error: failed to load fragment"),pe(this,he,null),!1))),M(this,he))}async fetchData(){let r=Vr.get(this.fragmentId);r||(r=await es(kl,this.fragmentId,this.ims?Pi:void 0),Vr.add(r)),this.data=r}get updateComplete(){return M(this,he)??Promise.reject(new Error("AEM fragment cannot be loaded"))}};he=new WeakMap,Bt=new WeakSet,Ni=function(r){this.classList.add("error"),this.dispatchEvent(new CustomEvent(at,{detail:r,bubbles:!0,composed:!0}))};customElements.define("aem-fragment",Ii); /*! Bundled license information: @lit/reactive-element/css-tag.js: diff --git a/libs/features/mas/mas/dist/mas.js b/libs/features/mas/mas/dist/mas.js index 3ccd962176..168d14d4f3 100644 --- a/libs/features/mas/mas/dist/mas.js +++ b/libs/features/mas/mas/dist/mas.js @@ -1,10 +1,10 @@ -var ss=Object.create;var jt=Object.defineProperty;var cs=Object.getOwnPropertyDescriptor;var ls=Object.getOwnPropertyNames;var hs=Object.getPrototypeOf,ds=Object.prototype.hasOwnProperty;var ki=e=>{throw TypeError(e)};var us=(e,t,r)=>t in e?jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var ms=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ps=(e,t)=>{for(var r in t)jt(e,r,{get:t[r],enumerable:!0})},fs=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ls(t))!ds.call(e,i)&&i!==r&&jt(e,i,{get:()=>t[i],enumerable:!(n=cs(t,i))||n.enumerable});return e};var gs=(e,t,r)=>(r=e!=null?ss(hs(e)):{},fs(t||!e||!e.__esModule?jt(r,"default",{value:e,enumerable:!0}):r,e));var p=(e,t,r)=>us(e,typeof t!="symbol"?t+"":t,r),$r=(e,t,r)=>t.has(e)||ki("Cannot "+r);var F=(e,t,r)=>($r(e,t,"read from private field"),r?r.call(e):t.get(e)),B=(e,t,r)=>t.has(e)?ki("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),ft=(e,t,r,n)=>($r(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),Ge=(e,t,r)=>($r(e,t,"access private method"),r);var zo=ms((qd,cl)=>{cl.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 gt;(function(e){e.STAGE="STAGE",e.PRODUCTION="PRODUCTION",e.LOCAL="LOCAL"})(gt||(gt={}));var Mr;(function(e){e.STAGE="STAGE",e.PRODUCTION="PROD",e.LOCAL="LOCAL"})(Mr||(Mr={}));var xt;(function(e){e.DRAFT="DRAFT",e.PUBLISHED="PUBLISHED"})(xt||(xt={}));var Ee;(function(e){e.V2="UCv2",e.V3="UCv3"})(Ee||(Ee={}));var X;(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"})(X||(X={}));var Ur=function(e){var t;return(t=xs.get(e))!==null&&t!==void 0?t:e},xs=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 Oi=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.")},Vi=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 He(e,t,r){var n,i;try{for(var o=Oi(Object.entries(e)),a=o.next();!a.done;a=o.next()){var s=Vi(a.value,2),c=s[0],l=s[1],h=Ur(c);l!=null&&r.has(h)&&t.set(h,l)}}catch(d){n={error:d}}finally{try{a&&!a.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}}function Yt(e){switch(e){case gt.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,Oi(Object.entries(o))),s=a.next();!s.done;s=a.next()){var c=Vi(s.value,2),l=c[0],h=c[1];if(h!=null){var d=Ur(l);t.set("items["+i+"]["+d+"]",h)}}}catch(u){r={error:u}}finally{try{s&&!s.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}}}var vs=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 Ri(e){Ss(e);var t=e.env,r=e.items,n=e.workflowStep,i=vs(e,["env","items","workflowStep"]),o=new URL(Yt(t));return o.pathname=n+"/",Xt(r,o.searchParams),He(i,o.searchParams,As),o.toString()}var As=new Set(["cli","co","lang","ctx","cUrl","mv","nglwfdata","otac","promoid","rUrl","sdid","spint","trackingid","code","campaignid","appctxid"]),Es=["env","workflowStep","clientId","country","items"];function Ss(e){var t,r;try{for(var n=bs(Es),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 ys=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.")},_s="p_draft_landscape",Ls="/store/";function Gr(e){Ps(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,d=ys(e,["env","items","workflowStep","ms","marketSegment","ot","offerType","pa","productArrangementCode","landscape"]),u={marketSegment:o??i,offerType:s??a,productArrangementCode:l??c},m=new URL(Yt(t));return m.pathname=""+Ls+n,n!==X.SEGMENTATION&&n!==X.CHANGE_PLAN_TEAM_PLANS&&Xt(r,m.searchParams),n===X.SEGMENTATION&&He(u,m.searchParams,Dr),He(d,m.searchParams,Dr),h===xt.DRAFT&&He({af:_s},m.searchParams,Dr),m.toString()}var Dr=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"]),ws=["env","workflowStep","clientId","country"];function Ps(e){var t,r;try{for(var n=Ts(ws),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!==X.SEGMENTATION&&e.workflowStep!==X.CHANGE_PLAN_TEAM_PLANS&&!e.items)throw new Error('Argument "checkoutData" is not valid, missing: items');return!0}function Hr(e,t){switch(e){case Ee.V2:return Ri(t);case Ee.V3:return Gr(t);default:return console.warn("Unsupported CheckoutType, will use UCv3 as default. Given type: "+e),Gr(t)}}var zr;(function(e){e.BASE="BASE",e.TRIAL="TRIAL",e.PROMOTION="PROMOTION"})(zr||(zr={}));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 Fr;(function(e){e.INDIVIDUAL="INDIVIDUAL",e.TEAM="TEAM",e.ENTERPRISE="ENTERPRISE"})(Fr||(Fr={}));var Kr;(function(e){e.COM="COM",e.EDU="EDU",e.GOV="GOV"})(Kr||(Kr={}));var Br;(function(e){e.DIRECT="DIRECT",e.INDIRECT="INDIRECT"})(Br||(Br={}));var jr;(function(e){e.ENTERPRISE_PRODUCT="ENTERPRISE_PRODUCT",e.ETLA="ETLA",e.RETAIL="RETAIL",e.VIP="VIP",e.VIPMP="VIPMP",e.FREE="FREE"})(jr||(jr={}));var $i="tacocat.js";var Wt=(e,t)=>String(e??"").toLowerCase()==String(t??"").toLowerCase(),Mi=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=ze(n)?n:e;o=a.get(s)}if(i&&o==null){let a=ze(i)?i:e;o=window.sessionStorage.getItem(a)??window.localStorage.getItem(a)}if(r&&o==null){let a=Cs(ze(r)?r:e);o=document.documentElement.querySelector(`meta[name="${a}"]`)?.content}return o??t[e]}var Fe=()=>{};var Ui=e=>typeof e=="boolean",vt=e=>typeof e=="function",qt=e=>typeof e=="number",Di=e=>e!=null&&typeof e=="object";var ze=e=>typeof e=="string",Yr=e=>ze(e)&&e,Ke=e=>qt(e)&&Number.isFinite(e)&&e>0;function Be(e,t=r=>r==null||r===""){return e!=null&&Object.entries(e).forEach(([r,n])=>{t(n)&&delete e[r]}),e}function S(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 Cs(e=""){return String(e).replace(/(\p{Lowercase_Letter})(\p{Uppercase_Letter})/gu,(t,r,n)=>`${r}-${n}`).replace(/\W+/gu,"-").toLowerCase()}function je(e,t=1){return qt(e)||(e=Number.parseInt(e,10)),!Number.isNaN(e)&&e>0&&Number.isFinite(e)?e:t}var Is=Date.now(),Xr=()=>`(+${Date.now()-Is}ms)`,Zt=new Set,Ns=S(O("tacocat.debug",{},{metadata:!1}),typeof process<"u"&&process.env?.DEBUG);function Gi(e){let t=`[${$i}/${e}]`,r=(a,s,...c)=>a?!0:(i(s,...c),!1),n=Ns?(a,...s)=>{console.debug(`${t} ${a}`,...s,Xr())}:()=>{},i=(a,...s)=>{let c=`${t} ${a}`;Zt.forEach(([l])=>l(c,...s))};return{assert:r,debug:n,error:i,warn:(a,...s)=>{let c=`${t} ${a}`;Zt.forEach(([,l])=>l(c,...s))}}}function ks(e,t){let r=[e,t];return Zt.add(r),()=>{Zt.delete(r)}}ks((e,...t)=>{console.error(e,...t,Xr())},(e,...t)=>{console.warn(e,...t,Xr())});var Os="no promo",Hi="promo-tag",Vs="yellow",Rs="neutral",$s=(e,t,r)=>{let n=o=>o||Os,i=r?` (was "${n(t)}")`:"";return`${n(e)}${i}`},Ms="cancel-context",bt=(e,t)=>{let r=e===Ms,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?Hi:`${Hi} no-promo`,text:$s(a,t,i),variant:o?Vs:Rs,isOverriden:i}};var Wr="ABM",qr="PUF",Zr="M2M",Jr="PERPETUAL",Qr="P3Y",Us="TAX_INCLUSIVE_DETAILS",Ds="TAX_EXCLUSIVE",zi={ABM:Wr,PUF:qr,M2M:Zr,PERPETUAL:Jr,P3Y:Qr},ch={[Wr]:{commitment:$.YEAR,term:k.MONTHLY},[qr]:{commitment:$.YEAR,term:k.ANNUAL},[Zr]:{commitment:$.MONTH,term:k.MONTHLY},[Jr]:{commitment:$.PERPETUAL,term:void 0},[Qr]:{commitment:$.THREE_MONTHS,term:k.P3Y}},Fi="Value is not an offer",Jt=e=>{if(typeof e!="object")return Fi;let{commitment:t,term:r}=e,n=Gs(t,r);return{...e,planType:n}};var Gs=(e,t)=>{switch(e){case void 0:return Fi;case"":return"";case $.YEAR:return t===k.MONTHLY?Wr:t===k.ANNUAL?qr:"";case $.MONTH:return t===k.MONTHLY?Zr:"";case $.PERPETUAL:return Jr;case $.TERM_LICENSE:return t===k.P3Y?Qr:"";default:return""}};function en(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:Ds}};return s.offerType==="TRIAL"&&s.priceDetails.price===0&&(s.priceDetails.price=s.priceDetails.priceWithoutDiscount),s}var tn=function(e,t){return tn=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])},tn(e,t)};function At(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");tn(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(Fs,function(s,c,l,h,d,u){if(c)t.minimumIntegerDigits=l.length;else{if(h&&d)throw new Error("We currently do not support maximum integer digits");if(u)throw new Error("We currently do not support exact integer digits")}return""});continue}if(Qi.test(i.stem)){t.minimumIntegerDigits=i.stem.length;continue}if(Xi.test(i.stem)){if(i.options.length>1)throw new RangeError("Fraction-precision stems only accept a single optional option");i.stem.replace(Xi,function(s,c,l,h,d,u){return l==="*"?t.minimumFractionDigits=c.length:h&&h[0]==="#"?t.maximumFractionDigits=h.length:d&&u?(t.minimumFractionDigits=d.length,t.maximumFractionDigits=d.length+u.length):(t.minimumFractionDigits=c.length,t.maximumFractionDigits=c.length),""}),i.options.length&&(t=E(E({},t),Wi(i.options[0])));continue}if(Ji.test(i.stem)){t=E(E({},t),Wi(i.stem));continue}var o=eo(i.stem);o&&(t=E(E({},t),o));var a=Ks(i.stem);a&&(t=E(E({},t),a))}return t}var on,Bs=new RegExp("^"+nn.source+"*"),js=new RegExp(nn.source+"*$");function b(e,t){return{start:e,end:t}}var Ys=!!String.prototype.startsWith,Xs=!!String.fromCodePoint,Ws=!!Object.fromEntries,qs=!!String.prototype.codePointAt,Zs=!!String.prototype.trimStart,Js=!!String.prototype.trimEnd,Qs=!!Number.isSafeInteger,ec=Qs?Number.isSafeInteger:function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e&&Math.abs(e)<=9007199254740991},sn=!0;try{ro=ao("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu"),sn=((on=ro.exec("a"))===null||on===void 0?void 0:on[0])==="a"}catch{sn=!1}var ro,no=Ys?function(t,r,n){return t.startsWith(r,n)}:function(t,r,n){return t.slice(n,n+r.length)===r},cn=Xs?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},io=Ws?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}},tc=Zs?function(t){return t.trimStart()}:function(t){return t.replace(Bs,"")},rc=Js?function(t){return t.trimEnd()}:function(t){return t.replace(js,"")};function ao(e,t){return new RegExp(e,t)}var ln;sn?(an=ao("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu"),ln=function(t,r){var n;an.lastIndex=r;var i=an.exec(t);return(n=i[1])!==null&&n!==void 0?n:""}):ln=function(t,r){for(var n=[];;){var i=oo(t,r);if(i===void 0||co(i)||oc(i))break;n.push(i),r+=i>=65536?2:1}return cn.apply(void 0,n)};var an,so=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:C.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&&hn(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:C.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:C.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()&&ic(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:C.literal,value:i,location:c},err:null}},e.prototype.tryParseLeftAngleBracket=function(){return!this.isEOF()&&this.char()===60&&(this.ignoreTag||!nc(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 cn.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(),cn(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:C.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=ln(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(),d=this.parseSimpleArgStyleIfPossible();if(d.err)return d;var u=rc(d.val);if(u.length===0)return this.error(v.EXPECT_ARGUMENT_STYLE,b(this.clonePosition(),this.clonePosition()));var m=b(h,this.clonePosition());l={style:u,styleLocation:m}}var g=this.tryParseArgumentClose(i);if(g.err)return g;var f=b(i,this.clonePosition());if(l&&no(l?.style,"::",0)){var L=tc(l.style.slice(2));if(s==="number"){var d=this.parseNumberSkeletonFromString(L,l.styleLocation);return d.err?d:{val:{type:C.number,value:n,location:f,style:d.val},err:null}}else{if(L.length===0)return this.error(v.EXPECT_DATE_TIME_SKELETON,f);var u={type:Se.dateTime,pattern:L,location:l.styleLocation,parsedOptions:this.shouldParseSkeletons?ji(L):{}},I=s==="date"?C.date:C.time;return{val:{type:I,value:n,location:f,style:u},err:null}}}return{val:{type:s==="number"?C.number:s==="date"?C.date:C.time,value:n,location:f,style:(o=l?.style)!==null&&o!==void 0?o:null},err:null}}case"plural":case"selectordinal":case"select":{var A=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(","))return this.error(v.EXPECT_SELECT_ARGUMENT_OPTIONS,b(A,E({},A)));this.bumpSpace();var T=this.parseIdentifierIfPossible(),R=0;if(s!=="select"&&T.value==="offset"){if(!this.bumpIf(":"))return this.error(v.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,b(this.clonePosition(),this.clonePosition()));this.bumpSpace();var d=this.tryParseDecimalInteger(v.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,v.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);if(d.err)return d;this.bumpSpace(),T=this.parseIdentifierIfPossible(),R=d.val}var _=this.tryParsePluralOrSelectOptions(t,s,r,T);if(_.err)return _;var g=this.tryParseArgumentClose(i);if(g.err)return g;var z=b(i,this.clonePosition());return s==="select"?{val:{type:C.select,value:n,options:io(_.val),location:z},err:null}:{val:{type:C.plural,value:n,options:io(_.val),offset:R,pluralType:s==="plural"?"cardinal":"ordinal",location:z},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=Zi(t)}catch{return this.error(v.INVALID_NUMBER_SKELETON,r)}return{val:{type:Se.number,tokens:n,location:r,parsedOptions:this.shouldParseSkeletons?to(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 d=this.clonePosition();if(r!=="select"&&this.bumpIf("=")){var u=this.tryParseDecimalInteger(v.EXPECT_PLURAL_ARGUMENT_SELECTOR,v.INVALID_PLURAL_ARGUMENT_SELECTOR);if(u.err)return u;h=b(d,this.clonePosition()),l=this.message.slice(d.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 g=this.parseMessage(t+1,r,n);if(g.err)return g;var f=this.tryParseArgumentClose(m);if(f.err)return f;s.push([l,{value:g.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,ec(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=oo(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(no(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()&&co(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 hn(e){return e>=97&&e<=122||e>=65&&e<=90}function nc(e){return hn(e)||e===47}function ic(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 co(e){return e>=9&&e<=13||e===32||e===133||e>=8206&&e<=8207||e===8232||e===8233}function oc(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 dn(e){e.forEach(function(t){if(delete t.location,nr(t)||ir(t))for(var r in t.options)delete t.options[r].location,dn(t.options[r].value);else er(t)&&ar(t.style)||(tr(t)||rr(t))&&Et(t.style)?delete t.style.location:or(t)&&dn(t.children)})}function lo(e,t){t===void 0&&(t={}),t=E({shouldParseSkeletons:!0,requiresOtherClause:!0},t);var r=new so(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||dn(r.val),r.val}function St(e,t){var r=t&&t.cache?t.cache:dc,n=t&&t.serializer?t.serializer:hc,i=t&&t.strategy?t.strategy:sc;return i(e,{cache:r,serializer:n})}function ac(e){return e==null||typeof e=="number"||typeof e=="boolean"}function ho(e,t,r,n){var i=ac(n)?n:r(n),o=t.get(i);return typeof o>"u"&&(o=e.call(this,n),t.set(i,o)),o}function uo(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 un(e,t,r,n,i){return r.bind(t,e,n,i)}function sc(e,t){var r=e.length===1?ho:uo;return un(e,this,r,t.cache.create(),t.serializer)}function cc(e,t){return un(e,this,uo,t.cache.create(),t.serializer)}function lc(e,t){return un(e,this,ho,t.cache.create(),t.serializer)}var hc=function(){return JSON.stringify(arguments)};function mn(){this.cache=Object.create(null)}mn.prototype.get=function(e){return this.cache[e]};mn.prototype.set=function(e,t){this.cache[e]=t};var dc={create:function(){return new mn}},sr={variadic:cc,monadic:lc};var ye;(function(e){e.MISSING_VALUE="MISSING_VALUE",e.INVALID_VALUE="INVALID_VALUE",e.MISSING_INTL_API="MISSING_INTL_API"})(ye||(ye={}));var yt=function(e){At(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 pn=function(e){At(t,e);function t(r,n,i,o){return e.call(this,'Invalid values for "'+r+'": "'+n+'". Options are "'+Object.keys(i).join('", "')+'"',ye.INVALID_VALUE,o)||this}return t}(yt);var mo=function(e){At(t,e);function t(r,n,i){return e.call(this,'Value for "'+r+'" must be of type '+n,ye.INVALID_VALUE,i)||this}return t}(yt);var po=function(e){At(t,e);function t(r,n){return e.call(this,'The intl string context variable "'+r+'" was not provided to the string "'+n+'"',ye.MISSING_VALUE,n)||this}return t}(yt);var G;(function(e){e[e.literal=0]="literal",e[e.object=1]="object"})(G||(G={}));function uc(e){return e.length<2?e:e.reduce(function(t,r){var n=t[t.length-1];return!n||n.type!==G.literal||r.type!==G.literal?t.push(r):n.value+=r.value,t},[])}function mc(e){return typeof e=="function"}function Tt(e,t,r,n,i,o,a){if(e.length===1&&rn(e[0]))return[{type:G.literal,value:e[0].value}];for(var s=[],c=0,l=e;c{throw TypeError(e)};var ms=(e,t,r)=>t in e?Yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var ps=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),fs=(e,t)=>{for(var r in t)Yt(e,r,{get:t[r],enumerable:!0})},gs=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of hs(t))!us.call(e,i)&&i!==r&&Yt(e,i,{get:()=>t[i],enumerable:!(n=ls(t,i))||n.enumerable});return e};var xs=(e,t,r)=>(r=e!=null?cs(ds(e)):{},gs(t||!e||!e.__esModule?Yt(r,"default",{value:e,enumerable:!0}):r,e));var p=(e,t,r)=>ms(e,typeof t!="symbol"?t+"":t,r),Mr=(e,t,r)=>t.has(e)||Oi("Cannot "+r);var M=(e,t,r)=>(Mr(e,t,"read from private field"),r?r.call(e):t.get(e)),K=(e,t,r)=>t.has(e)?Oi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),pe=(e,t,r,n)=>(Mr(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),ze=(e,t,r)=>(Mr(e,t,"access private method"),r);var Fo=ps((Zd,ll)=>{ll.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 xt;(function(e){e.STAGE="STAGE",e.PRODUCTION="PRODUCTION",e.LOCAL="LOCAL"})(xt||(xt={}));var Ur;(function(e){e.STAGE="STAGE",e.PRODUCTION="PROD",e.LOCAL="LOCAL"})(Ur||(Ur={}));var vt;(function(e){e.DRAFT="DRAFT",e.PUBLISHED="PUBLISHED"})(vt||(vt={}));var ye;(function(e){e.V2="UCv2",e.V3="UCv3"})(ye||(ye={}));var X;(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"})(X||(X={}));var Dr=function(e){var t;return(t=vs.get(e))!==null&&t!==void 0?t:e},vs=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 Vi=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.")},Ri=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=Vi(Object.entries(e)),a=o.next();!a.done;a=o.next()){var s=Ri(a.value,2),c=s[0],l=s[1],h=Dr(c);l!=null&&r.has(h)&&t.set(h,l)}}catch(d){n={error:d}}finally{try{a&&!a.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}}function Xt(e){switch(e){case xt.PRODUCTION:return"https://commerce.adobe.com";default:return"https://commerce-stg.adobe.com"}}function Wt(e,t){var r,n;for(var i in e){var o=e[i];try{for(var a=(r=void 0,Vi(Object.entries(o))),s=a.next();!s.done;s=a.next()){var c=Ri(s.value,2),l=c[0],h=c[1];if(h!=null){var d=Dr(l);t.set("items["+i+"]["+d+"]",h)}}}catch(u){r={error:u}}finally{try{s&&!s.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}}}var bs=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 $i(e){ys(e);var t=e.env,r=e.items,n=e.workflowStep,i=bs(e,["env","items","workflowStep"]),o=new URL(Xt(t));return o.pathname=n+"/",Wt(r,o.searchParams),Fe(i,o.searchParams,Es),o.toString()}var Es=new Set(["cli","co","lang","ctx","cUrl","mv","nglwfdata","otac","promoid","rUrl","sdid","spint","trackingid","code","campaignid","appctxid"]),Ss=["env","workflowStep","clientId","country","items"];function ys(e){var t,r;try{for(var n=As(Ss),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 Ts=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.")},Ls="p_draft_landscape",ws="/store/";function Hr(e){Cs(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,d=Ts(e,["env","items","workflowStep","ms","marketSegment","ot","offerType","pa","productArrangementCode","landscape"]),u={marketSegment:o??i,offerType:s??a,productArrangementCode:l??c},m=new URL(Xt(t));return m.pathname=""+ws+n,n!==X.SEGMENTATION&&n!==X.CHANGE_PLAN_TEAM_PLANS&&Wt(r,m.searchParams),n===X.SEGMENTATION&&Fe(u,m.searchParams,Gr),Fe(d,m.searchParams,Gr),h===vt.DRAFT&&Fe({af:Ls},m.searchParams,Gr),m.toString()}var Gr=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"]),Ps=["env","workflowStep","clientId","country"];function Cs(e){var t,r;try{for(var n=_s(Ps),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!==X.SEGMENTATION&&e.workflowStep!==X.CHANGE_PLAN_TEAM_PLANS&&!e.items)throw new Error('Argument "checkoutData" is not valid, missing: items');return!0}function zr(e,t){switch(e){case ye.V2:return $i(t);case ye.V3:return Hr(t);default:return console.warn("Unsupported CheckoutType, will use UCv3 as default. Given type: "+e),Hr(t)}}var Fr;(function(e){e.BASE="BASE",e.TRIAL="TRIAL",e.PROMOTION="PROMOTION"})(Fr||(Fr={}));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 Kr;(function(e){e.INDIVIDUAL="INDIVIDUAL",e.TEAM="TEAM",e.ENTERPRISE="ENTERPRISE"})(Kr||(Kr={}));var Br;(function(e){e.COM="COM",e.EDU="EDU",e.GOV="GOV"})(Br||(Br={}));var jr;(function(e){e.DIRECT="DIRECT",e.INDIRECT="INDIRECT"})(jr||(jr={}));var Yr;(function(e){e.ENTERPRISE_PRODUCT="ENTERPRISE_PRODUCT",e.ETLA="ETLA",e.RETAIL="RETAIL",e.VIP="VIP",e.VIPMP="VIPMP",e.FREE="FREE"})(Yr||(Yr={}));var Mi="tacocat.js";var qt=(e,t)=>String(e??"").toLowerCase()==String(t??"").toLowerCase(),Ui=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=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=Is(Ke(r)?r:e);o=document.documentElement.querySelector(`meta[name="${a}"]`)?.content}return o??t[e]}var Be=()=>{};var Di=e=>typeof e=="boolean",bt=e=>typeof e=="function",Zt=e=>typeof e=="number",Gi=e=>e!=null&&typeof e=="object";var Ke=e=>typeof e=="string",Xr=e=>Ke(e)&&e,je=e=>Zt(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 S(e,t){if(Di(e))return e;let r=String(e);return r==="1"||r==="true"?!0:r==="0"||r==="false"?!1:t}function fe(e,t,r){let n=Object.values(t);return n.find(i=>qt(i,e))??r??n[0]}function Is(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 Zt(e)||(e=Number.parseInt(e,10)),!Number.isNaN(e)&&e>0&&Number.isFinite(e)?e:t}var Ns=Date.now(),Wr=()=>`(+${Date.now()-Ns}ms)`,Jt=new Set,ks=S(O("tacocat.debug",{},{metadata:!1}),typeof process<"u"&&process.env?.DEBUG);function Hi(e){let t=`[${Mi}/${e}]`,r=(a,s,...c)=>a?!0:(i(s,...c),!1),n=ks?(a,...s)=>{console.debug(`${t} ${a}`,...s,Wr())}:()=>{},i=(a,...s)=>{let c=`${t} ${a}`;Jt.forEach(([l])=>l(c,...s))};return{assert:r,debug:n,error:i,warn:(a,...s)=>{let c=`${t} ${a}`;Jt.forEach(([,l])=>l(c,...s))}}}function Os(e,t){let r=[e,t];return Jt.add(r),()=>{Jt.delete(r)}}Os((e,...t)=>{console.error(e,...t,Wr())},(e,...t)=>{console.warn(e,...t,Wr())});var Vs="no promo",zi="promo-tag",Rs="yellow",$s="neutral",Ms=(e,t,r)=>{let n=o=>o||Vs,i=r?` (was "${n(t)}")`:"";return`${n(e)}${i}`},Us="cancel-context",At=(e,t)=>{let r=e===Us,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?zi:`${zi} no-promo`,text:Ms(a,t,i),variant:o?Rs:$s,isOverriden:i}};var qr="ABM",Zr="PUF",Jr="M2M",Qr="PERPETUAL",en="P3Y",Ds="TAX_INCLUSIVE_DETAILS",Gs="TAX_EXCLUSIVE",Fi={ABM:qr,PUF:Zr,M2M:Jr,PERPETUAL:Qr,P3Y:en},lh={[qr]:{commitment:$.YEAR,term:k.MONTHLY},[Zr]:{commitment:$.YEAR,term:k.ANNUAL},[Jr]:{commitment:$.MONTH,term:k.MONTHLY},[Qr]:{commitment:$.PERPETUAL,term:void 0},[en]:{commitment:$.THREE_MONTHS,term:k.P3Y}},Ki="Value is not an offer",Qt=e=>{if(typeof e!="object")return Ki;let{commitment:t,term:r}=e,n=Hs(t,r);return{...e,planType:n}};var Hs=(e,t)=>{switch(e){case void 0:return Ki;case"":return"";case $.YEAR:return t===k.MONTHLY?qr:t===k.ANNUAL?Zr:"";case $.MONTH:return t===k.MONTHLY?Jr:"";case $.PERPETUAL:return Qr;case $.TERM_LICENSE:return t===k.P3Y?en:"";default:return""}};function tn(e){let{priceDetails:t}=e,{price:r,priceWithoutDiscount:n,priceWithoutTax:i,priceWithoutDiscountAndTax:o,taxDisplay:a}=t;if(a!==Ds)return e;let s={...e,priceDetails:{...t,price:i??r,priceWithoutDiscount:o??n,taxDisplay:Gs}};return s.offerType==="TRIAL"&&s.priceDetails.price===0&&(s.priceDetails.price=s.priceDetails.priceWithoutDiscount),s}var rn=function(e,t){return rn=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])},rn(e,t)};function Et(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");rn(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(Ks,function(s,c,l,h,d,u){if(c)t.minimumIntegerDigits=l.length;else{if(h&&d)throw new Error("We currently do not support maximum integer digits");if(u)throw new Error("We currently do not support exact integer digits")}return""});continue}if(eo.test(i.stem)){t.minimumIntegerDigits=i.stem.length;continue}if(Wi.test(i.stem)){if(i.options.length>1)throw new RangeError("Fraction-precision stems only accept a single optional option");i.stem.replace(Wi,function(s,c,l,h,d,u){return l==="*"?t.minimumFractionDigits=c.length:h&&h[0]==="#"?t.maximumFractionDigits=h.length:d&&u?(t.minimumFractionDigits=d.length,t.maximumFractionDigits=d.length+u.length):(t.minimumFractionDigits=c.length,t.maximumFractionDigits=c.length),""}),i.options.length&&(t=E(E({},t),qi(i.options[0])));continue}if(Qi.test(i.stem)){t=E(E({},t),qi(i.stem));continue}var o=to(i.stem);o&&(t=E(E({},t),o));var a=Bs(i.stem);a&&(t=E(E({},t),a))}return t}var an,js=new RegExp("^"+on.source+"*"),Ys=new RegExp(on.source+"*$");function b(e,t){return{start:e,end:t}}var Xs=!!String.prototype.startsWith,Ws=!!String.fromCodePoint,qs=!!Object.fromEntries,Zs=!!String.prototype.codePointAt,Js=!!String.prototype.trimStart,Qs=!!String.prototype.trimEnd,ec=!!Number.isSafeInteger,tc=ec?Number.isSafeInteger:function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e&&Math.abs(e)<=9007199254740991},cn=!0;try{no=so("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu"),cn=((an=no.exec("a"))===null||an===void 0?void 0:an[0])==="a"}catch{cn=!1}var no,io=Xs?function(t,r,n){return t.startsWith(r,n)}:function(t,r,n){return t.slice(n,n+r.length)===r},ln=Ws?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},oo=qs?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}},rc=Js?function(t){return t.trimStart()}:function(t){return t.replace(js,"")},nc=Qs?function(t){return t.trimEnd()}:function(t){return t.replace(Ys,"")};function so(e,t){return new RegExp(e,t)}var hn;cn?(sn=so("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu"),hn=function(t,r){var n;sn.lastIndex=r;var i=sn.exec(t);return(n=i[1])!==null&&n!==void 0?n:""}):hn=function(t,r){for(var n=[];;){var i=ao(t,r);if(i===void 0||lo(i)||ac(i))break;n.push(i),r+=i>=65536?2:1}return ln.apply(void 0,n)};var sn,co=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:C.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:C.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:C.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()&&oc(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:C.literal,value:i,location:c},err:null}},e.prototype.tryParseLeftAngleBracket=function(){return!this.isEOF()&&this.char()===60&&(this.ignoreTag||!ic(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 ln.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(),ln(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:C.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=hn(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(),d=this.parseSimpleArgStyleIfPossible();if(d.err)return d;var u=nc(d.val);if(u.length===0)return this.error(v.EXPECT_ARGUMENT_STYLE,b(this.clonePosition(),this.clonePosition()));var m=b(h,this.clonePosition());l={style:u,styleLocation:m}}var g=this.tryParseArgumentClose(i);if(g.err)return g;var f=b(i,this.clonePosition());if(l&&io(l?.style,"::",0)){var L=rc(l.style.slice(2));if(s==="number"){var d=this.parseNumberSkeletonFromString(L,l.styleLocation);return d.err?d:{val:{type:C.number,value:n,location:f,style:d.val},err:null}}else{if(L.length===0)return this.error(v.EXPECT_DATE_TIME_SKELETON,f);var u={type:Te.dateTime,pattern:L,location:l.styleLocation,parsedOptions:this.shouldParseSkeletons?Yi(L):{}},I=s==="date"?C.date:C.time;return{val:{type:I,value:n,location:f,style:u},err:null}}}return{val:{type:s==="number"?C.number:s==="date"?C.date:C.time,value:n,location:f,style:(o=l?.style)!==null&&o!==void 0?o:null},err:null}}case"plural":case"selectordinal":case"select":{var A=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(","))return this.error(v.EXPECT_SELECT_ARGUMENT_OPTIONS,b(A,E({},A)));this.bumpSpace();var T=this.parseIdentifierIfPossible(),R=0;if(s!=="select"&&T.value==="offset"){if(!this.bumpIf(":"))return this.error(v.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,b(this.clonePosition(),this.clonePosition()));this.bumpSpace();var d=this.tryParseDecimalInteger(v.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE,v.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);if(d.err)return d;this.bumpSpace(),T=this.parseIdentifierIfPossible(),R=d.val}var _=this.tryParsePluralOrSelectOptions(t,s,r,T);if(_.err)return _;var g=this.tryParseArgumentClose(i);if(g.err)return g;var F=b(i,this.clonePosition());return s==="select"?{val:{type:C.select,value:n,options:oo(_.val),location:F},err:null}:{val:{type:C.plural,value:n,options:oo(_.val),offset:R,pluralType:s==="plural"?"cardinal":"ordinal",location:F},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=Ji(t)}catch{return this.error(v.INVALID_NUMBER_SKELETON,r)}return{val:{type:Te.number,tokens:n,location:r,parsedOptions:this.shouldParseSkeletons?ro(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 d=this.clonePosition();if(r!=="select"&&this.bumpIf("=")){var u=this.tryParseDecimalInteger(v.EXPECT_PLURAL_ARGUMENT_SELECTOR,v.INVALID_PLURAL_ARGUMENT_SELECTOR);if(u.err)return u;h=b(d,this.clonePosition()),l=this.message.slice(d.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 g=this.parseMessage(t+1,r,n);if(g.err)return g;var f=this.tryParseArgumentClose(m);if(f.err)return f;s.push([l,{value:g.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,tc(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=ao(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(io(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()&&lo(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 ic(e){return dn(e)||e===47}function oc(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 lo(e){return e>=9&&e<=13||e===32||e===133||e>=8206&&e<=8207||e===8232||e===8233}function ac(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 un(e){e.forEach(function(t){if(delete t.location,ir(t)||or(t))for(var r in t.options)delete t.options[r].location,un(t.options[r].value);else tr(t)&&sr(t.style)||(rr(t)||nr(t))&&St(t.style)?delete t.style.location:ar(t)&&un(t.children)})}function ho(e,t){t===void 0&&(t={}),t=E({shouldParseSkeletons:!0,requiresOtherClause:!0},t);var r=new co(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||un(r.val),r.val}function yt(e,t){var r=t&&t.cache?t.cache:uc,n=t&&t.serializer?t.serializer:dc,i=t&&t.strategy?t.strategy:cc;return i(e,{cache:r,serializer:n})}function sc(e){return e==null||typeof e=="number"||typeof e=="boolean"}function uo(e,t,r,n){var i=sc(n)?n:r(n),o=t.get(i);return typeof o>"u"&&(o=e.call(this,n),t.set(i,o)),o}function mo(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 mn(e,t,r,n,i){return r.bind(t,e,n,i)}function cc(e,t){var r=e.length===1?uo:mo;return mn(e,this,r,t.cache.create(),t.serializer)}function lc(e,t){return mn(e,this,mo,t.cache.create(),t.serializer)}function hc(e,t){return mn(e,this,uo,t.cache.create(),t.serializer)}var dc=function(){return JSON.stringify(arguments)};function pn(){this.cache=Object.create(null)}pn.prototype.get=function(e){return this.cache[e]};pn.prototype.set=function(e,t){this.cache[e]=t};var uc={create:function(){return new pn}},cr={variadic:lc,monadic:hc};var _e;(function(e){e.MISSING_VALUE="MISSING_VALUE",e.INVALID_VALUE="INVALID_VALUE",e.MISSING_INTL_API="MISSING_INTL_API"})(_e||(_e={}));var Tt=function(e){Et(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 fn=function(e){Et(t,e);function t(r,n,i,o){return e.call(this,'Invalid values for "'+r+'": "'+n+'". Options are "'+Object.keys(i).join('", "')+'"',_e.INVALID_VALUE,o)||this}return t}(Tt);var po=function(e){Et(t,e);function t(r,n,i){return e.call(this,'Value for "'+r+'" must be of type '+n,_e.INVALID_VALUE,i)||this}return t}(Tt);var fo=function(e){Et(t,e);function t(r,n){return e.call(this,'The intl string context variable "'+r+'" was not provided to the string "'+n+'"',_e.MISSING_VALUE,n)||this}return t}(Tt);var H;(function(e){e[e.literal=0]="literal",e[e.object=1]="object"})(H||(H={}));function mc(e){return e.length<2?e:e.reduce(function(t,r){var n=t[t.length-1];return!n||n.type!==H.literal||r.type!==H.literal?t.push(r):n.value+=r.value,t},[])}function pc(e){return typeof e=="function"}function _t(e,t,r,n,i,o,a){if(e.length===1&&nn(e[0]))return[{type:H.literal,value:e[0].value}];for(var s=[],c=0,l=e;c0?e.substring(0,n):"";let i=xo(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(vc);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 Ac(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,Ec(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 Ec(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},gn=(e,t)=>({accept:e,round:t}),Lc=[gn(({divisor:e,price:t})=>t%e==0,({divisor:e,price:t})=>t/e),gn(({usePrecision:e})=>e,({divisor:e,price:t})=>Math.ceil(Math.floor(t*1e4/e)/100)/100),gn(()=>!0,({divisor:e,price:t})=>Math.ceil(Math.floor(t*100/e)/100))],xn={[$.YEAR]:{[k.MONTHLY]:_t.MONTH,[k.ANNUAL]:_t.YEAR},[$.MONTH]:{[k.MONTHLY]:_t.MONTH}},wc=(e,t)=>e.indexOf(`'${t}'`)===0,Pc=(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)?/,"$&"+Ic(e)),r},Cc=e=>{let t=Nc(e),r=wc(e,t),n=e.replace(/'.*?'/,""),i=Eo.test(n)||So.test(n);return{currencySymbol:t,isCurrencyFirst:r,hasCurrencySpace:i}},yo=e=>e.replace(Eo,Ao).replace(So,Ao),Ic=e=>e.match(/#(.?)#/)?.[1]===bo?yc:bo,Nc=e=>e.match(/'(.*?)'/)?.[1]??"",To=e=>e.match(/0(.?)0/)?.[1]??"";function cr({formatString:e,price:t,usePrecision:r,isIndianPrice:n=!1},i,o=a=>a){let{currencySymbol:a,isCurrencyFirst:s,hasCurrencySpace:c}=Cc(e),l=r?To(e):"",h=Pc(e,r),d=r?2:0,u=o(t,{currencySymbol:a}),m=n?u.toLocaleString("hi-IN",{minimumFractionDigits:d,maximumFractionDigits:d}):vo(h,u),g=r?m.lastIndexOf(l):m.length,f=m.substring(0,g),L=m.substring(g+1);return{accessiblePrice:e.replace(/'.*?'/,"SYMBOL").replace(/#.*0/,m).replace(/SYMBOL/,a),currencySymbol:a,decimals:L,decimalsDelimiter:l,hasCurrencySpace:c,integer:f,isCurrencyFirst:s,recurrenceTerm:i}}var _o=e=>{let{commitment:t,term:r,usePrecision:n}=e,i=Tc[r]??1;return cr(e,i>1?_t.MONTH:xn[t]?.[r],(o,{currencySymbol:a})=>{let s={divisor:i,price:o,usePrecision:n},{round:c}=Lc.find(({accept:h})=>h(s));if(!c)throw new Error(`Missing rounding rule for: ${JSON.stringify(s)}`);return(_c[a]??(h=>h))(c(s))})},Lo=({commitment:e,term:t,...r})=>cr(r,xn[e]?.[t]),wo=e=>{let{commitment:t,term:r}=e;return t===$.YEAR&&r===k.MONTHLY?cr(e,_t.YEAR,n=>n*12):cr(e,xn[t]?.[r])};var kc={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}"},Oc=Gi("ConsonantTemplates/price"),Vc=/<.+?>/g,K={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"},Te={perUnitLabel:"perUnitLabel",perUnitAriaLabel:"perUnitAriaLabel",recurrenceLabel:"recurrenceLabel",recurrenceAriaLabel:"recurrenceAriaLabel",taxExclusiveLabel:"taxExclusiveLabel",taxInclusiveLabel:"taxInclusiveLabel",strikethroughAriaLabel:"strikethroughAriaLabel"},Rc="TAX_EXCLUSIVE",$c=e=>Di(e)?Object.entries(e).filter(([,t])=>ze(t)||qt(t)||t===!0).reduce((t,[r,n])=>t+` ${r}${n===!0?"":'="'+Mi(n)+'"'}`,""):"",J=(e,t,r,n=!1)=>`${n?yo(t):t??""}`;function Mc(e,{accessibleLabel:t,currencySymbol:r,decimals:n,decimalsDelimiter:i,hasCurrencySpace:o,integer:a,isCurrencyFirst:s,recurrenceLabel:c,perUnitLabel:l,taxInclusivityLabel:h},d={}){let u=J(K.currencySymbol,r),m=J(K.currencySpace,o?" ":""),g="";return s&&(g+=u+m),g+=J(K.integer,a),g+=J(K.decimalsDelimiter,i),g+=J(K.decimals,n),s||(g+=m+u),g+=J(K.recurrence,c,null,!0),g+=J(K.unitType,l,null,!0),g+=J(K.taxInclusivity,h,!0),J(e,g,{...d,"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:d,price:u,priceWithoutDiscount:m,taxDisplay:g,taxTerm:f,term:L,usePrecision:I}={},A={})=>{Object.entries({country:n,formatString:d,language:c,price:u}).forEach(([ie,Vr])=>{if(Vr==null)throw new Error(`Argument "${ie}" is missing`)});let T={...kc,...l},R=`${c.toLowerCase()}-${n.toUpperCase()}`;function _(ie,Vr){let Rr=T[ie];if(Rr==null)return"";try{return new go(Rr.replace(Vc,""),R).format(Vr)}catch{return Oc.error("Failed to format literal:",Rr),""}}let z=t&&m?m:u,H=e?_o:Lo;r&&(H=wo);let{accessiblePrice:he,recurrenceTerm:de,...Ue}=H({commitment:h,formatString:d,term:L,price:e?u:z,usePrecision:I,isIndianPrice:n==="IN"}),q=he,Ae="";if(S(o)&&de){let ie=_(Te.recurrenceAriaLabel,{recurrenceTerm:de});ie&&(q+=" "+ie),Ae=_(Te.recurrenceLabel,{recurrenceTerm:de})}let ue="";if(S(a)){ue=_(Te.perUnitLabel,{perUnit:"LICENSE"});let ie=_(Te.perUnitAriaLabel,{perUnit:"LICENSE"});ie&&(q+=" "+ie)}let Y="";S(s)&&f&&(Y=_(g===Rc?Te.taxExclusiveLabel:Te.taxInclusiveLabel,{taxTerm:f}),Y&&(q+=" "+Y)),t&&(q=_(Te.strikethroughAriaLabel,{strikethroughPrice:q}));let Z=K.container;if(e&&(Z+=" "+K.containerOptical),t&&(Z+=" "+K.containerStrikethrough),r&&(Z+=" "+K.containerAnnual),S(i))return Mc(Z,{...Ue,accessibleLabel:q,recurrenceLabel:Ae,perUnitLabel:ue,taxInclusivityLabel:Y},A);let{currencySymbol:Bt,decimals:rs,decimalsDelimiter:ns,hasCurrencySpace:Ni,integer:is,isCurrencyFirst:os}=Ue,De=[is,ns,rs];os?(De.unshift(Ni?"\xA0":""),De.unshift(Bt)):(De.push(Ni?"\xA0":""),De.push(Bt)),De.push(Ae,ue,Y);let as=De.join("");return J(Z,as,A)},Po=()=>(e,t,r)=>{let i=(e.displayOldPrice===void 0||S(e.displayOldPrice))&&t.priceWithoutDiscount&&t.priceWithoutDiscount!=t.price;return`${_e()(e,t,r)}${i?" "+_e({displayStrikethrough:!0})(e,t,r):""}`};var vn=_e(),bn=Po(),An=_e({displayOptical:!0}),En=_e({displayStrikethrough:!0}),Sn=_e({displayAnnual:!0});var Uc=(e,t)=>{if(!(!Ke(e)||!Ke(t)))return Math.floor((t-e)/t*100)},Co=()=>(e,t,r)=>{let{price:n,priceWithoutDiscount:i}=t,o=Uc(n,i);return o===void 0?'':`${o}%`};var yn=Co();var{freeze:Lt}=Object,Q=Lt({...Ee}),ee=Lt({...X}),Le={STAGE:"STAGE",PRODUCTION:"PRODUCTION",LOCAL:"LOCAL"},Tn=Lt({...$}),_n=Lt({...zi}),Ln=Lt({...k});var Dn={};ps(Dn,{CLASS_NAME_FAILED:()=>wn,CLASS_NAME_PENDING:()=>Pn,CLASS_NAME_RESOLVED:()=>Cn,ERROR_MESSAGE_BAD_REQUEST:()=>lr,ERROR_MESSAGE_MISSING_LITERALS_URL:()=>Dc,ERROR_MESSAGE_OFFER_NOT_FOUND:()=>In,EVENT_TYPE_ERROR:()=>Gc,EVENT_TYPE_FAILED:()=>Nn,EVENT_TYPE_PENDING:()=>kn,EVENT_TYPE_READY:()=>Ye,EVENT_TYPE_RESOLVED:()=>On,LOG_NAMESPACE:()=>Vn,Landscape:()=>we,PARAM_AOS_API_KEY:()=>Hc,PARAM_ENV:()=>Rn,PARAM_LANDSCAPE:()=>$n,PARAM_WCS_API_KEY:()=>zc,STATE_FAILED:()=>oe,STATE_PENDING:()=>ae,STATE_RESOLVED:()=>se,WCS_PROD_URL:()=>Mn,WCS_STAGE_URL:()=>Un});var wn="placeholder-failed",Pn="placeholder-pending",Cn="placeholder-resolved",lr="Bad WCS request",In="Commerce offer not found",Dc="Literals URL not provided",Gc="mas:error",Nn="mas:failed",kn="mas:pending",Ye="mas:ready",On="mas:resolved",Vn="mas/commerce",Rn="commerce.env",$n="commerce.landscape",Hc="commerce.aosKey",zc="commerce.wcsKey",Mn="https://www.adobe.com/web_commerce_artifact",Un="https://www.stage.adobe.com/web_commerce_artifact_stage",oe="failed",ae="pending",se="resolved",we={DRAFT:"DRAFT",PUBLISHED:"PUBLISHED"};var Io="mas-commerce-service";function No(e,{once:t=!1}={}){let r=null;function n(){let i=document.querySelector(Io);i!==r&&(r=i,i&&e(i))}return document.addEventListener(Ye,n,{once:t}),pe(n),()=>document.removeEventListener(Ye,n)}function wt(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(en)),i}var pe=e=>window.setTimeout(e);function Xe(e,t=1){if(e==null)return[t];let r=(Array.isArray(e)?e:String(e).split(",")).map(je).filter(Ke);return r.length||(r=[t]),r}function hr(e){return e==null?[]:(Array.isArray(e)?e:String(e).split(",")).filter(Yr)}function j(){return document.getElementsByTagName(Io)?.[0]}var Fc={[oe]:wn,[ae]:Pn,[se]:Cn},Kc={[oe]:Nn,[ae]:kn,[se]:On},We=class{constructor(t){p(this,"changes",new Map);p(this,"connected",!1);p(this,"dispose",Fe);p(this,"error");p(this,"log");p(this,"options");p(this,"promises",[]);p(this,"state",ae);p(this,"timer",null);p(this,"value");p(this,"version",0);p(this,"wrapperElement");this.wrapperElement=t}update(){[oe,ae,se].forEach(t=>{this.wrapperElement.classList.toggle(Fc[t],t===this.state)})}notify(){(this.state===se||this.state===oe)&&(this.state===se?this.promises.forEach(({resolve:t})=>t(this.wrapperElement)):this.state===oe&&this.promises.forEach(({reject:t})=>t(this.error)),this.promises=[]),this.wrapperElement.dispatchEvent(new CustomEvent(Kc[this.state],{bubbles:!0}))}attributeChangedCallback(t,r,n){this.changes.set(t,n),this.requestUpdate()}connectedCallback(){this.dispose=No(()=>this.requestUpdate(!0))}disconnectedCallback(){this.connected&&(this.connected=!1,this.log?.debug("Disconnected:",{element:this.wrapperElement})),this.dispose(),this.dispose=Fe}onceSettled(){let{error:t,promises:r,state:n}=this;return se===n?Promise.resolve(this.wrapperElement):oe===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=se,this.value=r,this.update(),this.log?.debug("Resolved:",{element:this.wrapperElement,value:r}),pe(()=>this.notify()),!0)}toggleFailed(t,r,n){return t!==this.version?!1:(n!==void 0&&(this.options=n),this.error=r,this.state=oe,this.update(),this.log?.error("Failed:",{element:this.wrapperElement,error:r}),pe(()=>this.notify()),!0)}togglePending(t){return this.version++,t&&(this.options=t),this.state=ae,this.update(),pe(()=>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=ae,this.timer=pe(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===ae&&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 ko(e={}){return Object.entries(e).forEach(([t,r])=>{(r==null||r===""||r?.length===0)&&delete e[t]}),e}function dr(e,t={}){let{tag:r,is:n}=e,i=document.createElement(r,{is:n});return i.setAttribute("is",n),Object.assign(i.dataset,ko(t)),i}function ur(e,t={}){return e instanceof HTMLElement?(Object.assign(e.dataset,ko(t)),e):null}var Bc="download",jc="upgrade",Pe,Pt=class Pt extends HTMLAnchorElement{constructor(){super();B(this,Pe);p(this,"masElement",new We(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:d,promotionCode:u,quantity:m,wcsOsi:g,extraOptions:f}=i.collectCheckoutOptions(r),L=dr(Pt,{checkoutMarketSegment:o,checkoutWorkflow:a,checkoutWorkflowStep:s,entitlement:c,upgrade:l,modal:h,perpetual:d,promotionCode:u,quantity:m,wcsOsi:g,extraOptions:f});return n&&(L.innerHTML=`${n}`),L}get isCheckoutLink(){return!0}clickHandler(r){var n;(n=F(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)},Fe);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=>wt(h,i));let l=await n.buildCheckoutAction?.(c.flat(),{...o,...i},this);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)),F(this,Pe)&&ft(this,Pe,void 0),o){this.classList.remove(Bc,jc),this.masElement.toggleResolved(a,r,n);let{url:l,text:h,className:d,handler:u}=o;return l&&(this.href=l),h&&(this.firstElementChild.innerHTML=h),d&&this.classList.add(...d.split(" ")),u&&(this.setAttribute("href","#"),ft(this,Pe,u.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:d,quantity:u,wcsOsi:m}=n.collectCheckoutOptions(r);return ur(this,{checkoutMarketSegment:i,checkoutWorkflow:o,checkoutWorkflowStep:a,entitlement:s,upgrade:c,modal:l,perpetual:h,promotionCode:d,quantity:u,wcsOsi:m}),!0}};Pe=new WeakMap,p(Pt,"is","checkout-link"),p(Pt,"tag","a");var te=Pt;window.customElements.get(te.is)||window.customElements.define(te.is,te,{extends:te.tag});var y=Object.freeze({checkoutClientId:"adobe_com",checkoutWorkflow:Q.V3,checkoutWorkflowStep:ee.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});function Oo({providers:e,settings:t}){function r(o,a){let{checkoutClientId:s,checkoutWorkflow:c,checkoutWorkflowStep:l,country:h,language:d,promotionCode:u,quantity:m}=t,{checkoutMarketSegment:g,checkoutWorkflow:f=c,checkoutWorkflowStep:L=l,imsCountry:I,country:A=I??h,language:T=d,quantity:R=m,entitlement:_,upgrade:z,modal:H,perpetual:he,promotionCode:de=u,wcsOsi:Ue,extraOptions:q,...Ae}=Object.assign({},a?.dataset??{},o??{}),ue=me(f,Q,y.checkoutWorkflow),Y=ee.CHECKOUT;ue===Q.V3&&(Y=me(L,ee,y.checkoutWorkflowStep));let Z=Be({...Ae,extraOptions:q,checkoutClientId:s,checkoutMarketSegment:g,country:A,quantity:Xe(R,y.quantity),checkoutWorkflow:ue,checkoutWorkflowStep:Y,language:T,entitlement:S(_),upgrade:S(z),modal:S(H),perpetual:S(he),promotionCode:bt(de).effectivePromoCode,wcsOsi:hr(Ue)});if(a)for(let Bt of e.checkout)Bt(a,Z);return Z}function n(o,a){if(!Array.isArray(o)||!o.length||!a)return"";let{env:s,landscape:c}=t,{checkoutClientId:l,checkoutMarketSegment:h,checkoutWorkflow:d,checkoutWorkflowStep:u,country:m,promotionCode:g,quantity:f,...L}=r(a),I=window.frameElement?"if":"fp",A={checkoutPromoCode:g,clientId:l,context:I,country:m,env:s,items:[],marketSegment:h,workflowStep:u,landscape:c,...L};if(o.length===1){let[{offerId:T,offerType:R,productArrangementCode:_}]=o,{marketSegments:[z]}=o[0];Object.assign(A,{marketSegment:z,offerType:R,productArrangementCode:_}),A.items.push(f[0]===1?{id:T}:{id:T,quantity:f[0]})}else A.items.push(...o.map(({offerId:T},R)=>({id:T,quantity:f[R]??y.quantity})));return Hr(d,A)}let{createCheckoutLink:i}=te;return{CheckoutLink:te,CheckoutWorkflow:Q,CheckoutWorkflowStep:ee,buildCheckoutURL:n,collectCheckoutOptions:r,createCheckoutLink:i}}var Gn={clientId:"merch-at-scale",delimiter:"\xB6",ignoredProperties:["analytics","literals"],serializableTypes:["Array","Object"],sampleRate:30,tags:"consumer=milo/commerce"},Vo=new Set,Yc=e=>e instanceof Error||typeof e.originatingRequest=="string";function Ro(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 Xc(e,t){if(!Gn.ignoredProperties.includes(e))return Ro(t)}var Hn={append(e){let{delimiter:t,sampleRate:r,tags:n,clientId:i}=Gn,{message:o,params:a}=e,s=[],c=o,l=[];a.forEach(u=>{u!=null&&(Yc(u)?s:l).push(u)}),s.length&&(c+=" ",c+=s.map(Ro).join(" "));let{pathname:h,search:d}=window.location;c+=`${t}page=`,c+=h+d,l.length&&(c+=`${t}facts=`,c+=JSON.stringify(l,Xc)),Vo.has(c)||(Vo.add(c),window.lana?.log(c,{sampleRate:r,tags:n,clientId:i}))}};var zn=Object.freeze({LOCAL:"local",PROD:"prod",STAGE:"stage"});function Wc({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 Fn(e={}){let{commerce:t={}}=e,r=Le.PRODUCTION,n=Mn,i=O("checkoutClientId",t)??y.checkoutClientId,o=me(O("checkoutWorkflow",t),Q,y.checkoutWorkflow),a=ee.CHECKOUT;o===Q.V3&&(a=me(O("checkoutWorkflowStep",t),ee,y.checkoutWorkflowStep));let s=S(O("displayOldPrice",t),y.displayOldPrice),c=S(O("displayPerUnit",t),y.displayPerUnit),l=S(O("displayRecurrence",t),y.displayRecurrence),h=S(O("displayTax",t),y.displayTax),d=S(O("entitlement",t),y.entitlement),u=S(O("modal",t),y.modal),m=S(O("forceTaxExclusive",t),y.forceTaxExclusive),g=O("promotionCode",t)??y.promotionCode,f=Xe(O("quantity",t)),L=O("wcsApiKey",t)??y.wcsApiKey,I=t?.env==="stage",A=we.PUBLISHED;["true",""].includes(t.allowOverride)&&(I=(O(Rn,t,{metadata:!1})?.toLowerCase()??t?.env)==="stage",A=me(O($n,t),we,A)),I&&(r=Le.STAGE,n=Un);let R=je(O("wcsBufferDelay",t),y.wcsBufferDelay),_=je(O("wcsBufferLimit",t),y.wcsBufferLimit);return{...Wc(e),displayOldPrice:s,checkoutClientId:i,checkoutWorkflow:o,checkoutWorkflowStep:a,displayPerUnit:c,displayRecurrence:l,displayTax:h,entitlement:d,extraOptions:y.extraOptions,modal:u,env:r,forceTaxExclusive:m,promotionCode:g,quantity:f,wcsApiKey:L,wcsBufferDelay:R,wcsBufferLimit:_,wcsURL:n,landscape:A}}var Mo="debug",qc="error",Zc="info",Jc="warn",Qc=Date.now(),Kn=new Set,Bn=new Set,$o=new Map,Ct=Object.freeze({DEBUG:Mo,ERROR:qc,INFO:Zc,WARN:Jc}),Uo={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!==Mo},el={filter:()=>!1};function tl(e,t,r,n,i){return{level:e,message:t,namespace:r,get params(){if(n.length===1){let[o]=n;vt(o)&&(n=o(),Array.isArray(n)||(n=[n]))}return n},source:i,timestamp:Date.now()-Qc}}function rl(e){[...Bn].every(t=>t(e))&&Kn.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)=>rl(tl(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 mr(...e){e.forEach(t=>{let{append:r,filter:n}=t;vt(n)?Bn.add(n):vt(r)&&Kn.add(r)})}function nl(e={}){let{name:t}=e,r=S(O("commerce.debug",{search:!0,storage:!0}),t===zn.LOCAL);return mr(r?Uo:Do),t===zn.PROD&&mr(Hn),W}function il(){Kn.clear(),Bn.clear()}var W={...Go(Vn),Level:Ct,Plugins:{consoleAppender:Uo,debugFilter:Do,quietFilter:el,lanaAppender:Hn},init:nl,reset:il,use:mr};function ol({interval:e=200,maxAttempts:t=25}={}){let r=W.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 al(e){return e.then(()=>window.adobeIMS?.isSignedInUser()??!1)}function sl(e){let t=W.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 Ho({}){let e=ol(),t=al(e),r=sl(t);return{imsReadyPromise:e,imsSignedInPromise:t,imsCountryPromise:r}}async function Fo(e,t){let{data:r}=t||await Promise.resolve().then(()=>gs(zo(),1));if(Array.isArray(r)){let n=o=>r.find(a=>Wt(a.lang,o)),i=n(e.language)??n(y.language);if(i)return Object.freeze(i)}return{}}var Ko=["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"],ll={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"]},It=class It extends HTMLSpanElement{constructor(){super();p(this,"masElement",new We(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:d,template:u,wcsOsi:m}=n.collectPriceOptions(r);return dr(It,{displayOldPrice:i,displayPerUnit:o,displayRecurrence:a,displayTax:s,forceTaxExclusive:c,perpetual:l,promotionCode:h,quantity:d,template:u,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(Ko.includes(r)||Ko.includes(a))return!0;let s=ll[`${i}_${o}`];return s?!!(s.includes(r)||s.includes(a)):!1}async resolveDisplayTax(r,n){let[i]=await r.resolveOfferSelectors(n),o=wt(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(wt(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:d,template:u,wcsOsi:m}=n.collectPriceOptions(r);return ur(this,{displayOldPrice:i,displayPerUnit:o,displayRecurrence:a,displayTax:s,forceTaxExclusive:c,perpetual:l,promotionCode:h,quantity:d,template:u,wcsOsi:m}),!0}};p(It,"is","inline-price"),p(It,"tag","span");var re=It;window.customElements.get(re.is)||window.customElements.define(re.is,re,{extends:re.tag});function Bo({literals:e,providers:t,settings:r}){function n(a,s){let{country:c,displayOldPrice:l,displayPerUnit:h,displayRecurrence:d,displayTax:u,forceTaxExclusive:m,language:g,promotionCode:f,quantity:L}=r,{displayOldPrice:I=l,displayPerUnit:A=h,displayRecurrence:T=d,displayTax:R=u,forceTaxExclusive:_=m,country:z=c,language:H=g,perpetual:he,promotionCode:de=f,quantity:Ue=L,template:q,wcsOsi:Ae,...ue}=Object.assign({},s?.dataset??{},a??{}),Y=Be({...ue,country:z,displayOldPrice:S(I),displayPerUnit:S(A),displayRecurrence:S(T),displayTax:S(R),forceTaxExclusive:S(_),language:H,perpetual:S(he),promotionCode:bt(de).effectivePromoCode,quantity:Xe(Ue,y.quantity),template:q,wcsOsi:hr(Ae)});if(s)for(let Z of t.price)Z(s,Y);return Y}function i(a,s){if(!Array.isArray(a)||!a.length||!s)return"";let{template:c}=s,l;switch(c){case"discount":l=yn;break;case"strikethrough":l=En;break;case"optical":l=An;break;case"annual":l=Sn;break;default:l=s.promotionCode?bn:vn}let h=n(s);h.literals=Object.assign({},e.price,Be(s.literals??{}));let[d]=a;return d={...d,...d.priceDetails},l(h,d)}let{createInlinePrice:o}=re;return{InlinePrice:re,buildPriceHTML:i,collectPriceOptions:n,createInlinePrice:o}}function jo({settings:e}){let t=W.module("wcs"),{env:r,wcsApiKey:n}=e,i=new Map,o=new Map,a;async function s(d,u,m=!0){let g=In;t.debug("Fetching:",d);try{d.offerSelectorIds=d.offerSelectorIds.sort();let f=new URL(e.wcsURL);f.searchParams.set("offer_selector_ids",d.offerSelectorIds.join(",")),f.searchParams.set("country",d.country),f.searchParams.set("locale",d.locale),f.searchParams.set("landscape",r===Le.STAGE?"ALL":e.landscape),f.searchParams.set("api_key",n),d.language&&f.searchParams.set("language",d.language),d.promotionCode&&f.searchParams.set("promotion_code",d.promotionCode),d.currency&&f.searchParams.set("currency",d.currency);let L=await fetch(f.toString(),{credentials:"omit"});if(L.ok){let I=await L.json();t.debug("Fetched:",d,I);let A=I.resolvedOffers??[];A=A.map(Jt),u.forEach(({resolve:T},R)=>{let _=A.filter(({offerSelectorIds:z})=>z.includes(R)).flat();_.length&&(u.delete(R),T(_))})}else L.status===404&&d.offerSelectorIds.length>1?(t.debug("Multi-osi 404, fallback to fetch-by-one strategy"),await Promise.allSettled(d.offerSelectorIds.map(I=>s({...d,offerSelectorIds:[I]},u,!1)))):(g=lr,t.error(g,d))}catch(f){g=lr,t.error(g,d,f)}m&&u.size&&(t.debug("Missing:",{offerSelectorIds:[...u.keys()]}),u.forEach(f=>{f.reject(new Error(g))}))}function c(){clearTimeout(a);let d=[...o.values()];o.clear(),d.forEach(({options:u,promises:m})=>s(u,m))}function l(){let d=i.size;i.clear(),t.debug(`Flushed ${d} cache entries`)}function h({country:d,language:u,perpetual:m=!1,promotionCode:g="",wcsOsi:f=[]}){let L=`${u}_${d}`;d!=="GB"&&(u=m?"EN":"MULT");let I=[d,u,g].filter(A=>A).join("-").toLowerCase();return f.map(A=>{let T=`${A}-${I}`;if(!i.has(T)){let R=new Promise((_,z)=>{let H=o.get(I);if(!H){let he={country:d,locale:L,offerSelectorIds:[]};d!=="GB"&&(he.language=u),H={options:he,promises:new Map},o.set(I,H)}g&&(H.options.promotionCode=g),H.options.offerSelectorIds.push(A),H.promises.set(A,{resolve:_,reject:z}),H.options.offerSelectorIds.length>=e.wcsBufferLimit?c():(t.debug("Queued:",H.options),a||(a=setTimeout(c,e.wcsBufferDelay)))});i.set(T,R)}return i.get(T)})}return{WcsCommitment:Tn,WcsPlanType:_n,WcsTerm:Ln,resolveOfferSelectors:h,flushWcsCache:l}}var jn="mas-commerce-service",fr,Yo,pr=class extends HTMLElement{constructor(){super(...arguments);B(this,fr);p(this,"promise",null)}async registerCheckoutAction(r){typeof r=="function"&&(this.buildCheckoutAction=async(n,i,o)=>{let a=await r?.(n,i,this.imsSignedInPromise,o);return a||null})}async activate(){let r=F(this,fr,Yo),n=W.init(r.env).module("service");n.debug("Activating:",r);let i=Object.freeze(Fn(r)),o={price:{}};try{o.price=await Fo(i,r.commerce.priceLiterals)}catch{}let a={checkout:new Set,price:new Set},s={literals:o,providers:a,settings:i};Object.defineProperties(this,Object.getOwnPropertyDescriptors({...Oo(s),...Ho(s),...Bo(s),...jo(s),...Dn,Log:W,get defaults(){return y},get log(){return W},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:o,settings:i}),pe(()=>{let c=new CustomEvent(Ye,{bubbles:!0,cancelable:!1,detail:this});this.dispatchEvent(c)})}connectedCallback(){this.readyPromise||(this.readyPromise=this.activate())}disconnectedCallback(){this.readyPromise=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")}};fr=new WeakSet,Yo=function(){let r={commerce:{env:this.getAttribute("env")}};return["locale","country","language"].forEach(n=>{let i=this.getAttribute(n);i&&(r[n]=i)}),["checkout-workflow-step","force-tax-exclusive","checkout-client-id","allow-override"].forEach(n=>{let i=this.getAttribute(n);if(i!=null){let o=n.replace(/-([a-z])/g,a=>a[1].toUpperCase());r.commerce[o]=i}}),r},p(pr,"instance");window.customElements.get(jn)||window.customElements.define(jn,pr);var gr=window,vr=gr.ShadowRoot&&(gr.ShadyCSS===void 0||gr.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Wo=Symbol(),Xo=new WeakMap,xr=class{constructor(t,r,n){if(this._$cssResult$=!0,n!==Wo)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(vr&&t===void 0){let n=r!==void 0&&r.length===1;n&&(t=Xo.get(r)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),n&&Xo.set(r,t))}return t}toString(){return this.cssText}},qo=e=>new xr(typeof e=="string"?e:e+"",void 0,Wo);var Yn=(e,t)=>{vr?e.adoptedStyleSheets=t.map(r=>r instanceof CSSStyleSheet?r:r.styleSheet):t.forEach(r=>{let n=document.createElement("style"),i=gr.litNonce;i!==void 0&&n.setAttribute("nonce",i),n.textContent=r.cssText,e.appendChild(n)})},br=vr?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let r="";for(let n of t.cssRules)r+=n.cssText;return qo(r)})(e):e;var Xn,Ar=window,Zo=Ar.trustedTypes,hl=Zo?Zo.emptyScript:"",Jo=Ar.reactiveElementPolyfillSupport,qn={toAttribute(e,t){switch(t){case Boolean:e=e?hl: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}},Qo=(e,t)=>t!==e&&(t==t||e==e),Wn={attribute:!0,type:String,converter:qn,reflect:!1,hasChanged:Qo},Zn="finalized",Ce=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=Wn){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)||Wn}static finalize(){if(this.hasOwnProperty(Zn))return!1;this[Zn]=!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(br(i))}else t!==void 0&&r.push(br(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 Yn(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=Wn){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:qn).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:qn;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||Qo)(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){}};Ce[Zn]=!0,Ce.elementProperties=new Map,Ce.elementStyles=[],Ce.shadowRootOptions={mode:"open"},Jo?.({ReactiveElement:Ce}),((Xn=Ar.reactiveElementVersions)!==null&&Xn!==void 0?Xn:Ar.reactiveElementVersions=[]).push("1.6.3");var Jn,Er=window,qe=Er.trustedTypes,ea=qe?qe.createPolicy("lit-html",{createHTML:e=>e}):void 0,ei="$lit$",fe=`lit$${(Math.random()+"").slice(9)}$`,sa="?"+fe,dl=`<${sa}>`,ke=document,Sr=()=>ke.createComment(""),kt=e=>e===null||typeof e!="object"&&typeof e!="function",ca=Array.isArray,ul=e=>ca(e)||typeof e?.[Symbol.iterator]=="function",Qn=`[ -\f\r]`,Nt=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,ta=/-->/g,ra=/>/g,Ie=RegExp(`>|${Qn}(?:([^\\s"'>=/]+)(${Qn}*=${Qn}*(?:[^ -\f\r"'\`<>=]|("|')|))|$)`,"g"),na=/'/g,ia=/"/g,la=/^(?:script|style|textarea|title)$/i,ha=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),Du=ha(1),Gu=ha(2),Ot=Symbol.for("lit-noChange"),M=Symbol.for("lit-nothing"),oa=new WeakMap,Ne=ke.createTreeWalker(ke,129,null,!1);function da(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return ea!==void 0?ea.createHTML(t):t}var ml=(e,t)=>{let r=e.length-1,n=[],i,o=t===2?"":"",a=Nt;for(let s=0;s"?(a=i??Nt,d=-1):h[1]===void 0?d=-2:(d=a.lastIndex-h[2].length,l=h[1],a=h[3]===void 0?Ie:h[3]==='"'?ia:na):a===ia||a===na?a=Ie:a===ta||a===ra?a=Nt:(a=Ie,i=void 0);let m=a===Ie&&e[s+1].startsWith("/>")?" ":"";o+=a===Nt?c+dl:d>=0?(n.push(l),c.slice(0,d)+ei+c.slice(d)+fe+m):c+fe+(d===-2?(n.push(void 0),s):m)}return[da(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,[l,h]=ml(t,r);if(this.el=e.createElement(l,n),Ne.currentNode=this.el.content,r===2){let d=this.el.content,u=d.firstChild;u.remove(),d.append(...u.childNodes)}for(;(i=Ne.nextNode())!==null&&c.length0){i.textContent=qe?qe.emptyScript:"";for(let m=0;m2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=M}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=Ze(this,t,r,0),a=!kt(t)||t!==this._$AH&&t!==Ot,a&&(this._$AH=t);else{let s=t,c,l;for(t=o[0],c=0;cnew Rt(typeof e=="string"?e:e+"",void 0,ai),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 Rt(r,e,ai)},si=(e,t)=>{_r?e.adoptedStyleSheets=t.map(r=>r instanceof CSSStyleSheet?r:r.styleSheet):t.forEach(r=>{let n=document.createElement("style"),i=Tr.litNonce;i!==void 0&&n.setAttribute("nonce",i),n.textContent=r.cssText,e.appendChild(n)})},Lr=_r?e=>e:e=>e instanceof CSSStyleSheet?(t=>{let r="";for(let n of t.cssRules)r+=n.cssText;return ge(r)})(e):e;var ci,wr=window,ma=wr.trustedTypes,fl=ma?ma.emptyScript:"",pa=wr.reactiveElementPolyfillSupport,hi={toAttribute(e,t){switch(t){case Boolean:e=e?fl: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}},fa=(e,t)=>t!==e&&(t==t||e==e),li={attribute:!0,type:String,converter:hi,reflect:!1,hasChanged:fa},di="finalized",ce=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=li){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)||li}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(Lr(i))}else t!==void 0&&r.push(Lr(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 si(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=li){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:hi).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:hi;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||fa)(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){}};ce[di]=!0,ce.elementProperties=new Map,ce.elementStyles=[],ce.shadowRootOptions={mode:"open"},pa?.({ReactiveElement:ce}),((ci=wr.reactiveElementVersions)!==null&&ci!==void 0?ci:wr.reactiveElementVersions=[]).push("1.6.3");var ui,Pr=window,Qe=Pr.trustedTypes,ga=Qe?Qe.createPolicy("lit-html",{createHTML:e=>e}):void 0,pi="$lit$",xe=`lit$${(Math.random()+"").slice(9)}$`,ya="?"+xe,gl=`<${ya}>`,Re=document,Mt=()=>Re.createComment(""),Ut=e=>e===null||typeof e!="object"&&typeof e!="function",Ta=Array.isArray,xl=e=>Ta(e)||typeof e?.[Symbol.iterator]=="function",mi=`[ -\f\r]`,$t=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,xa=/-->/g,va=/>/g,Oe=RegExp(`>|${mi}(?:([^\\s"'>=/]+)(${mi}*=${mi}*(?:[^ -\f\r"'\`<>=]|("|')|))|$)`,"g"),ba=/'/g,Aa=/"/g,_a=/^(?:script|style|textarea|title)$/i,La=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),x=La(1),ju=La(2),$e=Symbol.for("lit-noChange"),U=Symbol.for("lit-nothing"),Ea=new WeakMap,Ve=Re.createTreeWalker(Re,129,null,!1);function wa(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return ga!==void 0?ga.createHTML(t):t}var vl=(e,t)=>{let r=e.length-1,n=[],i,o=t===2?"":"",a=$t;for(let s=0;s"?(a=i??$t,d=-1):h[1]===void 0?d=-2:(d=a.lastIndex-h[2].length,l=h[1],a=h[3]===void 0?Oe:h[3]==='"'?Aa:ba):a===Aa||a===ba?a=Oe:a===xa||a===va?a=$t:(a=Oe,i=void 0);let m=a===Oe&&e[s+1].startsWith("/>")?" ":"";o+=a===$t?c+gl:d>=0?(n.push(l),c.slice(0,d)+pi+c.slice(d)+xe+m):c+xe+(d===-2?(n.push(void 0),s):m)}return[wa(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,[l,h]=vl(t,r);if(this.el=e.createElement(l,n),Ve.currentNode=this.el.content,r===2){let d=this.el.content,u=d.firstChild;u.remove(),d.append(...u.childNodes)}for(;(i=Ve.nextNode())!==null&&c.length0){i.textContent=Qe?Qe.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=et(this,t,r,0),a=!Ut(t)||t!==this._$AH&&t!==$e,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 Gt(t.insertBefore(Mt(),s),s,void 0,r??{})}return a._$AI(e),a};var Ai,Ei;var ne=class extends ce{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=Pa(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 $e}};ne.finalized=!0,ne._$litElement$=!0,(Ai=globalThis.litElementHydrateSupport)===null||Ai===void 0||Ai.call(globalThis,{LitElement:ne});var Ca=globalThis.litElementPolyfillSupport;Ca?.({LitElement:ne});((Ei=globalThis.litElementVersions)!==null&&Ei!==void 0?Ei:globalThis.litElementVersions=[]).push("3.3.3");var ve="(max-width: 767px)",Cr="(max-width: 1199px)",V="(min-width: 768px)",N="(min-width: 1200px)",D="(min-width: 1600px)";var Ia=w` +`,_e.MISSING_INTL_API,a);var R=r.getPluralRules(t,{type:h.pluralType}).select(u-(h.offset||0));T=h.options[R]||h.options.other}if(!T)throw new fn(h.value,u,Object.keys(h.options),a);s.push.apply(s,_t(T.value,t,r,n,i,u-(h.offset||0)));continue}}return mc(s)}function fc(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 gc(e,t){return t?Object.keys(e).reduce(function(r,n){return r[n]=fc(e[n],t[n]),r},E({},e)):e}function gn(e){return{create:function(){return{get:function(t){return e[t]},set:function(t,r){e[t]=r}}}}}function xc(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=vo(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(bc);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 Ec(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,Sc(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 Sc(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},xn=(e,t)=>({accept:e,round:t}),wc=[xn(({divisor:e,price:t})=>t%e==0,({divisor:e,price:t})=>t/e),xn(({usePrecision:e})=>e,({divisor:e,price:t})=>Math.ceil(Math.floor(t*1e4/e)/100)/100),xn(()=>!0,({divisor:e,price:t})=>Math.ceil(Math.floor(t*100/e)/100))],vn={[$.YEAR]:{[k.MONTHLY]:Lt.MONTH,[k.ANNUAL]:Lt.YEAR},[$.MONTH]:{[k.MONTHLY]:Lt.MONTH}},Pc=(e,t)=>e.indexOf(`'${t}'`)===0,Cc=(e,t=!0)=>{let r=e.replace(/'.*?'/,"").trim(),n=_o(r);return!!n?t||(r=r.replace(/[,\.]0+/,n)):r=r.replace(/\s?(#.*0)(?!\s)?/,"$&"+Nc(e)),r},Ic=e=>{let t=kc(e),r=Pc(e,t),n=e.replace(/'.*?'/,""),i=So.test(n)||yo.test(n);return{currencySymbol:t,isCurrencyFirst:r,hasCurrencySpace:i}},To=e=>e.replace(So,Eo).replace(yo,Eo),Nc=e=>e.match(/#(.?)#/)?.[1]===Ao?Tc:Ao,kc=e=>e.match(/'(.*?)'/)?.[1]??"",_o=e=>e.match(/0(.?)0/)?.[1]??"";function lr({formatString:e,price:t,usePrecision:r,isIndianPrice:n=!1},i,o=a=>a){let{currencySymbol:a,isCurrencyFirst:s,hasCurrencySpace:c}=Ic(e),l=r?_o(e):"",h=Cc(e,r),d=r?2:0,u=o(t,{currencySymbol:a}),m=n?u.toLocaleString("hi-IN",{minimumFractionDigits:d,maximumFractionDigits:d}):bo(h,u),g=r?m.lastIndexOf(l):m.length,f=m.substring(0,g),L=m.substring(g+1);return{accessiblePrice:e.replace(/'.*?'/,"SYMBOL").replace(/#.*0/,m).replace(/SYMBOL/,a),currencySymbol:a,decimals:L,decimalsDelimiter:l,hasCurrencySpace:c,integer:f,isCurrencyFirst:s,recurrenceTerm:i}}var Lo=e=>{let{commitment:t,term:r,usePrecision:n}=e,i=_c[r]??1;return lr(e,i>1?Lt.MONTH:vn[t]?.[r],(o,{currencySymbol:a})=>{let s={divisor:i,price:o,usePrecision:n},{round:c}=wc.find(({accept:h})=>h(s));if(!c)throw new Error(`Missing rounding rule for: ${JSON.stringify(s)}`);return(Lc[a]??(h=>h))(c(s))})},wo=({commitment:e,term:t,...r})=>lr(r,vn[e]?.[t]),Po=e=>{let{commitment:t,term:r}=e;return t===$.YEAR&&r===k.MONTHLY?lr(e,Lt.YEAR,n=>n*12):lr(e,vn[t]?.[r])};var Oc={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}"},Vc=Hi("ConsonantTemplates/price"),Rc=/<.+?>/g,B={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"},Le={perUnitLabel:"perUnitLabel",perUnitAriaLabel:"perUnitAriaLabel",recurrenceLabel:"recurrenceLabel",recurrenceAriaLabel:"recurrenceAriaLabel",taxExclusiveLabel:"taxExclusiveLabel",taxInclusiveLabel:"taxInclusiveLabel",strikethroughAriaLabel:"strikethroughAriaLabel"},$c="TAX_EXCLUSIVE",Mc=e=>Gi(e)?Object.entries(e).filter(([,t])=>Ke(t)||Zt(t)||t===!0).reduce((t,[r,n])=>t+` ${r}${n===!0?"":'="'+Ui(n)+'"'}`,""):"",J=(e,t,r,n=!1)=>`${n?To(t):t??""}`;function Uc(e,{accessibleLabel:t,currencySymbol:r,decimals:n,decimalsDelimiter:i,hasCurrencySpace:o,integer:a,isCurrencyFirst:s,recurrenceLabel:c,perUnitLabel:l,taxInclusivityLabel:h},d={}){let u=J(B.currencySymbol,r),m=J(B.currencySpace,o?" ":""),g="";return s&&(g+=u+m),g+=J(B.integer,a),g+=J(B.decimalsDelimiter,i),g+=J(B.decimals,n),s||(g+=m+u),g+=J(B.recurrence,c,null,!0),g+=J(B.unitType,l,null,!0),g+=J(B.taxInclusivity,h,!0),J(e,g,{...d,"aria-label":t})}var we=({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:d,price:u,priceWithoutDiscount:m,taxDisplay:g,taxTerm:f,term:L,usePrecision:I}={},A={})=>{Object.entries({country:n,formatString:d,language:c,price:u}).forEach(([ie,Rr])=>{if(Rr==null)throw new Error(`Argument "${ie}" is missing`)});let T={...Oc,...l},R=`${c.toLowerCase()}-${n.toUpperCase()}`;function _(ie,Rr){let $r=T[ie];if($r==null)return"";try{return new xo($r.replace(Rc,""),R).format(Rr)}catch{return Vc.error("Failed to format literal:",$r),""}}let F=t&&m?m:u,z=e?Lo:wo;r&&(z=Po);let{accessiblePrice:de,recurrenceTerm:ue,...Ge}=z({commitment:h,formatString:d,term:L,price:e?u:F,usePrecision:I,isIndianPrice:n==="IN"}),q=de,Se="";if(S(o)&&ue){let ie=_(Le.recurrenceAriaLabel,{recurrenceTerm:ue});ie&&(q+=" "+ie),Se=_(Le.recurrenceLabel,{recurrenceTerm:ue})}let me="";if(S(a)){me=_(Le.perUnitLabel,{perUnit:"LICENSE"});let ie=_(Le.perUnitAriaLabel,{perUnit:"LICENSE"});ie&&(q+=" "+ie)}let Y="";S(s)&&f&&(Y=_(g===$c?Le.taxExclusiveLabel:Le.taxInclusiveLabel,{taxTerm:f}),Y&&(q+=" "+Y)),t&&(q=_(Le.strikethroughAriaLabel,{strikethroughPrice:q}));let Z=B.container;if(e&&(Z+=" "+B.containerOptical),t&&(Z+=" "+B.containerStrikethrough),r&&(Z+=" "+B.containerAnnual),S(i))return Uc(Z,{...Ge,accessibleLabel:q,recurrenceLabel:Se,perUnitLabel:me,taxInclusivityLabel:Y},A);let{currencySymbol:jt,decimals:ns,decimalsDelimiter:is,hasCurrencySpace:ki,integer:os,isCurrencyFirst:as}=Ge,He=[os,is,ns];as?(He.unshift(ki?"\xA0":""),He.unshift(jt)):(He.push(ki?"\xA0":""),He.push(jt)),He.push(Se,me,Y);let ss=He.join("");return J(Z,ss,A)},Co=()=>(e,t,r)=>{let i=(e.displayOldPrice===void 0||S(e.displayOldPrice))&&t.priceWithoutDiscount&&t.priceWithoutDiscount!=t.price;return`${we()(e,t,r)}${i?" "+we({displayStrikethrough:!0})(e,t,r):""}`};var bn=we(),An=Co(),En=we({displayOptical:!0}),Sn=we({displayStrikethrough:!0}),yn=we({displayAnnual:!0});var Dc=(e,t)=>{if(!(!je(e)||!je(t)))return Math.floor((t-e)/t*100)},Io=()=>(e,t,r)=>{let{price:n,priceWithoutDiscount:i}=t,o=Dc(n,i);return o===void 0?'':`${o}%`};var Tn=Io();var{freeze:wt}=Object,Q=wt({...ye}),ee=wt({...X}),Pe={STAGE:"STAGE",PRODUCTION:"PRODUCTION",LOCAL:"LOCAL"},_n=wt({...$}),Ln=wt({...Fi}),wn=wt({...k});var Gn={};fs(Gn,{CLASS_NAME_FAILED:()=>Pn,CLASS_NAME_PENDING:()=>Cn,CLASS_NAME_RESOLVED:()=>In,ERROR_MESSAGE_BAD_REQUEST:()=>hr,ERROR_MESSAGE_MISSING_LITERALS_URL:()=>Gc,ERROR_MESSAGE_OFFER_NOT_FOUND:()=>Nn,EVENT_TYPE_ERROR:()=>Hc,EVENT_TYPE_FAILED:()=>kn,EVENT_TYPE_PENDING:()=>On,EVENT_TYPE_READY:()=>We,EVENT_TYPE_RESOLVED:()=>Vn,LOG_NAMESPACE:()=>Rn,Landscape:()=>Ce,PARAM_AOS_API_KEY:()=>zc,PARAM_ENV:()=>$n,PARAM_LANDSCAPE:()=>Mn,PARAM_WCS_API_KEY:()=>Fc,STATE_FAILED:()=>oe,STATE_PENDING:()=>ae,STATE_RESOLVED:()=>se,WCS_PROD_URL:()=>Un,WCS_STAGE_URL:()=>Dn});var Pn="placeholder-failed",Cn="placeholder-pending",In="placeholder-resolved",hr="Bad WCS request",Nn="Commerce offer not found",Gc="Literals URL not provided",Hc="mas:error",kn="mas:failed",On="mas:pending",We="mas:ready",Vn="mas:resolved",Rn="mas/commerce",$n="commerce.env",Mn="commerce.landscape",zc="commerce.aosKey",Fc="commerce.wcsKey",Un="https://www.adobe.com/web_commerce_artifact",Dn="https://www.stage.adobe.com/web_commerce_artifact_stage",oe="failed",ae="pending",se="resolved",Ce={DRAFT:"DRAFT",PUBLISHED:"PUBLISHED"};var No="mas-commerce-service";function ko(e,{once:t=!1}={}){let r=null;function n(){let i=document.querySelector(No);i!==r&&(r=i,i&&e(i))}return document.addEventListener(We,n,{once:t}),ge(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(tn)),i}var ge=e=>window.setTimeout(e);function qe(e,t=1){if(e==null)return[t];let r=(Array.isArray(e)?e:String(e).split(",")).map(Xe).filter(je);return r.length||(r=[t]),r}function dr(e){return e==null?[]:(Array.isArray(e)?e:String(e).split(",")).filter(Xr)}function j(){return document.getElementsByTagName(No)?.[0]}var Kc={[oe]:Pn,[ae]:Cn,[se]:In},Bc={[oe]:kn,[ae]:On,[se]:Vn},Ze=class{constructor(t){p(this,"changes",new Map);p(this,"connected",!1);p(this,"dispose",Be);p(this,"error");p(this,"log");p(this,"options");p(this,"promises",[]);p(this,"state",ae);p(this,"timer",null);p(this,"value");p(this,"version",0);p(this,"wrapperElement");this.wrapperElement=t}update(){[oe,ae,se].forEach(t=>{this.wrapperElement.classList.toggle(Kc[t],t===this.state)})}notify(){(this.state===se||this.state===oe)&&(this.state===se?this.promises.forEach(({resolve:t})=>t(this.wrapperElement)):this.state===oe&&this.promises.forEach(({reject:t})=>t(this.error)),this.promises=[]),this.wrapperElement.dispatchEvent(new CustomEvent(Bc[this.state],{bubbles:!0}))}attributeChangedCallback(t,r,n){this.changes.set(t,n),this.requestUpdate()}connectedCallback(){this.dispose=ko(()=>this.requestUpdate(!0))}disconnectedCallback(){this.connected&&(this.connected=!1,this.log?.debug("Disconnected:",{element:this.wrapperElement})),this.dispose(),this.dispose=Be}onceSettled(){let{error:t,promises:r,state:n}=this;return se===n?Promise.resolve(this.wrapperElement):oe===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=se,this.value=r,this.update(),this.log?.debug("Resolved:",{element:this.wrapperElement,value:r}),ge(()=>this.notify()),!0)}toggleFailed(t,r,n){return t!==this.version?!1:(n!==void 0&&(this.options=n),this.error=r,this.state=oe,this.update(),this.log?.error("Failed:",{element:this.wrapperElement,error:r}),ge(()=>this.notify()),!0)}togglePending(t){return this.version++,t&&(this.options=t),this.state=ae,this.update(),ge(()=>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=ae,this.timer=ge(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===ae&&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 Oo(e={}){return Object.entries(e).forEach(([t,r])=>{(r==null||r===""||r?.length===0)&&delete e[t]}),e}function ur(e,t={}){let{tag:r,is:n}=e,i=document.createElement(r,{is:n});return i.setAttribute("is",n),Object.assign(i.dataset,Oo(t)),i}function mr(e,t={}){return e instanceof HTMLElement?(Object.assign(e.dataset,Oo(t)),e):null}var jc="download",Yc="upgrade",Ie,Ct=class Ct extends HTMLAnchorElement{constructor(){super();K(this,Ie);p(this,"masElement",new Ze(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:d,promotionCode:u,quantity:m,wcsOsi:g,extraOptions:f}=i.collectCheckoutOptions(r),L=ur(Ct,{checkoutMarketSegment:o,checkoutWorkflow:a,checkoutWorkflowStep:s,entitlement:c,upgrade:l,modal:h,perpetual:d,promotionCode:u,quantity:m,wcsOsi:g,extraOptions:f});return n&&(L.innerHTML=`${n}`),L}get isCheckoutLink(){return!0}clickHandler(r){var n;(n=M(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(h=>{h&&(this.dataset.imsCountry=h)},Be);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=>Pt(h,i));let l=await n.buildCheckoutAction?.(c.flat(),{...o,...i},this);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)),M(this,Ie)&&pe(this,Ie,void 0),o){this.classList.remove(jc,Yc),this.masElement.toggleResolved(a,r,n);let{url:l,text:h,className:d,handler:u}=o;return l&&(this.href=l),h&&(this.firstElementChild.innerHTML=h),d&&this.classList.add(...d.split(" ")),u&&(this.setAttribute("href","#"),pe(this,Ie,u.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:d,quantity:u,wcsOsi:m}=n.collectCheckoutOptions(r);return mr(this,{checkoutMarketSegment:i,checkoutWorkflow:o,checkoutWorkflowStep:a,entitlement:s,upgrade:c,modal:l,perpetual:h,promotionCode:d,quantity:u,wcsOsi:m}),!0}};Ie=new WeakMap,p(Ct,"is","checkout-link"),p(Ct,"tag","a");var te=Ct;window.customElements.get(te.is)||window.customElements.define(te.is,te,{extends:te.tag});var y=Object.freeze({checkoutClientId:"adobe_com",checkoutWorkflow:Q.V3,checkoutWorkflowStep:ee.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:Ce.PUBLISHED,wcsBufferLimit:1});function Vo({providers:e,settings:t}){function r(o,a){let{checkoutClientId:s,checkoutWorkflow:c,checkoutWorkflowStep:l,country:h,language:d,promotionCode:u,quantity:m}=t,{checkoutMarketSegment:g,checkoutWorkflow:f=c,checkoutWorkflowStep:L=l,imsCountry:I,country:A=I??h,language:T=d,quantity:R=m,entitlement:_,upgrade:F,modal:z,perpetual:de,promotionCode:ue=u,wcsOsi:Ge,extraOptions:q,...Se}=Object.assign({},a?.dataset??{},o??{}),me=fe(f,Q,y.checkoutWorkflow),Y=ee.CHECKOUT;me===Q.V3&&(Y=fe(L,ee,y.checkoutWorkflowStep));let Z=Ye({...Se,extraOptions:q,checkoutClientId:s,checkoutMarketSegment:g,country:A,quantity:qe(R,y.quantity),checkoutWorkflow:me,checkoutWorkflowStep:Y,language:T,entitlement:S(_),upgrade:S(F),modal:S(z),perpetual:S(de),promotionCode:At(ue).effectivePromoCode,wcsOsi:dr(Ge)});if(a)for(let jt of e.checkout)jt(a,Z);return Z}function n(o,a){if(!Array.isArray(o)||!o.length||!a)return"";let{env:s,landscape:c}=t,{checkoutClientId:l,checkoutMarketSegment:h,checkoutWorkflow:d,checkoutWorkflowStep:u,country:m,promotionCode:g,quantity:f,...L}=r(a),I=window.frameElement?"if":"fp",A={checkoutPromoCode:g,clientId:l,context:I,country:m,env:s,items:[],marketSegment:h,workflowStep:u,landscape:c,...L};if(o.length===1){let[{offerId:T,offerType:R,productArrangementCode:_}]=o,{marketSegments:[F]}=o[0];Object.assign(A,{marketSegment:F,offerType:R,productArrangementCode:_}),A.items.push(f[0]===1?{id:T}:{id:T,quantity:f[0]})}else A.items.push(...o.map(({offerId:T},R)=>({id:T,quantity:f[R]??y.quantity})));return zr(d,A)}let{createCheckoutLink:i}=te;return{CheckoutLink:te,CheckoutWorkflow:Q,CheckoutWorkflowStep:ee,buildCheckoutURL:n,collectCheckoutOptions:r,createCheckoutLink:i}}var Hn={clientId:"merch-at-scale",delimiter:"\xB6",ignoredProperties:["analytics","literals"],serializableTypes:["Array","Object"],sampleRate:30,tags:"consumer=milo/commerce"},Ro=new Set,Xc=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(!Hn.serializableTypes.includes(r))return r}return e}function Wc(e,t){if(!Hn.ignoredProperties.includes(e))return $o(t)}var zn={append(e){let{delimiter:t,sampleRate:r,tags:n,clientId:i}=Hn,{message:o,params:a}=e,s=[],c=o,l=[];a.forEach(u=>{u!=null&&(Xc(u)?s:l).push(u)}),s.length&&(c+=" ",c+=s.map($o).join(" "));let{pathname:h,search:d}=window.location;c+=`${t}page=`,c+=h+d,l.length&&(c+=`${t}facts=`,c+=JSON.stringify(l,Wc)),Ro.has(c)||(Ro.add(c),window.lana?.log(c,{sampleRate:r,tags:n,clientId:i}))}};var Fn=Object.freeze({LOCAL:"local",PROD:"prod",STAGE:"stage"});function qc({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={}}=e,r=Pe.PRODUCTION,n=Un,i=O("checkoutClientId",t)??y.checkoutClientId,o=fe(O("checkoutWorkflow",t),Q,y.checkoutWorkflow),a=ee.CHECKOUT;o===Q.V3&&(a=fe(O("checkoutWorkflowStep",t),ee,y.checkoutWorkflowStep));let s=S(O("displayOldPrice",t),y.displayOldPrice),c=S(O("displayPerUnit",t),y.displayPerUnit),l=S(O("displayRecurrence",t),y.displayRecurrence),h=S(O("displayTax",t),y.displayTax),d=S(O("entitlement",t),y.entitlement),u=S(O("modal",t),y.modal),m=S(O("forceTaxExclusive",t),y.forceTaxExclusive),g=O("promotionCode",t)??y.promotionCode,f=qe(O("quantity",t)),L=O("wcsApiKey",t)??y.wcsApiKey,I=t?.env==="stage",A=Ce.PUBLISHED;["true",""].includes(t.allowOverride)&&(I=(O($n,t,{metadata:!1})?.toLowerCase()??t?.env)==="stage",A=fe(O(Mn,t),Ce,A)),I&&(r=Pe.STAGE,n=Dn);let R=Xe(O("wcsBufferDelay",t),y.wcsBufferDelay),_=Xe(O("wcsBufferLimit",t),y.wcsBufferLimit);return{...qc(e),displayOldPrice:s,checkoutClientId:i,checkoutWorkflow:o,checkoutWorkflowStep:a,displayPerUnit:c,displayRecurrence:l,displayTax:h,entitlement:d,extraOptions:y.extraOptions,modal:u,env:r,forceTaxExclusive:m,promotionCode:g,quantity:f,wcsApiKey:L,wcsBufferDelay:R,wcsBufferLimit:_,wcsURL:n,landscape:A}}var Uo="debug",Zc="error",Jc="info",Qc="warn",el=Date.now(),Bn=new Set,jn=new Set,Mo=new Map,It=Object.freeze({DEBUG:Uo,ERROR:Zc,INFO:Jc,WARN:Qc}),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},tl={filter:()=>!1};function rl(e,t,r,n,i){return{level:e,message:t,namespace:r,get params(){if(n.length===1){let[o]=n;bt(o)&&(n=o(),Array.isArray(n)||(n=[n]))}return n},source:i,timestamp:Date.now()-el}}function nl(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)=>nl(rl(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 pr(...e){e.forEach(t=>{let{append:r,filter:n}=t;bt(n)?jn.add(n):bt(r)&&Bn.add(r)})}function il(e={}){let{name:t}=e,r=S(O("commerce.debug",{search:!0,storage:!0}),t===Fn.LOCAL);return pr(r?Do:Go),t===Fn.PROD&&pr(zn),W}function ol(){Bn.clear(),jn.clear()}var W={...Ho(Rn),Level:It,Plugins:{consoleAppender:Do,debugFilter:Go,quietFilter:tl,lanaAppender:zn},init:il,reset:ol,use:pr};function al({interval:e=200,maxAttempts:t=25}={}){let r=W.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 sl(e){return e.then(()=>window.adobeIMS?.isSignedInUser()??!1)}function cl(e){let t=W.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 zo({}){let e=al(),t=sl(e),r=cl(t);return{imsReadyPromise:e,imsSignedInPromise:t,imsCountryPromise:r}}async function Ko(e,t){let{data:r}=t||await Promise.resolve().then(()=>xs(Fo(),1));if(Array.isArray(r)){let n=o=>r.find(a=>qt(a.lang,o)),i=n(e.language)??n(y.language);if(i)return Object.freeze(i)}return{}}var Bo=["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"],hl={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"]},Nt=class Nt extends HTMLSpanElement{constructor(){super();p(this,"masElement",new Ze(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:d,template:u,wcsOsi:m}=n.collectPriceOptions(r);return ur(Nt,{displayOldPrice:i,displayPerUnit:o,displayRecurrence:a,displayTax:s,forceTaxExclusive:c,perpetual:l,promotionCode:h,quantity:d,template:u,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(Bo.includes(r)||Bo.includes(a))return!0;let s=hl[`${i}_${o}`];return s?!!(s.includes(r)||s.includes(a)):!1}async resolveDisplayTax(r,n){let[i]=await r.resolveOfferSelectors(n),o=Pt(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(Pt(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:d,template:u,wcsOsi:m}=n.collectPriceOptions(r);return mr(this,{displayOldPrice:i,displayPerUnit:o,displayRecurrence:a,displayTax:s,forceTaxExclusive:c,perpetual:l,promotionCode:h,quantity:d,template:u,wcsOsi:m}),!0}};p(Nt,"is","inline-price"),p(Nt,"tag","span");var re=Nt;window.customElements.get(re.is)||window.customElements.define(re.is,re,{extends:re.tag});function jo({literals:e,providers:t,settings:r}){function n(a,s){let{country:c,displayOldPrice:l,displayPerUnit:h,displayRecurrence:d,displayTax:u,forceTaxExclusive:m,language:g,promotionCode:f,quantity:L}=r,{displayOldPrice:I=l,displayPerUnit:A=h,displayRecurrence:T=d,displayTax:R=u,forceTaxExclusive:_=m,country:F=c,language:z=g,perpetual:de,promotionCode:ue=f,quantity:Ge=L,template:q,wcsOsi:Se,...me}=Object.assign({},s?.dataset??{},a??{}),Y=Ye({...me,country:F,displayOldPrice:S(I),displayPerUnit:S(A),displayRecurrence:S(T),displayTax:S(R),forceTaxExclusive:S(_),language:z,perpetual:S(de),promotionCode:At(ue).effectivePromoCode,quantity:qe(Ge,y.quantity),template:q,wcsOsi:dr(Se)});if(s)for(let Z of t.price)Z(s,Y);return Y}function i(a,s){if(!Array.isArray(a)||!a.length||!s)return"";let{template:c}=s,l;switch(c){case"discount":l=Tn;break;case"strikethrough":l=Sn;break;case"optical":l=En;break;case"annual":l=yn;break;default:l=s.promotionCode?An:bn}let h=n(s);h.literals=Object.assign({},e.price,Ye(s.literals??{}));let[d]=a;return d={...d,...d.priceDetails},l(h,d)}let{createInlinePrice:o}=re;return{InlinePrice:re,buildPriceHTML:i,collectPriceOptions:n,createInlinePrice:o}}function Yo({settings:e}){let t=W.module("wcs"),{env:r,wcsApiKey:n}=e,i=new Map,o=new Map,a;async function s(d,u,m=!0){let g=Nn;t.debug("Fetching:",d);try{d.offerSelectorIds=d.offerSelectorIds.sort();let f=new URL(e.wcsURL);f.searchParams.set("offer_selector_ids",d.offerSelectorIds.join(",")),f.searchParams.set("country",d.country),f.searchParams.set("locale",d.locale),f.searchParams.set("landscape",r===Pe.STAGE?"ALL":e.landscape),f.searchParams.set("api_key",n),d.language&&f.searchParams.set("language",d.language),d.promotionCode&&f.searchParams.set("promotion_code",d.promotionCode),d.currency&&f.searchParams.set("currency",d.currency);let L=await fetch(f.toString(),{credentials:"omit"});if(L.ok){let I=await L.json();t.debug("Fetched:",d,I);let A=I.resolvedOffers??[];A=A.map(Qt),u.forEach(({resolve:T},R)=>{let _=A.filter(({offerSelectorIds:F})=>F.includes(R)).flat();_.length&&(u.delete(R),T(_))})}else L.status===404&&d.offerSelectorIds.length>1?(t.debug("Multi-osi 404, fallback to fetch-by-one strategy"),await Promise.allSettled(d.offerSelectorIds.map(I=>s({...d,offerSelectorIds:[I]},u,!1)))):(g=hr,t.error(g,d))}catch(f){g=hr,t.error(g,d,f)}m&&u.size&&(t.debug("Missing:",{offerSelectorIds:[...u.keys()]}),u.forEach(f=>{f.reject(new Error(g))}))}function c(){clearTimeout(a);let d=[...o.values()];o.clear(),d.forEach(({options:u,promises:m})=>s(u,m))}function l(){let d=i.size;i.clear(),t.debug(`Flushed ${d} cache entries`)}function h({country:d,language:u,perpetual:m=!1,promotionCode:g="",wcsOsi:f=[]}){let L=`${u}_${d}`;d!=="GB"&&(u=m?"EN":"MULT");let I=[d,u,g].filter(A=>A).join("-").toLowerCase();return f.map(A=>{let T=`${A}-${I}`;if(!i.has(T)){let R=new Promise((_,F)=>{let z=o.get(I);if(!z){let de={country:d,locale:L,offerSelectorIds:[]};d!=="GB"&&(de.language=u),z={options:de,promises:new Map},o.set(I,z)}g&&(z.options.promotionCode=g),z.options.offerSelectorIds.push(A),z.promises.set(A,{resolve:_,reject:F}),z.options.offerSelectorIds.length>=e.wcsBufferLimit?c():(t.debug("Queued:",z.options),a||(a=setTimeout(c,e.wcsBufferDelay)))});i.set(T,R)}return i.get(T)})}return{WcsCommitment:_n,WcsPlanType:Ln,WcsTerm:wn,resolveOfferSelectors:h,flushWcsCache:l}}var Yn="mas-commerce-service",gr,Xo,fr=class extends HTMLElement{constructor(){super(...arguments);K(this,gr);p(this,"promise",null)}async registerCheckoutAction(r){typeof r=="function"&&(this.buildCheckoutAction=async(n,i,o)=>{let a=await r?.(n,i,this.imsSignedInPromise,o);return a||null})}async activate(){let r=M(this,gr,Xo),n=W.init(r.env).module("service");n.debug("Activating:",r);let i=Object.freeze(Kn(r)),o={price:{}};try{o.price=await Ko(i,r.commerce.priceLiterals)}catch{}let a={checkout:new Set,price:new Set},s={literals:o,providers:a,settings:i};Object.defineProperties(this,Object.getOwnPropertyDescriptors({...Vo(s),...zo(s),...jo(s),...Yo(s),...Gn,Log:W,get defaults(){return y},get log(){return W},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:o,settings:i}),ge(()=>{let c=new CustomEvent(We,{bubbles:!0,cancelable:!1,detail:this});this.dispatchEvent(c)})}connectedCallback(){this.readyPromise||(this.readyPromise=this.activate())}disconnectedCallback(){this.readyPromise=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")}};gr=new WeakSet,Xo=function(){let r={commerce:{env:this.getAttribute("env")}};return["locale","country","language"].forEach(n=>{let i=this.getAttribute(n);i&&(r[n]=i)}),["checkout-workflow-step","force-tax-exclusive","checkout-client-id","allow-override"].forEach(n=>{let i=this.getAttribute(n);if(i!=null){let o=n.replace(/-([a-z])/g,a=>a[1].toUpperCase());r.commerce[o]=i}}),r},p(fr,"instance");window.customElements.get(Yn)||window.customElements.define(Yn,fr);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 Xn=(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 Wn,Er=window,Jo=Er.trustedTypes,dl=Jo?Jo.emptyScript:"",Qo=Er.reactiveElementPolyfillSupport,Zn={toAttribute(e,t){switch(t){case Boolean:e=e?dl: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),qn={attribute:!0,type:String,converter:Zn,reflect:!1,hasChanged:ea},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(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 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||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[Jn]=!0,Ne.elementProperties=new Map,Ne.elementStyles=[],Ne.shadowRootOptions={mode:"open"},Qo?.({ReactiveElement:Ne}),((Wn=Er.reactiveElementVersions)!==null&&Wn!==void 0?Wn:Er.reactiveElementVersions=[]).push("1.6.3");var Qn,Sr=window,Je=Sr.trustedTypes,ta=Je?Je.createPolicy("lit-html",{createHTML:e=>e}):void 0,ti="$lit$",xe=`lit$${(Math.random()+"").slice(9)}$`,ca="?"+xe,ul=`<${ca}>`,Ve=document,yr=()=>Ve.createComment(""),Ot=e=>e===null||typeof e!="object"&&typeof e!="function",la=Array.isArray,ml=e=>la(e)||typeof e?.[Symbol.iterator]=="function",ei=`[ +\f\r]`,kt=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,ra=/-->/g,na=/>/g,ke=RegExp(`>|${ei}(?:([^\\s"'>=/]+)(${ei}*=${ei}*(?:[^ +\f\r"'\`<>=]|("|')|))|$)`,"g"),ia=/'/g,oa=/"/g,ha=/^(?:script|style|textarea|title)$/i,da=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),Gu=da(1),Hu=da(2),Vt=Symbol.for("lit-noChange"),U=Symbol.for("lit-nothing"),aa=new WeakMap,Oe=Ve.createTreeWalker(Ve,129,null,!1);function ua(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return ta!==void 0?ta.createHTML(t):t}var pl=(e,t)=>{let r=e.length-1,n=[],i,o=t===2?"":"",a=kt;for(let s=0;s"?(a=i??kt,d=-1):h[1]===void 0?d=-2:(d=a.lastIndex-h[2].length,l=h[1],a=h[3]===void 0?ke:h[3]==='"'?oa:ia):a===oa||a===ia?a=ke:a===ra||a===na?a=kt:(a=ke,i=void 0);let m=a===ke&&e[s+1].startsWith("/>")?" ":"";o+=a===kt?c+ul:d>=0?(n.push(l),c.slice(0,d)+ti+c.slice(d)+xe+m):c+xe+(d===-2?(n.push(void 0),s):m)}return[ua(e,o+(e[r]||"")+(t===2?"":"")),n]},Rt=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]=pl(t,r);if(this.el=e.createElement(l,n),Oe.currentNode=this.el.content,r===2){let d=this.el.content,u=d.firstChild;u.remove(),d.append(...u.childNodes)}for(;(i=Oe.nextNode())!==null&&c.length0){i.textContent=Je?Je.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=Qe(this,t,r,0),a=!Ot(t)||t!==this._$AH&&t!==Vt,a&&(this._$AH=t);else{let s=t,c,l;for(t=o[0],c=0;cnew $t(typeof e=="string"?e:e+"",void 0,si),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 $t(r,e,si)},ci=(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 ve(r)})(e):e;var li,Pr=window,pa=Pr.trustedTypes,gl=pa?pa.emptyScript:"",fa=Pr.reactiveElementPolyfillSupport,di={toAttribute(e,t){switch(t){case Boolean:e=e?gl: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),hi={attribute:!0,type:String,converter:di,reflect:!1,hasChanged:ga},ui="finalized",ce=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(ui))return!1;this[ui]=!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 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: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){}};ce[ui]=!0,ce.elementProperties=new Map,ce.elementStyles=[],ce.shadowRootOptions={mode:"open"},fa?.({ReactiveElement:ce}),((li=Pr.reactiveElementVersions)!==null&&li!==void 0?li:Pr.reactiveElementVersions=[]).push("1.6.3");var mi,Cr=window,tt=Cr.trustedTypes,xa=tt?tt.createPolicy("lit-html",{createHTML:e=>e}):void 0,fi="$lit$",be=`lit$${(Math.random()+"").slice(9)}$`,Ta="?"+be,xl=`<${Ta}>`,Me=document,Ut=()=>Me.createComment(""),Dt=e=>e===null||typeof e!="object"&&typeof e!="function",_a=Array.isArray,vl=e=>_a(e)||typeof e?.[Symbol.iterator]=="function",pi=`[ +\f\r]`,Mt=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,va=/-->/g,ba=/>/g,Re=RegExp(`>|${pi}(?:([^\\s"'>=/]+)(${pi}*=${pi}*(?:[^ +\f\r"'\`<>=]|("|')|))|$)`,"g"),Aa=/'/g,Ea=/"/g,La=/^(?:script|style|textarea|title)$/i,wa=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),x=wa(1),Yu=wa(2),Ue=Symbol.for("lit-noChange"),D=Symbol.for("lit-nothing"),Sa=new WeakMap,$e=Me.createTreeWalker(Me,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 bl=(e,t)=>{let r=e.length-1,n=[],i,o=t===2?"":"",a=Mt;for(let s=0;s"?(a=i??Mt,d=-1):h[1]===void 0?d=-2:(d=a.lastIndex-h[2].length,l=h[1],a=h[3]===void 0?Re:h[3]==='"'?Ea:Aa):a===Ea||a===Aa?a=Re:a===va||a===ba?a=Mt:(a=Re,i=void 0);let m=a===Re&&e[s+1].startsWith("/>")?" ":"";o+=a===Mt?c+xl:d>=0?(n.push(l),c.slice(0,d)+fi+c.slice(d)+be+m):c+be+(d===-2?(n.push(void 0),s):m)}return[Pa(e,o+(e[r]||"")+(t===2?"":"")),n]},Gt=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]=bl(t,r);if(this.el=e.createElement(l,n),$e.currentNode=this.el.content,r===2){let d=this.el.content,u=d.firstChild;u.remove(),d.append(...u.childNodes)}for(;(i=$e.nextNode())!==null&&c.length0){i.textContent=tt?tt.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=rt(this,t,r,0),a=!Dt(t)||t!==this._$AH&&t!==Ue,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 Ht(t.insertBefore(Ut(),s),s,void 0,r??{})}return a._$AI(e),a};var Ei,Si;var ne=class extends ce{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 Ue}};ne.finalized=!0,ne._$litElement$=!0,(Ei=globalThis.litElementHydrateSupport)===null||Ei===void 0||Ei.call(globalThis,{LitElement:ne});var Ia=globalThis.litElementPolyfillSupport;Ia?.({LitElement:ne});((Si=globalThis.litElementVersions)!==null&&Si!==void 0?Si:globalThis.litElementVersions=[]).push("3.3.3");var Ae="(max-width: 767px)",Ir="(max-width: 1199px)",V="(min-width: 768px)",N="(min-width: 1200px)",G="(min-width: 1600px)";var Na=w` :host { position: relative; display: flex; @@ -216,9 +216,9 @@ Try polyfilling it using "@formatjs/intl-pluralrules" display: flex; gap: 8px; } -`,Na=()=>[w` +`,ka=()=>[w` /* Tablet */ - @media screen and ${ge(V)} { + @media screen and ${ve(V)} { :host([size='wide']), :host([size='super-wide']) { width: 100%; @@ -227,11 +227,11 @@ Try polyfilling it using "@formatjs/intl-pluralrules" } /* Laptop */ - @media screen and ${ge(N)} { + @media screen and ${ve(N)} { :host([size='wide']) { grid-column: span 2; } - `];var rt,Ht=class Ht{constructor(t){p(this,"card");B(this,rt);this.card=t,this.insertVariantStyle()}getContainer(){return ft(this,rt,F(this,rt)??this.card.closest('[class*="-merch-cards"]')??this.card.parentElement),F(this,rt)}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){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;`),x` + `];var it,zt=class zt{constructor(t){p(this,"card");K(this,it);this.card=t,this.insertVariantStyle()}getContainer(){return pe(this,it,M(this,it)??this.card.closest('[class*="-merch-cards"]')??this.card.parentElement),M(this,it)}insertVariantStyle(){if(!zt.styleMap[this.card.variant]){zt.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;`),x`
${this.card.secureLabel}`:"";return x`
${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(){}};rt=new WeakMap,p(Ht,"styleMap",{});var P=Ht;function le(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 ka(){return window.matchMedia("(max-width: 1024px)").matches}var Oa="merch-offer-select:ready",Va="merch-card:ready",Ra="merch-card:action-menu-toggle";var Si="merch-storage:change",yi="merch-quantity-selector:change";var nt="aem:load",it="aem:error",$a="mas:ready",Ma="mas:error";var Ua=` + >`:"";return x`
${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(){}};it=new WeakMap,p(zt,"styleMap",{});var P=zt;function le(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 Nr(){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",Ti="merch-quantity-selector:change";var ot="aem:load",at="aem:error",Ma="mas:ready",Ua="mas:error";var Da=` :root { --consonant-merch-card-catalog-width: 276px; --consonant-merch-card-catalog-icon-size: 40px; @@ -286,7 +286,7 @@ Try polyfilling it using "@formatjs/intl-pluralrules" } } -@media screen and ${D} { +@media screen and ${G} { .four-merch-cards.catalog { grid-template-columns: repeat(4, var(--consonant-merch-card-catalog-width)); } @@ -337,12 +337,12 @@ merch-card[variant="catalog"] .payment-details { font-style: italic; font-weight: 400; line-height: var(--consonant-merch-card-body-line-height); -}`;var Al={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"]},ot=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(Ra,{bubbles:!0,composed:!0,detail:{card:this.card.name,type:"action-menu"}})),i.classList.toggle("hidden",n))})}get aemFragmentMapping(){return Al}renderLayout(){return x`
+}`;var El={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 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 El}renderLayout(){return x`
${this.badge}
@@ -363,7 +363,7 @@ merch-card[variant="catalog"] .payment-details { >`:""}
${this.secureLabelFooter} - `}getGlobalCSS(){return Ua}connectedCallbackHook(){this.card.addEventListener("mouseleave",this.toggleActionMenu)}disconnectedCallbackHook(){this.card.removeEventListener("mouseleave",this.toggleActionMenu)}};p(ot,"variantStyle",w` + `}getGlobalCSS(){return Da}connectedCallbackHook(){this.card.addEventListener("mouseleave",this.toggleActionMenu)}disconnectedCallbackHook(){this.card.removeEventListener("mouseleave",this.toggleActionMenu)}};p(st,"variantStyle",w` :host([variant='catalog']) { min-height: 330px; width: var(--consonant-merch-card-catalog-width); @@ -381,7 +381,7 @@ merch-card[variant="catalog"] .payment-details { margin-left: var(--consonant-merch-spacing-xxs); box-sizing: border-box; } - `);var Da=` + `);var Ga=` :root { --consonant-merch-card-ccd-action-width: 276px; --consonant-merch-card-ccd-action-min-height: 320px; @@ -413,12 +413,12 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${D} { +@media screen and ${G} { .four-merch-cards.ccd-action { grid-template-columns: repeat(4, var(--consonant-merch-card-ccd-action-width)); } } -`;var El={title:{tag:"h3",slot:"heading-xs"},prices:{tag:"h3",slot:"heading-xs"},description:{tag:"div",slot:"body-xs"},ctas:{size:"l"}},at=class extends P{constructor(t){super(t)}getGlobalCSS(){return Da}get aemFragmentMapping(){return El}renderLayout(){return x`
+`;var Sl={title:{tag:"h3",slot:"heading-xs"},prices:{tag:"h3",slot:"heading-xs"},description:{tag:"div",slot:"body-xs"},ctas:{size:"l"}},ct=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ga}get aemFragmentMapping(){return Sl}renderLayout(){return x`
${this.badge} @@ -427,11 +427,11 @@ merch-card[variant="ccd-action"] .price-strikethrough { >`}
-
`}};p(at,"variantStyle",w` +
`}};p(ct,"variantStyle",w` :host([variant='ccd-action']:not([size])) { width: var(--consonant-merch-card-ccd-action-width); } - `);var Ga=` + `);var Ha=` :root { --consonant-merch-card-image-width: 300px; } @@ -462,12 +462,12 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${D} { +@media screen and ${G} { .four-merch-cards.image { grid-template-columns: repeat(4, var(--consonant-merch-card-image-width)); } } -`;var Nr=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ga}renderLayout(){return x`${this.cardImage} +`;var kr=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ha}renderLayout(){return x`${this.cardImage}
@@ -484,7 +484,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { `:x`
${this.secureLabelFooter} - `}`}};var Ha=` + `}`}};var za=` :root { --consonant-merch-card-inline-heading-width: 300px; } @@ -515,12 +515,12 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${D} { +@media screen and ${G} { .four-merch-cards.inline-heading { grid-template-columns: repeat(4, var(--consonant-merch-card-inline-heading-width)); } } -`;var kr=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ha}renderLayout(){return x` ${this.badge} +`;var Or=class extends P{constructor(t){super(t)}getGlobalCSS(){return za}renderLayout(){return x` ${this.badge}
@@ -528,7 +528,7 @@ merch-card[variant="ccd-action"] .price-strikethrough {
- ${this.card.customHr?"":x`
`} ${this.secureLabelFooter}`}};var za=` + ${this.card.customHr?"":x`
`} ${this.secureLabelFooter}`}};var Fa=` :root { --consonant-merch-card-mini-compare-chart-icon-size: 32px; --consonant-merch-card-mini-compare-mobile-cta-font-size: 15px; @@ -634,7 +634,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { } /* mini compare mobile */ -@media screen and ${ve} { +@media screen and ${Ae} { :root { --consonant-merch-card-mini-compare-chart-width: 302px; --consonant-merch-card-mini-compare-chart-wide-width: 302px; @@ -672,7 +672,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${Cr} { +@media screen and ${Ir} { .three-merch-cards.mini-compare-chart merch-card [slot="footer"] a, .four-merch-cards.mini-compare-chart merch-card [slot="footer"] a { flex: 1; @@ -742,7 +742,7 @@ merch-card[variant="ccd-action"] .price-strikethrough { } } -@media screen and ${D} { +@media screen and ${G} { .four-merch-cards.mini-compare-chart { grid-template-columns: repeat(4, var(--consonant-merch-card-mini-compare-chart-width)); } @@ -779,11 +779,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 Sl=32,st=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?x` +`;var yl=32,lt=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?x` ${this.card.secureLabel}`:x``;return x`
${r}
`})}getGlobalCSS(){return za}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(Sl,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 x`
+ >`:x``;return x`
${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(yl,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 x`
${this.badge}
@@ -795,7 +795,7 @@ merch-card .footer-row-cell:nth-child(8) { ${this.getMiniCompareFooter()} - `}async postCardUpdateHook(){Ir()?this.removeEmptyRows():(await Promise.all(this.card.prices.map(r=>r.onceSettled())),this.adjustMiniCompareBodySlots(),this.adjustMiniCompareFooterRows())}};p(st,"variantStyle",w` + `}async postCardUpdateHook(){Nr()?this.removeEmptyRows():(await Promise.all(this.card.prices.map(r=>r.onceSettled())),this.adjustMiniCompareBodySlots(),this.adjustMiniCompareFooterRows())}};p(lt,"variantStyle",w` :host([variant='mini-compare-chart']) > slot:not([name='icons']) { display: block; } @@ -811,7 +811,7 @@ merch-card .footer-row-cell:nth-child(8) { height: var(--consonant-merch-card-mini-compare-chart-top-section-height); } - @media screen and ${ge(Cr)} { + @media screen and ${ve(Ir)} { [class*'-merch-cards'] :host([variant='mini-compare-chart']) footer { flex-direction: column; align-items: stretch; @@ -819,7 +819,7 @@ merch-card .footer-row-cell:nth-child(8) { } } - @media screen and ${ge(N)} { + @media screen and ${ve(N)} { :host([variant='mini-compare-chart']) footer { padding: var(--consonant-merch-spacing-xs) var(--consonant-merch-spacing-s) @@ -867,7 +867,7 @@ merch-card .footer-row-cell:nth-child(8) { --consonant-merch-card-mini-compare-chart-callout-content-height ); } - `);var Fa=` + `);var Ka=` :root { --consonant-merch-card-plans-width: 300px; --consonant-merch-card-plans-icon-size: 40px; @@ -916,12 +916,12 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* Large desktop */ - @media screen and ${D} { + @media screen and ${G} { .four-merch-cards.plans { grid-template-columns: repeat(4, var(--consonant-merch-card-plans-width)); } } -`;var ct=class extends P{constructor(t){super(t)}getGlobalCSS(){return Fa}postCardUpdateHook(){this.adjustTitleWidth()}get stockCheckbox(){return this.card.checkboxLabel?x`
- ${this.secureLabelFooter}`}};p(ct,"variantStyle",w` + ${this.secureLabelFooter}`}};p(ht,"variantStyle",w` :host([variant='plans']) { min-height: 348px; } @@ -945,7 +945,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 Ka=` + `);var Ba=` :root { --consonant-merch-card-product-width: 300px; } @@ -980,12 +980,12 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* Large desktop */ -@media screen and ${D} { +@media screen and ${G} { .four-merch-cards.product { grid-template-columns: repeat(4, var(--consonant-merch-card-product-width)); } } -`;var Me=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ka}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 x` ${this.badge} +`;var De=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 x` ${this.badge}
@@ -996,7 +996,7 @@ merch-card[variant="plans"] [slot="quantity-select"] {
- ${this.secureLabelFooter}`}connectedCallbackHook(){super.connectedCallbackHook(),window.addEventListener("resize",this.postCardUpdateHook.bind(this))}postCardUpdateHook(){Ir()||this.adjustProductBodySlots(),this.adjustTitleWidth()}};p(Me,"variantStyle",w` + ${this.secureLabelFooter}`}connectedCallbackHook(){super.connectedCallbackHook(),window.addEventListener("resize",this.postCardUpdateHook.bind(this))}postCardUpdateHook(){Nr()||this.adjustProductBodySlots(),this.adjustTitleWidth()}};p(De,"variantStyle",w` :host([variant='product']) > slot:not([name='icons']) { display: block; } @@ -1024,7 +1024,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { :host([variant='product']) ::slotted([slot='heading-xs']) { max-width: var(--consonant-merch-card-heading-xs-max-width, 100%); } - `);var Ba=` + `);var ja=` :root { --consonant-merch-card-segment-width: 378px; } @@ -1038,7 +1038,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { } /* Mobile */ -@media screen and ${ve} { +@media screen and ${Ae} { :root { --consonant-merch-card-segment-width: 276px; } @@ -1070,7 +1070,7 @@ merch-card[variant="plans"] [slot="quantity-select"] { grid-template-columns: repeat(4, minmax(276px, var(--consonant-merch-card-segment-width))); } } -`;var lt=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ba}postCardUpdateHook(){this.adjustTitleWidth()}renderLayout(){return x` ${this.badge} +`;var dt=class extends P{constructor(t){super(t)}getGlobalCSS(){return ja}postCardUpdateHook(){this.adjustTitleWidth()}renderLayout(){return x` ${this.badge}
@@ -1079,14 +1079,14 @@ merch-card[variant="plans"] [slot="quantity-select"] { ${this.promoBottom?x``:""}

- ${this.secureLabelFooter}`}};p(lt,"variantStyle",w` + ${this.secureLabelFooter}`}};p(dt,"variantStyle",w` :host([variant='segment']) { min-height: 214px; } :host([variant='segment']) ::slotted([slot='heading-xs']) { max-width: var(--consonant-merch-card-heading-xs-max-width, 100%); } - `);var ja=` + `);var Ya=` :root { --consonant-merch-card-special-offers-width: 378px; } @@ -1103,7 +1103,7 @@ 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 ${ve} { +@media screen and ${Ae} { :root { --consonant-merch-card-special-offers-width: 302px; } @@ -1129,12 +1129,12 @@ merch-card[variant="special-offers"] span[is="inline-price"][data-template="stri } } -@media screen and ${D} { +@media screen and ${G} { .four-merch-cards.special-offers { grid-template-columns: repeat(4, minmax(300px, var(--consonant-merch-card-special-offers-width))); } } -`;var yl={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"}},ht=class extends P{constructor(t){super(t)}getGlobalCSS(){return ja}get headingSelector(){return'[slot="detail-m"]'}get aemFragmentMapping(){return yl}renderLayout(){return x`${this.cardImage} +`;var Tl={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 Tl}renderLayout(){return x`${this.cardImage}
@@ -1151,7 +1151,7 @@ merch-card[variant="special-offers"] span[is="inline-price"][data-template="stri
${this.secureLabelFooter} `} - `}};p(ht,"variantStyle",w` + `}};p(ut,"variantStyle",w` :host([variant='special-offers']) { min-height: 439px; } @@ -1163,7 +1163,7 @@ merch-card[variant="special-offers"] span[is="inline-price"][data-template="stri :host([variant='special-offers'].center) { text-align: center; } - `);var Ya=` + `);var Xa=` :root { --consonant-merch-card-twp-width: 268px; --consonant-merch-card-twp-mobile-width: 300px; @@ -1218,7 +1218,7 @@ merch-card[variant='twp'] merch-offer-select { grid-template-columns: var(--consonant-merch-card-image-width); } -@media screen and ${ve} { +@media screen and ${Ae} { :root { --consonant-merch-card-twp-width: 300px; } @@ -1255,7 +1255,7 @@ merch-card[variant='twp'] merch-offer-select { } } -@media screen and ${D} { +@media screen and ${G} { .one-merch-card.twp .two-merch-cards.twp { grid-template-columns: repeat(2, var(--consonant-merch-card-twp-width)); @@ -1264,7 +1264,7 @@ merch-card[variant='twp'] merch-offer-select { grid-template-columns: repeat(3, var(--consonant-merch-card-twp-width)); } } -`;var dt=class extends P{constructor(t){super(t)}getGlobalCSS(){return Ya}renderLayout(){return x`${this.badge} +`;var mt=class extends P{constructor(t){super(t)}getGlobalCSS(){return Xa}renderLayout(){return x`${this.badge}
@@ -1273,7 +1273,7 @@ merch-card[variant='twp'] merch-offer-select {
-
`}};p(dt,"variantStyle",w` +
`}};p(mt,"variantStyle",w` :host([variant='twp']) { padding: 4px 10px 5px 10px; } @@ -1312,7 +1312,7 @@ merch-card[variant='twp'] merch-offer-select { flex-direction: column; align-self: flex-start; } - `);var Xa=` + `);var Wa=` :root { --merch-card-ccd-suggested-width: 304px; --merch-card-ccd-suggested-height: 205px; @@ -1348,7 +1348,7 @@ merch-card[variant="ccd-suggested"] [slot="cta"] a { color: var(--spectrum-gray-800, var(--merch-color-grey-80)); font-weight: 700; } -`;var Tl={subtitle:{tag:"h4",slot:"detail-s"},title:{tag:"h3",slot:"heading-xs"},prices:{tag:"p",slot:"price"},description:{tag:"div",slot:"body-xs"},ctas:{slot:"cta",size:"s",button:!1}},ut=class extends P{getGlobalCSS(){return Xa}get aemFragmentMapping(){return Tl}renderLayout(){return x` +`;var _l={subtitle:{tag:"h4",slot:"detail-s"},title:{tag:"h3",slot:"heading-xs"},prices:{tag:"p",slot:"price"},description:{tag:"div",slot:"body-xs"},ctas:{slot:"cta",size:"s",button:!1}},pt=class extends P{getGlobalCSS(){return Wa}get aemFragmentMapping(){return _l}renderLayout(){return x`
@@ -1363,7 +1363,7 @@ merch-card[variant="ccd-suggested"] [slot="cta"] a {
- `}};p(ut,"variantStyle",w` + `}};p(pt,"variantStyle",w` :host([variant='ccd-suggested']) { background-color: var( --spectrum-gray-50, #fff); @@ -1436,7 +1436,7 @@ merch-card[variant="ccd-suggested"] [slot="cta"] a { margin-top: auto; align-items: center; } - `);var Wa=` + `);var qa=` :root { --consonant-merch-card-ccd-slice-single-width: 322px; --consonant-merch-card-ccd-slice-icon-size: 30px; @@ -1458,7 +1458,7 @@ merch-card[variant="ccd-slice"] [slot='body-s'] a:not(.con-button) { overflow: hidden; border-radius: 50%; } -`;var _l={backgroundImage:{tag:"div",slot:"image"},description:{tag:"div",slot:"body-s"},ctas:{size:"s"},allowedSizes:["wide"]},mt=class extends P{getGlobalCSS(){return Wa}get aemFragmentMapping(){return _l}renderLayout(){return x`
+`;var Ll={backgroundImage:{tag:"div",slot:"image"},description:{tag:"div",slot:"body-s"},ctas:{size:"s"},allowedSizes:["wide"]},ft=class extends P{getGlobalCSS(){return qa}get aemFragmentMapping(){return Ll}renderLayout(){return x`
${this.badge} @@ -1467,7 +1467,7 @@ merch-card[variant="ccd-slice"] [slot='body-s'] a:not(.con-button) {
- `}};p(mt,"variantStyle",w` + `}};p(ft,"variantStyle",w` :host([variant='ccd-slice']) { width: var(--consonant-merch-card-ccd-slice-single-width); background-color: var( @@ -1536,7 +1536,7 @@ merch-card[variant="ccd-slice"] [slot='body-s'] a:not(.con-button) { :host([variant='ccd-slice']) .top-section { align-items: center; } - `);var Ti=(e,t=!1)=>{switch(e.variant){case"catalog":return new ot(e);case"ccd-action":return new at(e);case"image":return new Nr(e);case"inline-heading":return new kr(e);case"mini-compare-chart":return new st(e);case"plans":return new ct(e);case"product":return new Me(e);case"segment":return new lt(e);case"special-offers":return new ht(e);case"twp":return new dt(e);case"ccd-suggested":return new ut(e);case"ccd-slice":return new mt(e);default:return t?void 0:new Me(e)}},qa=()=>{let e=[];return e.push(ot.variantStyle),e.push(at.variantStyle),e.push(st.variantStyle),e.push(Me.variantStyle),e.push(ct.variantStyle),e.push(lt.variantStyle),e.push(ht.variantStyle),e.push(dt.variantStyle),e.push(ut.variantStyle),e.push(mt.variantStyle),e};var Za=document.createElement("style");Za.innerHTML=` + `);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 kr(e);case"inline-heading":return new Or(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 dt(e);case"special-offers":return new ut(e);case"twp":return new mt(e);case"ccd-suggested":return new pt(e);case"ccd-slice":return new ft(e);default:return t?void 0:new De(e)}},Za=()=>{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(dt.variantStyle),e.push(ut.variantStyle),e.push(mt.variantStyle),e.push(pt.variantStyle),e.push(ft.variantStyle),e};var Ja=document.createElement("style");Ja.innerHTML=` :root { --consonant-merch-card-detail-font-size: 12px; --consonant-merch-card-detail-font-weight: 500; @@ -1918,9 +1918,9 @@ body.merch-modal { scrollbar-gutter: stable; height: 100vh; } -`;document.head.appendChild(Za);var Ll="#000000",wl="#F8D904";async function Ja(e,t){let r=e.fields.reduce((a,{name:s,multiple:c,values:l})=>(a[s]=c?l:l[0],a),{id:e.id}),{variant:n}=r;if(!n)return;t.querySelectorAll("[slot]").forEach(a=>{a.remove()}),t.variant=n,await t.updateComplete;let{aemFragmentMapping:i}=t.variantLayout;if(!i)return;let o=r.mnemonicIcon?.map((a,s)=>({icon:a,alt:r.mnemonicAlt[s]??"",link:r.mnemonicLink[s]??""}));if(e.computed={mnemonics:o},o.forEach(({icon:a,alt:s,link:c})=>{if(!/^https?:/.test(c))try{c=new URL(`https://${c}`).href.toString()}catch{c="#"}let l=le("merch-icon",{slot:"icons",src:a,alt:s,href:c,size:"l"});t.append(l)}),r.badge&&(t.setAttribute("badge-text",r.badge),t.setAttribute("badge-color",r.badgeColor||Ll),t.setAttribute("badge-background-color",r.badgeBackgroundColor||wl)),r.size?i.allowedSizes?.includes(r.size)&&t.setAttribute("size",r.size):t.removeAttribute("size"),r.cardTitle&&i.title&&t.append(le(i.title.tag,{slot:i.title.slot},r.cardTitle)),r.subtitle&&i.subtitle&&t.append(le(i.subtitle.tag,{slot:i.subtitle.slot},r.subtitle)),r.backgroundImage)switch(n){case"ccd-slice":i.backgroundImage&&t.append(le(i.backgroundImage.tag,{slot:i.backgroundImage.slot},``));break;case"ccd-suggested":t.setAttribute("background-image",r.backgroundImage);break}if(r.prices&&i.prices){let a=r.prices,s=le(i.prices.tag,{slot:i.prices.slot},a);t.append(s)}if(r.description&&i.description){let a=le(i.description.tag,{slot:i.description.slot},r.description);t.append(a)}if(r.ctas){let{slot:a,button:s=!0}=i.ctas,c=le("div",{slot:a??"footer"},r.ctas),l=[];[...c.querySelectorAll("a")].forEach(h=>{let d=h.parentElement.tagName==="STRONG";if(t.consonant)h.classList.add("con-button"),d&&h.classList.add("blue"),l.push(h);else{if(!s){l.push(h);return}let g=le("sp-button",{treatment:d?"fill":"outline",variant:d?"accent":"primary"},h);g.addEventListener("click",f=>{f.target===g&&(f.stopPropagation(),h.click())}),l.push(g)}}),c.innerHTML="",c.append(...l),t.append(c)}}var Pl="merch-card",Cl=2e3,Li,Ft,_i,zt=class extends ne{constructor(){super();B(this,Ft);p(this,"customerSegment");p(this,"marketSegment");p(this,"variantLayout");B(this,Li,!1);this.filters={},this.types="",this.selected=!1,this.handleAemFragmentEvents=this.handleAemFragmentEvents.bind(this)}firstUpdated(){this.variantLayout=Ti(this,!1),this.variantLayout?.connectedCallbackHook(),this.aemFragment?.updateComplete.catch(()=>{this.style.display="none"})}willUpdate(r){(r.has("variant")||!this.variantLayout)&&(this.variantLayout=Ti(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["twp","ccd-slice"].includes(this.variant)?"":`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(Oa,this.merchCardReady,{once:!0}),this.updateComplete.then(()=>{this.merchCardReady()}),this.storageOptions?.addEventListener("change",this.handleStorageChange),this.addEventListener(it,this.handleAemFragmentEvents),this.addEventListener(nt,this.handleAemFragmentEvents),this.aemFragment||setTimeout(()=>this.checkReady(),0)}disconnectedCallback(){super.disconnectedCallback(),this.variantLayout.disconnectedCallbackHook(),this.removeEventListener(yi,this.handleQuantitySelection),this.storageOptions?.removeEventListener(Si,this.handleStorageChange),this.removeEventListener(it,this.handleAemFragmentEvents),this.removeEventListener(nt,this.handleAemFragmentEvents)}async handleAemFragmentEvents(r){if(r.type===it&&Ge(this,Ft,_i).call(this,"AEM fragment cannot be loaded"),r.type===nt&&r.target.nodeName==="AEM-FRAGMENT"){let n=r.detail;await Ja(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),Cl));if(await Promise.race([r,n])===!0){this.dispatchEvent(new CustomEvent($a,{bubbles:!0,composed:!0}));return}Ge(this,Ft,_i).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(Va,{bubbles:!0}))}handleStorageChange(){let r=this.closest("merch-card")?.offerSelect.cloneNode(!0);r&&this.dispatchEvent(new CustomEvent(Si,{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)}}};Li=new WeakMap,Ft=new WeakSet,_i=function(r){this.dispatchEvent(new CustomEvent(Ma,{detail:r,bubbles:!0,composed:!0}))},p(zt,"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",reflect:!0},borderColor:{type:String,attribute:"border-color",reflect:!0},badgeBackgroundColor:{type:String,attribute:"badge-background-color",reflect:!0},backgroundImage:{type:String,attribute:"background-image",reflect:!0},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(zt,"styles",[Ia,qa(),...Na()]);customElements.define(Pl,zt);var pt=class extends ne{constructor(){super(),this.size="m",this.alt=""}render(){let{href:t}=this;return t?x` +`;document.head.appendChild(Ja);var wl="#000000",Pl="#F8D904";async function Qa(e,t){let r=e.fields.reduce((a,{name:s,multiple:c,values:l})=>(a[s]=c?l:l[0],a),{id:e.id}),{variant:n}=r;if(!n)return;t.querySelectorAll("[slot]").forEach(a=>{a.remove()}),t.variant=n,await t.updateComplete;let{aemFragmentMapping:i}=t.variantLayout;if(!i)return;let o=r.mnemonicIcon?.map((a,s)=>({icon:a,alt:r.mnemonicAlt[s]??"",link:r.mnemonicLink[s]??""}));if(e.computed={mnemonics:o},o.forEach(({icon:a,alt:s,link:c})=>{if(!/^https?:/.test(c))try{c=new URL(`https://${c}`).href.toString()}catch{c="#"}let l=le("merch-icon",{slot:"icons",src:a,alt:s,href:c,size:"l"});t.append(l)}),r.badge&&(t.setAttribute("badge-text",r.badge),t.setAttribute("badge-color",r.badgeColor||wl),t.setAttribute("badge-background-color",r.badgeBackgroundColor||Pl)),r.size?i.allowedSizes?.includes(r.size)&&t.setAttribute("size",r.size):t.removeAttribute("size"),r.cardTitle&&i.title&&t.append(le(i.title.tag,{slot:i.title.slot},r.cardTitle)),r.subtitle&&i.subtitle&&t.append(le(i.subtitle.tag,{slot:i.subtitle.slot},r.subtitle)),r.backgroundImage)switch(n){case"ccd-slice":i.backgroundImage&&t.append(le(i.backgroundImage.tag,{slot:i.backgroundImage.slot},``));break;case"ccd-suggested":t.setAttribute("background-image",r.backgroundImage);break}if(r.prices&&i.prices){let a=r.prices,s=le(i.prices.tag,{slot:i.prices.slot},a);t.append(s)}if(r.description&&i.description){let a=le(i.description.tag,{slot:i.description.slot},r.description);t.append(a)}if(r.ctas){let{slot:a,button:s=!0}=i.ctas,c=le("div",{slot:a??"footer"},r.ctas),l=[];[...c.querySelectorAll("a")].forEach(h=>{let d=h.parentElement.tagName==="STRONG";if(t.consonant)h.classList.add("con-button"),d&&h.classList.add("blue"),l.push(h);else{if(!s){l.push(h);return}let g=le("sp-button",{treatment:d?"fill":"outline",variant:d?"accent":"primary"},h);g.addEventListener("click",f=>{f.target===g&&(f.stopPropagation(),h.click())}),l.push(g)}}),c.innerHTML="",c.append(...l),t.append(c)}}var Cl="merch-card",Il=2e3,wi,Kt,Li,Ft=class extends ne{constructor(){super();K(this,Kt);p(this,"customerSegment");p(this,"marketSegment");p(this,"variantLayout");K(this,wi,!1);this.filters={},this.types="",this.selected=!1,this.handleAemFragmentEvents=this.handleAemFragmentEvents.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 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["twp","ccd-slice"].includes(this.variant)?"":`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(Ti,this.handleQuantitySelection),this.addEventListener(Va,this.merchCardReady,{once:!0}),this.updateComplete.then(()=>{this.merchCardReady()}),this.storageOptions?.addEventListener("change",this.handleStorageChange),this.addEventListener(at,this.handleAemFragmentEvents),this.addEventListener(ot,this.handleAemFragmentEvents),this.aemFragment||setTimeout(()=>this.checkReady(),0)}disconnectedCallback(){super.disconnectedCallback(),this.variantLayout.disconnectedCallbackHook(),this.removeEventListener(Ti,this.handleQuantitySelection),this.storageOptions?.removeEventListener(yi,this.handleStorageChange),this.removeEventListener(at,this.handleAemFragmentEvents),this.removeEventListener(ot,this.handleAemFragmentEvents)}async handleAemFragmentEvents(r){if(r.type===at&&ze(this,Kt,Li).call(this,"AEM fragment cannot be loaded"),r.type===ot&&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),Il));if(await Promise.race([r,n])===!0){this.dispatchEvent(new CustomEvent(Ma,{bubbles:!0,composed:!0}));return}ze(this,Kt,Li).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)}}};wi=new WeakMap,Kt=new WeakSet,Li=function(r){this.dispatchEvent(new CustomEvent(Ua,{detail:r,bubbles:!0,composed:!0}))},p(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",reflect:!0},borderColor:{type:String,attribute:"border-color",reflect:!0},badgeBackgroundColor:{type:String,attribute:"badge-background-color",reflect:!0},backgroundImage:{type:String,attribute:"background-image",reflect:!0},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(Ft,"styles",[Na,Za(),...ka()]);customElements.define(Cl,Ft);var gt=class extends ne{constructor(){super(),this.size="m",this.alt=""}render(){let{href:t}=this;return t?x` ${this.alt} - `:x` ${this.alt}`}};p(pt,"properties",{size:{type:String,attribute:!0},src:{type:String,attribute:!0},alt:{type:String,attribute:!0},href:{type:String,attribute:!0}}),p(pt,"styles",w` + `:x` ${this.alt}`}};p(gt,"properties",{size:{type:String,attribute:!0},src:{type:String,attribute:!0},alt:{type:String,attribute:!0},href:{type:String,attribute:!0}}),p(gt,"styles",w` :host { --img-width: 32px; --img-height: 32px; @@ -1948,7 +1948,7 @@ body.merch-modal { width: var(--img-width); height: var(--img-height); } - `);customElements.define("merch-icon",pt);async function Il(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 Il(n)}var ts=new CSSStyleSheet;ts.replaceSync(":host { display: contents; }");var Nl=document.querySelector('meta[name="aem-base-url"]')?.content??"https://publish-p22655-e155390.adobeaemcloud.com",es="fragment",kl="ims",wi,be,Pi=class{constructor(){B(this,be,new Map)}clear(){F(this,be).clear()}add(...t){t.forEach(r=>{let{id:n}=r;n&&F(this,be).set(n,r)})}has(t){return F(this,be).has(t)}get(t){return F(this,be).get(t)}remove(t){F(this,be).delete(t)}};be=new WeakMap;var Or=new Pi,Kt,Ii,Ci=class extends HTMLElement{constructor(){super();B(this,Kt);p(this,"cache",Or);p(this,"data");p(this,"fragmentId");p(this,"consonant",!1);p(this,"ims",!1);p(this,"_readyPromise");this.attachShadow({mode:"open"}),this.shadowRoot.adoptedStyleSheets=[ts];let r=this.getAttribute(kl);["",!0].includes(r)?(this.ims=!0,wi||(wi={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))}connectedCallback(){if(!this.fragmentId){Ge(this,Kt,Ii).call(this,"Missing fragment id");return}}async refresh(r=!0){this._readyPromise&&!await Promise.race([this._readyPromise,Promise.resolve(!1)])||(r&&Or.remove(this.fragmentId),this._readyPromise=this.fetchData().then(()=>(this.dispatchEvent(new CustomEvent(nt,{detail:this.data,bubbles:!0,composed:!0})),!0)).catch(()=>(Ge(this,Kt,Ii).call(this,"Network error: failed to load fragment"),this._readyPromise=null,!1)))}async fetchData(){let r=Or.get(this.fragmentId);r||(r=await Qa(Nl,this.fragmentId,this.ims?wi:void 0),Or.add(r)),this.data=r}get updateComplete(){return this._readyPromise??Promise.reject(new Error("AEM fragment cannot be loaded"))}};Kt=new WeakSet,Ii=function(r){this.classList.add("error"),this.dispatchEvent(new CustomEvent(it,{detail:r,bubbles:!0,composed:!0}))};customElements.define("aem-fragment",Ci); + `);customElements.define("merch-icon",gt);async function Nl(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 Nl(n)}var rs=new CSSStyleSheet;rs.replaceSync(":host { display: contents; }");var kl=document.querySelector('meta[name="aem-base-url"]')?.content??"https://publish-p22655-e155390.adobeaemcloud.com",ts="fragment",Ol="ims",Pi,Ee,Ci=class{constructor(){K(this,Ee,new Map)}clear(){M(this,Ee).clear()}add(...t){t.forEach(r=>{let{id:n}=r;n&&M(this,Ee).set(n,r)})}has(t){return M(this,Ee).has(t)}get(t){return M(this,Ee).get(t)}remove(t){M(this,Ee).delete(t)}};Ee=new WeakMap;var Vr=new Ci,he,Bt,Ni,Ii=class extends HTMLElement{constructor(){super();K(this,Bt);p(this,"cache",Vr);p(this,"data");p(this,"fragmentId");p(this,"consonant",!1);p(this,"ims",!1);K(this,he);this.attachShadow({mode:"open"}),this.shadowRoot.adoptedStyleSheets=[rs];let r=this.getAttribute(Ol);["",!0].includes(r)?(this.ims=!0,Pi||(Pi={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){ze(this,Bt,Ni).call(this,"Missing fragment id");return}}async refresh(r=!0){M(this,he)&&!await Promise.race([M(this,he),Promise.resolve(!1)])||(r&&Vr.remove(this.fragmentId),pe(this,he,this.fetchData().then(()=>(this.dispatchEvent(new CustomEvent(ot,{detail:this.data,bubbles:!0,composed:!0})),!0)).catch(()=>(ze(this,Bt,Ni).call(this,"Network error: failed to load fragment"),pe(this,he,null),!1))),M(this,he))}async fetchData(){let r=Vr.get(this.fragmentId);r||(r=await es(kl,this.fragmentId,this.ims?Pi:void 0),Vr.add(r)),this.data=r}get updateComplete(){return M(this,he)??Promise.reject(new Error("AEM fragment cannot be loaded"))}};he=new WeakMap,Bt=new WeakSet,Ni=function(r){this.classList.add("error"),this.dispatchEvent(new CustomEvent(at,{detail:r,bubbles:!0,composed:!0}))};customElements.define("aem-fragment",Ii); /*! Bundled license information: @lit/reactive-element/css-tag.js: diff --git a/libs/features/mas/web-components/src/aem-fragment.js b/libs/features/mas/web-components/src/aem-fragment.js index 800257f851..d724e0ab9d 100644 --- a/libs/features/mas/web-components/src/aem-fragment.js +++ b/libs/features/mas/web-components/src/aem-fragment.js @@ -72,7 +72,7 @@ export class AemFragment extends HTMLElement { /** * Internal promise to track the readiness of the web-component to render. */ - _readyPromise; + #readyPromise; static get observedAttributes() { return [ATTRIBUTE_FRAGMENT]; @@ -113,9 +113,9 @@ export class AemFragment extends HTMLElement { } async refresh(flushCache = true) { - if (this._readyPromise) { + if (this.#readyPromise) { const ready = await Promise.race([ - this._readyPromise, + this.#readyPromise, Promise.resolve(false), ]); if (!ready) return; // already fetching data @@ -123,7 +123,7 @@ export class AemFragment extends HTMLElement { if (flushCache) { cache.remove(this.fragmentId); } - this._readyPromise = this.fetchData() + this.#readyPromise = this.fetchData() .then(() => { this.dispatchEvent( new CustomEvent(EVENT_AEM_LOAD, { @@ -137,9 +137,10 @@ export class AemFragment extends HTMLElement { .catch(() => { /* c8 ignore next 3 */ this.#fail('Network error: failed to load fragment'); - this._readyPromise = null; + this.#readyPromise = null; return false; }); + this.#readyPromise; } #fail(error) { @@ -168,7 +169,7 @@ export class AemFragment extends HTMLElement { get updateComplete() { return ( - this._readyPromise ?? + this.#readyPromise ?? Promise.reject(new Error('AEM fragment cannot be loaded')) ); } diff --git a/libs/features/mas/web-components/test/aem-fragment.test.html.js b/libs/features/mas/web-components/test/aem-fragment.test.html.js index 95ac377f08..15c67d232a 100644 --- a/libs/features/mas/web-components/test/aem-fragment.test.html.js +++ b/libs/features/mas/web-components/test/aem-fragment.test.html.js @@ -95,15 +95,15 @@ runTests(async () => { }); it('merch-card fails when aem-fragment contains incorrect merch data', async () => { - const [, , , , , cardWithWrongOsis] = getTemplateContent('cards'); - - let masErrorTriggered = false; - cardWithWrongOsis.addEventListener(EVENT_MAS_ERROR, () => { - masErrorTriggered = true; - }); - spTheme.append(cardWithWrongOsis); - await delay(100); - expect(masErrorTriggered).to.true; + const [, , , , , cardWithWrongOsis] = getTemplateContent('cards'); + + let masErrorTriggered = false; + cardWithWrongOsis.addEventListener(EVENT_MAS_ERROR, () => { + masErrorTriggered = true; + }); + spTheme.append(cardWithWrongOsis); + await delay(100); + expect(masErrorTriggered).to.true; }); it('uses ims token to retrieve a fragment', async () => { @@ -115,18 +115,16 @@ runTests(async () => { sinon.assert.calledOnce(window.adobeid.authorize); }); - it('renders ccd slice card', async () => { - const [, , , , , , sliceCard] = getTemplateContent('cards'); - spTheme.append(sliceCard); - await delay(100); - expect(sliceCard.querySelector('merch-icon')).to.exist; - expect(sliceCard.querySelector('div[slot="image"]')).to.exist; - expect(sliceCard.querySelector('div[slot="body-s"]')).to.exist; - expect(sliceCard.querySelector('div[slot="footer"]')).to.exist; - const badge = sliceCard.shadowRoot?.querySelector('div#badge'); - expect(badge).to.exist; - + const [, , , , , , sliceCard] = getTemplateContent('cards'); + spTheme.append(sliceCard); + await delay(100); + expect(sliceCard.querySelector('merch-icon')).to.exist; + expect(sliceCard.querySelector('div[slot="image"]')).to.exist; + expect(sliceCard.querySelector('div[slot="body-s"]')).to.exist; + expect(sliceCard.querySelector('div[slot="footer"]')).to.exist; + const badge = sliceCard.shadowRoot?.querySelector('div#badge'); + expect(badge).to.exist; }); }); }); From 8f0adc184685a1940ada0e956382cb120ce1cc60 Mon Sep 17 00:00:00 2001 From: Chris Peyer Date: Wed, 30 Oct 2024 16:11:55 -0400 Subject: [PATCH 8/9] MWPW-159561 Add lcpSectionOne metric to web vitals (#3044) * MWPW-159561 Add lcpSectionOne metric Logs if the LCP Element is in Section One of the page. * PR Feedback --- libs/utils/logWebVitals.js | 8 ++++++-- test/utils/logWebVitalsUtils.test.js | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libs/utils/logWebVitals.js b/libs/utils/logWebVitals.js index 0564ffe510..7e04998961 100644 --- a/libs/utils/logWebVitals.js +++ b/libs/utils/logWebVitals.js @@ -76,7 +76,10 @@ function isFragmentFromMep(fragPath, mep) { }); } +const boolStr = (val) => `${!!val}`; + function observeLCP(lanaData, delay, mep) { + const sectionOne = document.querySelector('main > div'); new PerformanceObserver((list) => { const entries = list.getEntries(); const lastEntry = entries[entries.length - 1]; // Use the latest LCP candidate @@ -84,10 +87,11 @@ function observeLCP(lanaData, delay, mep) { const lcpEl = lastEntry.element; lanaData.lcpElType = lcpEl.nodeName.toLowerCase(); lanaData.lcpEl = getElementInfo(lcpEl); + lanaData.lcpSectionOne = boolStr(sectionOne.contains(lcpEl)); const closestFrag = lcpEl.closest('.fragment'); - lanaData.isFrag = closestFrag ? 'true' : 'false'; + lanaData.isFrag = boolStr(closestFrag); if (closestFrag) { - lanaData.isMep = isFragmentFromMep(closestFrag.dataset.path, mep) ? 'true' : 'false'; + lanaData.isMep = boolStr(isFragmentFromMep(closestFrag.dataset.path, mep)); } else { lanaData.isMep = 'false'; } diff --git a/test/utils/logWebVitalsUtils.test.js b/test/utils/logWebVitalsUtils.test.js index 3028a4b89b..7bbee89984 100644 --- a/test/utils/logWebVitalsUtils.test.js +++ b/test/utils/logWebVitalsUtils.test.js @@ -43,6 +43,8 @@ describe('Log Web Vitals Utils', () => { expect(parseInt(vitals.lcp, 10)).to.be.greaterThan(1); expect(vitals.lcpEl).to.be.equal('/test/utils/mocks/media_.png'); expect(vitals.lcpElType).to.be.equal('img'); + expect(vitals.lcpSectionOne).to.be.equal('true'); + expect(vitals.loggedIn).to.equal('false'); expect(vitals.os).to.be.oneOf(['mac', 'win', 'android', 'linux', '']); expect(vitals.url).to.equal('localhost:2000/'); From d809cd56070ab44b8681ac4293b815184af74ee8 Mon Sep 17 00:00:00 2001 From: John Pratt Date: Thu, 31 Oct 2024 14:11:14 -0600 Subject: [PATCH 9/9] MWPW-161293 [MEP] add some selectors for the text blocks (#3077) add some selectors for the text and intro text blocks Co-authored-by: John Pratt --- nala/blocks/text/text.page.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nala/blocks/text/text.page.js b/nala/blocks/text/text.page.js index ee70ba3b4f..e9ab0986f6 100644 --- a/nala/blocks/text/text.page.js +++ b/nala/blocks/text/text.page.js @@ -3,7 +3,9 @@ export default class Text { this.page = page; // text locators this.text = page.locator('.text').nth(nth); - this.textIntro = this.page.locator('.text.intro'); + this.textBlocks = page.locator('.text'); + this.textIntro = this.page.locator('.text.intro').nth(nth); + this.textIntroBlocks = this.page.locator('.text.intro'); this.textFullWidth = this.page.locator('.text.full-width'); this.textFullWidthLarge = this.page.locator('.text.full-width.large'); this.textLongFormLarge = this.page.locator('.text.long-form'); @@ -17,7 +19,9 @@ export default class Text { this.legalDetail = page.locator('.foreground'); this.headline = this.text.locator('#text'); + this.headlineAlt = this.text.locator('h3'); this.introHeadline = this.text.locator('#text-intro'); + this.introHeadlineAlt = this.textIntro.locator('h2'); this.fullWidthHeadline = this.text.locator('#text-full-width'); this.fullWidthLargeHeadline = this.text.locator('#text-full-width-large'); this.longFormLargeHeadline = this.text.locator('#text-long-form-large');