@sezzle/sezzle-react-widget 3.1.7 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -6
- package/dist/index.cjs +312 -47
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +312 -47
- package/dist/index.es.js.map +1 -1
- package/package.json +1 -1
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/Helpers/helper.js","../src/Helpers/renderFunctions.js","../node_modules/style-inject/dist/style-inject.es.js","../src/Components/MultiPlanModal.js","../src/Components/Modal.js","../src/Components/SezzleWidget.js","../src/index.cjs"],"sourcesContent":["import enTranslations from '../translations/en'\nimport frTranslations from '../translations/fr'\nimport esTranslations from '../translations/es'\n\nexport const supportedLanguages = ['en', 'es', 'fr']\n\n/**\n * This function will return the price string\n * @param price - string value\n * @return string\n */\n\nexport function parsePriceString(price) {\n let formattedPrice = ''\n if (!price) return formattedPrice\n for (let i = 0; i < price.length; i++) {\n if (isNumeric(price[i]) || price[i] === '.' || price[i] === ',') {\n // Ignore actual sentence punctuation\n if (i > 0 && price[i] === '.' && isAlphabet(price[i - 1])) continue\n\n formattedPrice += price[i]\n }\n }\n return formattedPrice\n}\n\n/**\n * Function parses the price from string to float\n * @param price -> String\n * @return float\n */\nexport function parsePrice(price) {\n return parseFloat(parsePriceString(price))\n}\n\n/**\n * This is helper function for formatPrice\n * @param n char value\n * @return boolean [if it's numeric or not]\n */\nexport function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\n/**\n * This is helper function for formatPrice\n * @param n char value\n * @return boolean [if it's alphabet or not]\n */\nexport function isAlphabet(n) {\n return /^[a-zA-Z()]+$/.test(n)\n}\n\n/**\n * This is a helper function for formatting the language\n * @return string\n */\n\nexport function getLanguage() {\n const lang = document\n .querySelector('html')\n .lang.substring(0, 2)\n .toLowerCase()\n return supportedLanguages.indexOf(lang) > -1 ? lang : 'en'\n}\n\nexport async function getAPModal(modalNode) {\n const currentLang = getLanguage()\n modalNode.className =\n 'sezzle-checkout-modal-lightbox close-sezzle-modal sezzle-ap-modal'\n const url = `https://media.sezzle.com/afterpay/modal/${currentLang}.html`\n try {\n const response = await fetch(url)\n if (!response.ok) {\n throw new Error(\n `Failed to fetch afterpay modal, status: ${response.status}`\n )\n }\n modalNode.innerHTML = await response.text()\n } catch (error) {\n console.error(error)\n }\n}\n\n/**\n * Extracts the currency symbol from a price string\n * @param priceString - String containing price with currency symbol\n * @param defaultCurrency - Default currency to return if not found (optional, defaults to \"$\")\n * @return string - The currency symbol or default\n */\nexport function getCurrency(priceString, defaultCurrency = '$') {\n const CURRENCY_REGEX = /[$€£₤₹]/\n const currencyMatch = priceString.match(CURRENCY_REGEX)\n return currencyMatch ? currencyMatch[0] : defaultCurrency\n}\n\n/**\n * Returns the translation object for the specified language\n * @param currentLang - Language code (en, fr, es)\n * @return object - The translation object for the given language\n */\nexport function getTranslations(currentLang) {\n const translationsMap = {\n en: enTranslations,\n fr: frTranslations,\n es: esTranslations\n }\n return translationsMap[currentLang]\n}\n","import { parsePriceString, parsePrice } from './helper'\n\nexport const PI5_MIN_PRICE = 50\n\nexport function isProductEligibleLT(priceText, minPriceLT, maxPriceLT) {\n if (!minPriceLT) return false\n const price = parsePrice(priceText)\n return Number.isFinite(price) && price >= minPriceLT && price <= maxPriceLT\n}\n\nexport function isProductEligiblePI4(priceText, minPrice, maxPrice) {\n const price = parsePrice(priceText)\n return Number.isFinite(price) && price >= minPrice && price <= maxPrice\n}\n\nexport function isProductEligiblePI5(priceText, maxPrice, numberOfPayments) {\n if (numberOfPayments !== 5) return false\n const price = parsePrice(priceText)\n return Number.isFinite(price) && price >= PI5_MIN_PRICE && price <= maxPrice\n}\n\nexport function isInputAmountValid(priceText, minPrice, maxPrice, minPriceLT, maxPriceLT) {\n const price = parsePrice(priceText)\n if (!Number.isFinite(price) || price <= 0) return false\n // LT is only active when minPriceLT is set; otherwise maxPriceLT is ignored\n // and maxPrice is the sole upper bound.\n const upper = minPriceLT > 0 ? Math.max(maxPrice, maxPriceLT || 0) : maxPrice\n return price >= minPrice && price <= upper\n}\n\nexport function termsToShow(price) {\n switch (true) {\n case price > 1000:\n return [24, 36, 48]\n case price > 500:\n return [12, 18, 24]\n case price > 300:\n return [6, 9, 12]\n default:\n return [3, 6, 9]\n }\n}\n\nexport function addDelimiters(priceString) {\n const parsedPrice = Number(priceString).toFixed(2)\n if (parsedPrice.length > 6) {\n return (\n parsedPrice.substring(0, parsedPrice.indexOf('.') - 3) +\n ',' +\n parsedPrice.substring(parsedPrice.indexOf('.') - 3, parsedPrice.length)\n )\n }\n return parsedPrice\n}\n\nexport function calculateMonthlyWithInterest(priceText, term, APR) {\n const price = Number(priceText)\n if (APR > 0) {\n const rate = APR / 100 / 12\n const numerator = price * rate * Math.pow(1 + rate, term)\n const denominator = Math.pow(1 + rate, term) - 1\n const interestPayment = numerator / denominator\n return interestPayment\n } else {\n return price / term\n }\n}\n\nexport function getFormattedPrice(\n price,\n numberOfPayments,\n minPriceLT,\n maxPriceLT,\n bestAPR\n) {\n const priceString = parsePriceString(price)\n const priceReplacer = parsePrice(price)\n const formatter = price.replace(priceString, '{price}')\n const terms = termsToShow(priceReplacer)\n const sezzleInstallmentPrice = isProductEligibleLT(\n priceString,\n minPriceLT,\n maxPriceLT\n )\n ? calculateMonthlyWithInterest(\n priceString,\n terms[terms.length - 1],\n bestAPR\n )\n : priceReplacer / numberOfPayments\n const sezzleInstallmentFormattedPrice = formatter.replace(\n '{price}',\n sezzleInstallmentPrice.toFixed(2)\n )\n\n return sezzleInstallmentFormattedPrice\n};\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { getLanguage, getCurrency, getTranslations, parsePrice } from '../Helpers/helper'\nimport {\n addDelimiters,\n calculateMonthlyWithInterest,\n getFormattedPrice,\n isInputAmountValid,\n isProductEligibleLT,\n isProductEligiblePI4,\n isProductEligiblePI5,\n termsToShow\n} from '../Helpers/renderFunctions'\n\nconst CAROUSEL_MIN_TAB = 1\nconst CAROUSEL_MAX_TAB = 3\nconst INPUT_DEBOUNCE_DELAY_MS = 150\nconst CURRENCY_REGEX_GLOBAL = /[$€£₤₹]/g\nconst SANITIZE_REGEX = /[^0-9,.$€£₤₹]/g\nconst LT_APR_MIN = 9.99\nconst LT_APR_MAX = 34.99\nconst LT_TERM_MIN = 3\nconst LT_TERM_MAX = 48\n\nfunction computeEligibility(priceString, opts) {\n return {\n pi4: isProductEligiblePI4(priceString, opts.minPrice, opts.maxPrice),\n pi5: isProductEligiblePI5(priceString, opts.maxPrice, opts.numberOfPayments),\n lt: isProductEligibleLT(priceString, opts.minPriceLT, opts.maxPriceLT)\n }\n}\n\nfunction formatLTAmount(currency, value) {\n return currency + addDelimiters(value)\n}\n\nfunction generateBiweeklyCard(numberOfPayments, currency, priceString, minPriceLT, maxPriceLT, bestAPR, translations) {\n const classModifier = numberOfPayments === 4 ? 'fourth' : 'fifth'\n const dashWidth = numberOfPayments === 4 ? 30 : 22\n const installmentPrice = getFormattedPrice(currency + priceString, numberOfPayments, minPriceLT, maxPriceLT, bestAPR)\n const pillLabel = numberOfPayments === 5\n ? `${translations.MultiPlanpayIn} 5 <sup>TM</sup>`\n : `${translations.MultiPlanpayIn} ${numberOfPayments}`\n\n const installments = []\n for (let i = 0; i < numberOfPayments; i++) {\n const isFirst = i === 0\n const isLast = i === numberOfPayments - 1\n const weekNumber = i * 2\n const dueText = isFirst ? translations.today : `${weekNumber} ${translations.MultiPlanweeks}`\n\n installments.push(`\n <div class='installment'>\n <div class='graphic'>\n <div class='dash left ${classModifier}'>\n <svg width=\"${dashWidth}\" height=\"2\" viewBox=\"0 0 ${dashWidth} 2\" fill=\"#E8E8E8\" xmlns=\"http://www.w3.org/2000/svg\"${isFirst ? ' style=\"visibility: hidden\"' : ''}>\n <rect x=\"${dashWidth === 30 ? '0.75' : '0.399994'}\" width=\"${dashWidth}\" height=\"2\" fill=\"#E8E8E8\"/>\n </svg>\n </div>\n <div class='dot'>\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.39999 12C10.6091 12 12.4 10.2091 12.4 8C12.4 5.79086 10.6091 4 8.39999 4C6.19085 4 4.39999 5.79086 4.39999 8C4.39999 10.2091 6.19085 12 8.39999 12Z\" fill=\"#8333D4\"></path>\n </svg>\n </div>\n <div class='dash right ${classModifier}'>\n <svg width=\"${dashWidth}\" height=\"${i > 0 && i < numberOfPayments - 1 ? 16 : 2}\" viewBox=\"0 0 ${dashWidth} ${i > 0 && i < numberOfPayments - 1 ? 16 : 2}\" fill=\"#E8E8E8\" xmlns=\"http://www.w3.org/2000/svg\"${isLast ? ' style=\"visibility: hidden\"' : ''}>\n <rect x=\"${dashWidth === 30 ? '0.75' : '0.399994'}\" ${i > 0 && i < numberOfPayments - 1 ? 'y=\"7\" ' : ''}width=\"${dashWidth}\" height=\"2\" fill=\"#E8E8E8\"/>\n </svg>\n </div>\n </div>\n <div class='detail${isFirst ? ' first-installment' : ''}'>\n <div class='amount ${numberOfPayments}-pay-installment'>\n ${installmentPrice}\n </div>\n <div class='due'>\n ${dueText}\n </div>\n </div>\n </div>\n `)\n }\n\n return `\n <div class='payment-card ${numberOfPayments}-pay-installment-card'>\n <div class='plan-summary'>\n <div class='purple'>\n <div class='left'>\n <span class='price ${numberOfPayments}-pay-installment'>${installmentPrice}</span>\n <span class='due'>${translations.today}</span>\n </div>\n <div class='right'>\n <span class='pill'>${pillLabel}</span>\n </div>\n </div>\n <div class='grey'>\n <span class=\"${numberOfPayments}-pay-installment\">${installmentPrice}</span> ${translations.MultiPlanevery2Weeks}\n </div>\n </div>\n <div class='payment-breakdown'>\n ${installments.join('')}\n </div>\n </div>\n `\n}\n\nfunction generateMonthlyCard(months, currency, priceString, bestAPR, translations) {\n const monthly = calculateMonthlyWithInterest(priceString, months, bestAPR)\n const total = monthly * months\n const interest = total - Number(priceString)\n\n return `\n <div class='payment-card monthly-installment-card' data-months='${months}'>\n <div class='plan-summary'>\n <div class='purple'>\n <div class='left'>\n <span class='price monthly-amount' data-months='${months}'>${formatLTAmount(currency, monthly)}</span>\n <span class='due' aria-label='${translations.LTperMonth}'>\n <span aria-hidden='true'>${translations.LTmonthlyAmount}</span>\n </span>\n </div>\n <div class='right'>\n <span class='pill'>${months} ${translations.LTtermLength}</span>\n </div>\n </div>\n </div>\n <div class='plan-details monthly-plan-details'>\n <div class='monthly-detail-row' aria-label='${translations.LTreadApr} ${bestAPR} ${translations.LTpercent}'>\n <span class='detail-label' aria-hidden='true'>${translations.LTsampleApr}</span>\n <span class='detail-value monthly-apr' aria-hidden='true'>${bestAPR}%</span>\n </div>\n <div class='monthly-detail-row'>\n <span class='detail-label'>${translations.LTinterest}</span>\n <span class='detail-value monthly-interest' data-months='${months}'>${formatLTAmount(currency, interest)}</span>\n </div>\n <div class='monthly-detail-row'>\n <span class='detail-label'>${translations.LTadjustedTotal}</span>\n <span class='detail-value monthly-total' data-months='${months}'>${formatLTAmount(currency, total)}</span>\n </div>\n </div>\n </div>\n `\n}\n\nfunction featureCheckSvg() {\n return `<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6.66667 0C2.98667 0 0 2.98667 0 6.66667C0 10.3467 2.98667 13.3333 6.66667 13.3333C10.3467 13.3333 13.3333 10.3467 13.3333 6.66667C13.3333 2.98667 10.3467 0 6.66667 0ZM6.66667 12C3.72667 12 1.33333 9.60667 1.33333 6.66667C1.33333 3.72667 3.72667 1.33333 6.66667 1.33333C9.60667 1.33333 12 3.72667 12 6.66667C12 9.60667 9.60667 12 6.66667 12ZM9.25333 4.19333L5.33333 8.11333L4.08 6.86C3.82 6.6 3.4 6.6 3.14 6.86C2.88 7.12 2.88 7.54 3.14 7.8L4.86667 9.52667C5.12667 9.78667 5.54667 9.78667 5.80667 9.52667L10.2 5.13333C10.46 4.87333 10.46 4.45333 10.2 4.19333C9.94 3.93333 9.51333 3.93333 9.25333 4.19333Z\" fill=\"#8333D4\"/>\n </svg>`\n}\n\nfunction generateBiweeklyInner(eligibility, currency, priceString, opts, translations) {\n if (!eligibility.pi4) return ''\n return `\n ${generateBiweeklyCard(4, currency, priceString, opts.minPriceLT, opts.maxPriceLT, opts.bestAPR, translations)}\n ${eligibility.pi5 ? generateBiweeklyCard(5, currency, priceString, opts.minPriceLT, opts.maxPriceLT, opts.bestAPR, translations) : ''}\n `\n}\n\nfunction generateMonthlyInner(eligibility, currency, priceString, opts, translations) {\n if (!eligibility.lt) return ''\n const terms = termsToShow(parsePrice(priceString))\n const cards = terms.map(months => generateMonthlyCard(months, currency, priceString, opts.bestAPR, translations)).join('')\n const seeDetails = translations.LTseeDetails\n const hideDetails = translations.LThideDetails\n\n return `\n ${cards}\n <div class=\"features-accordion\">\n <div class=\"accordion-title-bar\">\n <span class=\"accordion-title\" aria-hidden='true'>${seeDetails}</span>\n <button class=\"accordion-icon accordion-toggle\" aria-expanded=\"false\" aria-controls=\"features-drawer\" aria-label='${seeDetails}' data-label-expand='${seeDetails}' data-label-collapse='${hideDetails}'>\n <svg class=\"accordion-icon-expand\" width=\"12\" height=\"7\" viewBox=\"0 0 12 7\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9.4625 0.2925L5.5825 4.1725L1.7025 0.2925C1.3125 -0.0975 0.6825 -0.0975 0.2925 0.2925C-0.0975 0.6825 -0.0975 1.3125 0.2925 1.7025L4.8825 6.2925C5.2725 6.6825 5.9025 6.6825 6.2925 6.2925L10.8825 1.7025C11.2725 1.3125 11.2725 0.6825 10.8825 0.2925C10.4925 -0.0875 9.8525 -0.0975 9.4625 0.2925Z\" fill=\"#8333D4\"/>\n </svg>\n <svg class=\"accordion-icon-collapse\" style=\"display:none\" width=\"12\" height=\"7\" viewBox=\"0 0 12 7\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4.8825 0.2925L0.2925 4.8825C-0.0975 5.2725 -0.0975 5.9025 0.2925 6.2925C0.6825 6.6825 1.3125 6.6825 1.7025 6.2925L5.5925 2.4125L9.4725 6.2925C9.8625 6.6825 10.4925 6.6825 10.8825 6.2925C11.2725 5.9025 11.2725 5.2725 10.8825 4.8825L6.2925 0.2925C5.9125 -0.0975 5.2725 -0.0975 4.8825 0.2925Z\" fill=\"#8333D4\"/>\n </svg>\n </button>\n </div>\n <div id=\"features-drawer\" class=\"features-drawer\" style=\"display: none;\">\n <div class=\"single-feature\"><div>${featureCheckSvg()}</div><span>${translations.LTsingleFeatureAffordable}</span></div>\n <div class=\"single-feature\"><div>${featureCheckSvg()}</div><span>${translations.LTsingleFeaturePrequalify}</span></div>\n <div class=\"single-feature\"><div>${featureCheckSvg()}</div><span>${translations.LTsingleFeatureTrusted}</span></div>\n </div>\n </div>\n `\n}\n\nfunction generateTermsInner(eligibility, translations) {\n let webBank = ''\n if (eligibility.pi4) {\n const productTerms = eligibility.pi5 ? translations.webBankTermsPI5 : translations.webBankTermsPI4\n webBank = `\n <p class=\"terms\">\n <span class=\"webbank-terms\">${translations.webBankTerms} ${productTerms}</span>\n <br />\n <span>${translations.linkToCompleteTerms}</span>\n </p>\n `\n }\n\n let ltTerms = ''\n if (eligibility.lt) {\n const ltTerms3 = (translations.LTterms3 || '* Subject to credit approval by a third party lender.')\n .replace('{minAPR}', LT_APR_MIN)\n .replace('{maxAPR}', LT_APR_MAX)\n .replace('{minTermMonths}', LT_TERM_MIN)\n .replace('{maxTermMonths}', LT_TERM_MAX)\n ltTerms = `<p class=\"terms lt-terms\">${ltTerms3}</p>`\n }\n\n return `\n <p class=\"terms\"><span>${translations.terms1}</span><br /><span>${translations.termsHiw}</span></p>\n <p class=\"terms\">${translations.terms2}</p>\n ${webBank}\n ${ltTerms}\n `\n}\n\nfunction updateArrowStates(leftArrow, rightArrow, activeTab) {\n if (!leftArrow || !rightArrow) return\n const leftDisabled = activeTab === CAROUSEL_MIN_TAB\n const rightDisabled = activeTab === CAROUSEL_MAX_TAB\n leftArrow.disabled = leftDisabled\n leftArrow.classList.toggle('disabled', leftDisabled)\n rightArrow.disabled = rightDisabled\n rightArrow.classList.toggle('disabled', rightDisabled)\n}\n\nfunction updateDotStates(dots, activeTab) {\n if (!dots) return\n for (let i = 0; i < dots.length; i++) {\n const isActive = (activeTab - 1) === i\n dots[i].className = isActive ? 'dot active' : 'dot'\n dots[i].setAttribute('aria-selected', isActive ? 'true' : 'false')\n }\n}\n\nfunction updateCarouselPosition(carouselWrapper, activeTab) {\n if (!carouselWrapper) return\n const carousel = carouselWrapper.querySelector('.carousel')\n if (carousel) carousel.className = `carousel position-${activeTab}`\n}\n\nfunction handleCarouselTabStyles(btn) {\n if (!btn || btn.classList.contains('disabled')) return\n\n const modalNode = btn.closest('[data-carousel-initialized]')\n if (!modalNode) return\n\n const carouselWrapper = btn.closest('.how-to-sezzle')\n if (!carouselWrapper) return\n\n let activeTab = parseInt(modalNode.dataset.activeTab || CAROUSEL_MIN_TAB, 10)\n if (btn.classList.contains('arrow-right')) {\n activeTab = Math.min(activeTab + 1, CAROUSEL_MAX_TAB)\n } else {\n activeTab = Math.max(activeTab - 1, CAROUSEL_MIN_TAB)\n }\n\n modalNode.dataset.activeTab = activeTab\n\n const arrows = btn.parentElement.querySelectorAll('.arrow')\n const leftArrow = Array.from(arrows).find(arrow => arrow.classList.contains('arrow-left'))\n const rightArrow = Array.from(arrows).find(arrow => arrow.classList.contains('arrow-right'))\n\n updateCarouselPosition(carouselWrapper, activeTab)\n updateArrowStates(leftArrow, rightArrow, activeTab)\n\n const dots = carouselWrapper.querySelector('.carousel-dots')?.children\n updateDotStates(dots, activeTab)\n}\n\nexport function handleCarousel(modalNode) {\n if (!modalNode) return\n const carouselWrapper = modalNode.querySelector('.how-to-sezzle')\n if (!carouselWrapper) return\n\n const arrows = modalNode.getElementsByClassName('arrow')\n const leftArrow = Array.from(arrows).find(arrow => arrow.classList.contains('arrow-left'))\n const rightArrow = Array.from(arrows).find(arrow => arrow.classList.contains('arrow-right'))\n if (!leftArrow || !rightArrow) return\n\n const isInitialized = modalNode.dataset.carouselInitialized === 'true'\n if (isInitialized) {\n modalNode.dataset.activeTab = CAROUSEL_MIN_TAB\n updateCarouselPosition(carouselWrapper, CAROUSEL_MIN_TAB)\n updateArrowStates(leftArrow, rightArrow, CAROUSEL_MIN_TAB)\n const dots = carouselWrapper.querySelector('.carousel-dots')?.children\n updateDotStates(dots, CAROUSEL_MIN_TAB)\n } else {\n modalNode.dataset.carouselInitialized = 'true'\n modalNode.dataset.activeTab = CAROUSEL_MIN_TAB\n for (let i = 0; i < arrows.length; i++) {\n arrows[i].addEventListener('click', (e) => {\n e.stopPropagation()\n handleCarouselTabStyles(e.currentTarget)\n })\n }\n }\n}\n\n// Attach (or re-attach after re-render) the See details accordion toggle.\nfunction attachFeaturesAccordion(modalNode) {\n const toggle = modalNode.querySelector('.accordion-toggle')\n if (!toggle || toggle.dataset.listenersAdded === 'true') return\n\n toggle.addEventListener('click', (e) => {\n e.stopPropagation()\n const drawer = modalNode.querySelector('#features-drawer')\n const expandIcon = toggle.querySelector('.accordion-icon-expand')\n const collapseIcon = toggle.querySelector('.accordion-icon-collapse')\n const title = modalNode.querySelector('.accordion-title')\n const isExpanded = toggle.getAttribute('aria-expanded') === 'true'\n\n if (isExpanded) {\n drawer.style.display = 'none'\n expandIcon.style.display = ''\n collapseIcon.style.display = 'none'\n toggle.setAttribute('aria-expanded', 'false')\n if (title) title.textContent = toggle.dataset.labelExpand\n } else {\n drawer.style.display = ''\n expandIcon.style.display = 'none'\n collapseIcon.style.display = ''\n toggle.setAttribute('aria-expanded', 'true')\n if (title) title.textContent = toggle.dataset.labelCollapse\n }\n })\n toggle.dataset.listenersAdded = 'true'\n}\n\n// Swap in re-rendered HTML for the sections that depend on the input amount.\nfunction renderDynamicSections(modalNode, currency, priceString, opts, translations) {\n const eligibility = computeEligibility(priceString, opts)\n\n const container = modalNode.querySelector('#sezzle-modal-container')\n if (container) container.classList.toggle('pi4-only', !eligibility.pi5)\n\n const biweekly = modalNode.querySelector('.payment-cards-biweekly')\n if (biweekly) {\n biweekly.innerHTML = generateBiweeklyInner(eligibility, currency, priceString, opts, translations)\n biweekly.style.display = eligibility.pi4 ? '' : 'none'\n }\n\n const monthly = modalNode.querySelector('.payment-cards-monthly')\n if (monthly) {\n monthly.innerHTML = generateMonthlyInner(eligibility, currency, priceString, opts, translations)\n monthly.style.display = eligibility.lt ? '' : 'none'\n if (eligibility.lt) attachFeaturesAccordion(modalNode)\n }\n\n const terms = modalNode.querySelector('.terms-container')\n if (terms) terms.innerHTML = generateTermsInner(eligibility, translations)\n}\n\nfunction handleMultiPlanInput(modalNode, opts, initialCurrency) {\n const input = modalNode.querySelector('.input-amount')\n const container = modalNode.querySelector('.input-amount-container')\n if (!input || input.dataset.listenersAdded === 'true') return\n\n let currency = initialCurrency\n let debounceTimer = null\n const translations = getTranslations(getLanguage())\n\n input.addEventListener('click', (e) => e.stopPropagation())\n input.addEventListener('focus', (e) => e.stopPropagation())\n\n input.addEventListener('input', (event) => {\n event.stopPropagation()\n if (debounceTimer) clearTimeout(debounceTimer)\n\n debounceTimer = setTimeout(() => {\n const raw = event.target.value.replace(SANITIZE_REGEX, '')\n currency = getCurrency(raw)\n const priceString = raw.replace(CURRENCY_REGEX_GLOBAL, '')\n\n const valid = isInputAmountValid(priceString, opts.minPrice, opts.maxPrice, opts.minPriceLT, opts.maxPriceLT)\n if (!valid) {\n input.classList.add('input-error')\n if (container) container.classList.add('input-error')\n return\n }\n input.classList.remove('input-error')\n if (container) container.classList.remove('input-error')\n\n renderDynamicSections(modalNode, currency, priceString, opts, translations)\n }, INPUT_DEBOUNCE_DELAY_MS)\n })\n\n input.dataset.listenersAdded = 'true'\n}\n\n// Resets the modal to reflect the current widget price. Called when the modal\n// is (re)opened so the input never carries stale text from a prior session and\n// the cards/terms reflect the latest props.price. Eligibility uses the same\n// minPrice=0 relaxation as the initial render so PI4 is always visible on open.\nexport function resetMultiPlanModal(modalNode, rawPrice, opts) {\n if (!modalNode) return\n const translations = getTranslations(getLanguage())\n // Whitelist-sanitize before interpolating into innerHTML downstream, matching\n // the user-input path in handleMultiPlanInput so all entry points share the\n // same trust posture regardless of how the caller sourced rawPrice.\n const sanitized = rawPrice.replace(SANITIZE_REGEX, '')\n const currency = getCurrency(sanitized)\n const priceString = sanitized.replace(CURRENCY_REGEX_GLOBAL, '').trim()\n\n const input = modalNode.querySelector('.input-amount')\n const container = modalNode.querySelector('.input-amount-container')\n if (input) {\n input.value = currency + priceString\n input.classList.remove('input-error')\n }\n if (container) container.classList.remove('input-error')\n\n renderDynamicSections(modalNode, currency, priceString, { ...opts, minPrice: 0 }, translations)\n}\n\nexport function getMultiPlanModal(modalNode, priceString, opts) {\n const currentLang = getLanguage()\n const translations = getTranslations(currentLang)\n // Whitelist-sanitize before interpolating into innerHTML downstream, matching\n // the user-input path in handleMultiPlanInput so all entry points share the\n // same trust posture regardless of how the caller sourced priceString.\n const sanitized = priceString.replace(SANITIZE_REGEX, '')\n const currency = getCurrency(sanitized)\n priceString = sanitized.replace(CURRENCY_REGEX_GLOBAL, '').trim()\n\n // Initial render relaxes minPrice to 0 so that opening the modal always\n // shows at least one biweekly card, even when the configured minPrice\n // exceeds the current price. Strict minPrice still applies to user input\n // via handleMultiPlanInput → isInputAmountValid.\n const eligibility = computeEligibility(priceString, { ...opts, minPrice: 0 })\n\n modalNode.className = 'sezzle-checkout-modal-lightbox sezzle-modal'\n\n const modalContent = `<section class=\"sezzle-checkout-modal-lightbox close-sezzle-modal\" lang=\"${currentLang}\" aria-label=\"${translations.sezzleInformation}\" style=\"display: block;\">\n <div id=\"sezzle-modal-container\" role=\"dialog\" aria-label=\"Sezzle Modal\" class=\"sezzle-checkout-modal-hidden sezzle-multi-plan${eligibility.pi5 ? '' : ' pi4-only'}\">\n <div class=\"sezzle-modal\">\n <div><button role=\"button\" aria-label=\"${translations.closeSezzleModal}\" class=\"close-sezzle-modal\"></button></div>\n <div class=\"sezzle-logo\" title=\"Sezzle\"></div>\n <div id=\"sezzle-modal-core-content\" class=\"sezzle-modal-content\">\n <p class='trusted'>${translations.MultiPlantrusted}</p>\n <header class='sezzle-header'>${translations.MultiPlanheader}</header>\n <div class='payment-plan-wrapper'>\n <p class='sample-payments ${currentLang === 'fr' ? 'sezzle-multi-plan-fr' : ''}'>\n <span class=\"sample-payments-title\">${translations.MultiPlanSeePlans}</span>\n <span class=\"input-amount-container\">\n <label class=\"input-amount-label\" for=\"multi-plan-input-amount\">${translations.MultiPlanAmount}</label>\n <input class='price input-amount' id=\"multi-plan-input-amount\" maxlength=\"12\" value='${currency + priceString}'/>\n </span>\n </p>\n <div class='payment-cards payment-cards-biweekly'${eligibility.pi4 ? '' : ' style=\"display:none\"'}>${generateBiweeklyInner(eligibility, currency, priceString, opts, translations)}</div>\n <div class='payment-cards payment-cards-monthly'${eligibility.lt ? '' : ' style=\"display:none\"'}>${generateMonthlyInner(eligibility, currency, priceString, opts, translations)}</div>\n </div>\n <div class='how-to-sezzle'>\n <div class='carousel-header'>\n <div class='how-to-text-wrapper'>\n <span class='how-to-text'>${translations.MultiPlanhowToPay}</span>\n <div class='how-to-logo'>\n <img class=\"how-to-sezzle-logo szl-light-image\" src=\"https://media.sezzle.com/branding/2.0/Sezzle_Logo_FullColor.svg\" alt=\"Sezzle\" style=\"height: 14px; width: 58px;\">\n </div>\n </div>\n <div class='arrows'>\n <button type='button' class='arrow arrow-left disabled' disabled aria-label='${translations.previousSlide}'>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.5 16.4078C14.825 16.0828 14.825 15.5578 14.5 15.2328L11.2667 11.9995L14.5 8.76614C14.825 8.44114 14.825 7.91614 14.5 7.59114C14.175 7.26614 13.65 7.26614 13.325 7.59114L9.5 11.4161C9.175 11.7411 9.175 12.2661 9.5 12.5911L13.325 16.4161C13.6417 16.7328 14.175 16.7328 14.5 16.4078Z\" fill=\"#8333D4\"/></svg>\n </button>\n <button type='button' class='arrow arrow-right' aria-label='${translations.nextSlide}'>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.5 7.59219C9.175 7.91719 9.175 8.44219 9.5 8.76719L12.7333 12.0005L9.5 15.2339C9.175 15.5589 9.175 16.0839 9.5 16.4089C9.825 16.7339 10.35 16.7339 10.675 16.4089L14.5 12.5839C14.825 12.2589 14.825 11.7339 14.5 11.4089L10.675 7.58386C10.3583 7.26719 9.825 7.26719 9.5 7.59219Z\" fill=\"#8333D4\"/></svg>\n </button>\n </div>\n </div>\n <div class='carousel position-1'>\n <div class='carousel-item'><div class='carousel-item-content'><div class='step-number'><span class='step-number-content'>1</span></div><div class='step-name'>${translations.MultiPlanStep1}</div></div></div>\n <div class='carousel-item'><div class='carousel-item-content'><div class='step-number'><span class='step-number-content'>2</span></div><div class='step-name'>${translations.MultiPlanStep2}</div></div></div>\n <div class='carousel-item'><div class='carousel-item-content'><div class='step-number'><span class='step-number-content'>3</span></div><div class='step-name'>${translations.MultiPlanStep3}</div></div></div>\n </div>\n <div class='carousel-dots' role=\"tablist\" aria-label=\"${translations.carouselPosition}\">\n <div class=\"dot active\" role=\"tab\" aria-selected=\"true\" aria-label=\"${translations.slide} 1\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#8333D4\"/></svg></div>\n <div class=\"dot\" role=\"tab\" aria-selected=\"false\" aria-label=\"${translations.slide} 2\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#8333D4\"/></svg></div>\n <div class=\"dot\" role=\"tab\" aria-selected=\"false\" aria-label=\"${translations.slide} 3\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#8333D4\"/></svg></div>\n </div>\n </div>\n <div class=\"terms-container\">${generateTermsInner(eligibility, translations)}</div>\n </div>\n </div>\n </div>\n</section>`\n modalNode.innerHTML = modalContent\n handleCarousel(modalNode)\n if (eligibility.lt) attachFeaturesAccordion(modalNode)\n handleMultiPlanInput(modalNode, opts, currency)\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { getAPModal } from '../Helpers/helper'\nimport { getMultiPlanModal, handleCarousel, resetMultiPlanModal } from './MultiPlanModal'\nimport './modal.scss'\n\nexport default class Modal extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n modalElement: null,\n isModalVisible: false\n }\n }\n\n static getDerivedStateFromProps(props, state) {\n if (!state.modalElement) {\n let modalElement = document.createElement('div')\n if (props.modalType === 'afterpay') {\n if (document.querySelector('.sezzle-ap-modal')) {\n modalElement = document.querySelector('.sezzle-ap-modal')\n } else {\n getAPModal(modalElement)\n }\n } else {\n getMultiPlanModal(modalElement, props.price, {\n minPrice: props.minPrice,\n maxPrice: props.maxPrice,\n minPriceLT: props.minPriceLT,\n maxPriceLT: props.maxPriceLT,\n bestAPR: props.bestAPR,\n numberOfPayments: props.numberOfPayments\n })\n }\n state = { ...state, modalElement }\n }\n state.modalElement.style.display = state.isModalVisible ? 'block' : 'none'\n return state\n }\n\n componentDidMount() {\n document.querySelector('html').appendChild(this.state.modalElement)\n\n // Scope queries to this Modal instance's element so handlers don't bleed\n // across Sezzle/Afterpay modal instances when both are rendered.\n const sezzleModal = this.state.modalElement.querySelector(\n this.props.modalType === 'afterpay' ? '.sezzle-ap-modal' : '.sezzle-modal'\n )\n if (sezzleModal) {\n sezzleModal.addEventListener('click', (event) => event.stopPropagation())\n }\n\n // Include modalElement itself plus any descendants carrying the\n // close-sezzle-modal class (the overlay <section> and the X button).\n const closeTargets = [\n this.state.modalElement,\n ...this.state.modalElement.querySelectorAll('.close-sezzle-modal')\n ].filter((el) => el.classList.contains('close-sezzle-modal'))\n closeTargets.forEach((el) =>\n el.addEventListener('click', (event) => this.modalCloseHandler(event))\n )\n }\n\n componentDidUpdate(prevProps, prevState) {\n this.toggleModalVisibility(this.props.toggleModalVisibility)\n }\n\n toggleModalVisibility = (isModalVisible) => {\n if (isModalVisible !== this.state.isModalVisible) {\n this.setState({ ...this.state, isModalVisible })\n\n // On open: reset input + cards to the current props.price (covers both\n // stale typed input from a prior open and runtime price prop changes),\n // and reset the carousel to the first slide.\n if (isModalVisible && this.props.modalType !== 'afterpay' && this.state.modalElement) {\n resetMultiPlanModal(this.state.modalElement, this.props.price, {\n minPrice: this.props.minPrice,\n maxPrice: this.props.maxPrice,\n minPriceLT: this.props.minPriceLT,\n maxPriceLT: this.props.maxPriceLT,\n bestAPR: this.props.bestAPR,\n numberOfPayments: this.props.numberOfPayments\n })\n handleCarousel(this.state.modalElement)\n }\n }\n }\n\n modalCloseHandler = (event) => {\n this.props.callbackModalClose(this.props.modalType)\n }\n\n render() {\n return null\n }\n}\n\nModal.propTypes = {\n toggleModalVisibility: PropTypes.bool,\n modalType: PropTypes.string,\n callbackModalClose: PropTypes.func,\n numberOfPayments: PropTypes.number,\n price: PropTypes.string,\n minPrice: PropTypes.number,\n maxPrice: PropTypes.number,\n minPriceLT: PropTypes.number,\n maxPriceLT: PropTypes.number,\n bestAPR: PropTypes.number\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { getFormattedPrice, PI5_MIN_PRICE } from '../Helpers/renderFunctions'\nimport '../index.scss'\nimport { getLanguage, getTranslations, parsePriceString, parsePrice } from '../Helpers/helper'\n// eslint-disable-next-line no-unused-vars\nimport Modal from './Modal'\n\nexport default class SezzleWidgetText extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n config: this.props.config,\n sezzle: false,\n afterpay: false,\n modalsToShow: ['sezzle', 'afterpay']\n }\n }\n\n static getDerivedStateFromProps(props, state) {\n const config = props.config\n state = { ...state, config }\n\n return state\n }\n\n renderSezzleWidgetText() {\n const logoURLs = {\n light: 'https://media.sezzle.com/branding/2.0/Sezzle_Logo_FullColor.svg',\n dark: 'https://media.sezzle.com/branding/2.0/Sezzle_Logo_FullColor_WhiteWM.svg',\n 'black-flat':\n 'https://media.sezzle.com/branding/2.0/Sezzle_Logo_BlackAlt.svg',\n 'white-flat':\n 'https://media.sezzle.com/branding/2.0/Sezzle_Logo_WhiteAlt.svg'\n }\n const language = getLanguage()\n\n const translations = getTranslations(language)\n\n const priceFloat = parsePrice(\n parsePriceString(this.state.config.price)\n )\n const includeAPModal = !!this.state.config.includeAPModal\n const minPriceLT = this.state.config.minPriceLT || 0\n const ltEnabled = minPriceLT > 0\n const upperBound = ltEnabled\n ? this.state.config.maxPriceLT\n : this.state.config.maxPrice\n if (priceFloat <= 0 || priceFloat > upperBound) {\n return\n }\n\n // <$50 forces 4-installment messaging (PI5 minimum is $50). At or above\n // $50, honor the config: 4 if explicitly set, otherwise 5.\n const effectiveNumberOfPayments =\n priceFloat >= PI5_MIN_PRICE && this.state.config.numberOfPayments !== 4\n ? 5\n : 4\n\n let widgetTemplate\n if (ltEnabled && priceFloat >= minPriceLT) {\n widgetTemplate = translations.longTerm\n } else if (effectiveNumberOfPayments === 5 && includeAPModal) {\n widgetTemplate = translations.dualInstall\n } else {\n widgetTemplate = translations.widget\n }\n\n // Resolve curly-brace placeholders to plain strings before splitting on\n // %% for component substitution. Empty when the feature is off.\n const apDualInstallText = includeAPModal ? translations.apDualInstall : ''\n const thresholdPriceText =\n this.state.config.minPrice > 0 && priceFloat < this.state.config.minPrice\n ? translations.thresholdPrice.replace(\n '%%min-price%%',\n `$${this.state.config.minPrice}`\n )\n : ''\n\n widgetTemplate = widgetTemplate\n .replace('{numberOfPayments}', effectiveNumberOfPayments)\n .replace('{apDualInstallText}', apDualInstallText)\n .replace('{thresholdPriceText}', thresholdPriceText)\n\n const subtemplates = []\n widgetTemplate.split('%%').forEach((subTemplate, index) => {\n switch (subTemplate) {\n case 'price':\n // eslint-disable-next-line no-case-declarations\n const priceElement = (\n <span\n className=\"sezzle-payment-amount sezzle-button-text\"\n key={index}\n >\n {getFormattedPrice(this.state.config.price, effectiveNumberOfPayments, this.state.config.minPriceLT, this.state.config.maxPriceLT, this.state.config.bestAPR)}\n </span>\n )\n subtemplates.push(priceElement)\n break\n case 'logo':\n // eslint-disable-next-line no-case-declarations\n const logoElement = (\n <img\n alt=\"Sezzle\"\n className={`sezzle-logo szl-${\n this.state.config.theme === 'dark' ||\n this.state.config.theme === 'white-flat'\n ? 'dark'\n : 'light'\n }-image`}\n src={logoURLs[this.state.config.theme] || logoURLs.light}\n style={{\n transformOrigin: `top-${this.state.config.alignment}`,\n transform: `scale(${this.state.config.logoSize})`,\n cursor: 'pointer',\n width: '74px',\n height: '18px'\n }}\n key={index}\n onClick={() => this.openModal('sezzle')}\n />\n )\n subtemplates.push(logoElement)\n break\n case 'info':\n // eslint-disable-next-line no-case-declarations\n const iconSize = this.state.config.fontSize || 14\n // eslint-disable-next-line no-case-declarations\n const infoElement = (\n <div\n aria-label={`${translations.clickToLearnMore}`}\n className=\"sezzle-info-icon\"\n key={index}\n onClick={() => this.openModal('sezzle')}\n role=\"button\"\n >\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M7 0C3.13 0 0 3.13 0 7s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7zm0 12.6A5.6 5.6 0 1 1 7 1.4a5.6 5.6 0 0 1 0 11.2zM6.3 3.5h1.4v1.4H6.3V3.5zm0 2.8h1.4v4.2H6.3V6.3z\" fill=\"currentColor\"/>\n </svg>\n </div>\n )\n subtemplates.push(infoElement)\n break\n case 'afterpay-logo':\n // eslint-disable-next-line no-case-declarations\n const apLogo = (\n <img\n className=\"sezzle-ap-logo ap-modal-info-link no-sezzle-info\"\n src={\n 'https://media.sezzle.com/sezzle-credit-website-assets/ap-badge-black-on-mint.svg'\n }\n onClick={(event) => {\n event.stopPropagation()\n this.openModal('afterpay')\n }}\n key={index}\n alt=\"Afterpay\"\n />\n )\n subtemplates.push(apLogo)\n break\n default:\n subtemplates.push(subTemplate)\n }\n })\n return subtemplates\n }\n\n openModal(modalType) {\n modalType === 'afterpay'\n ? this.setState({ afterpay: true })\n : this.setState({ sezzle: true })\n }\n\n closeModal(modalType) {\n modalType === 'afterpay'\n ? this.setState({ afterpay: false })\n : this.setState({ sezzle: false })\n }\n\n render() {\n return (\n <div\n className={`sezzle-shopify-info-button sezzle-${\n this.state.config.merchantId || ''\n }`}\n >\n <div\n aria-haspopup=\"dialog\"\n role=\"button\"\n tabIndex=\"0\"\n className={`sezzle-checkout-button-wrapper sezzle-modal-link sezzle-${\n this.state.config.merchantId || ''\n } sezzle-${this.state.config.alignment || 'auto'}`}\n style={{ cursor: 'pointer' }}\n onClick={() => this.openModal('sezzle')}\n >\n <div\n className={`sezzle-button-text sezzle-${\n this.state.config.alignment || 'auto'\n } szl-${\n this.state.config.theme === 'dark' ||\n this.state.config.theme === 'white-flat'\n ? 'dark'\n : 'light'\n }`}\n style={{\n fontWeight: this.state.config.fontWeight || 500,\n fontFamily: this.state.config.fontFamily || 'inherit',\n fontSize: (this.state.config.fontSize || 14) + 'px',\n color: this.state.config.textColor || 'inherit'\n }}\n >\n {this.renderSezzleWidgetText()}\n </div>\n </div>\n {this.state.modalsToShow.map((modal, index) => (\n <Modal\n modalType={modal}\n key={index}\n toggleModalVisibility={this.state[modal]}\n callbackModalClose={(modal) => this.closeModal(modal)}\n minPrice={this.state.config.minPrice}\n maxPrice={this.state.config.maxPrice}\n minPriceLT={this.state.config.minPriceLT}\n maxPriceLT={this.state.config.maxPriceLT}\n bestAPR={this.state.config.bestAPR}\n price={this.state.config.price}\n numberOfPayments={this.state.config.numberOfPayments}\n />\n ))}\n </div>\n )\n }\n}\n\nSezzleWidgetText.propTypes = {\n config: PropTypes.object\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\n// eslint-disable-next-line no-unused-vars\nimport SezzleWidget from './Components/SezzleWidget'\nimport './index.scss'\n\nexport default class SezzleWidgetWrapper extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n sezzleConfig: {\n price: this.props.price || 0,\n merchantId: this.props.merchantId || '',\n includeAPModal: this.props.includeAPModal || false,\n minPrice: this.props.minPrice || 0,\n maxPrice: this.props.maxPrice || 2500,\n minPriceLT: this.props.minPriceLT || 0,\n maxPriceLT: this.props.maxPriceLT || 15000,\n bestAPR: this.props.bestAPR || 21.99,\n theme: this.props.theme || 'light',\n alignment: this.props.alignment || 'auto',\n fontWeight: this.props.fontWeight || 500,\n fontFamily: this.props.fontFamily || 'inherit',\n fontSize: this.props.fontSize || 14,\n textColor: this.props.textColor || 'inherit',\n logoSize: this.props.logoSize || 1,\n modalsToShow: ['sezzle'],\n numberOfPayments: this.props.numberOfPayments === 4 ? 4 : 5\n }\n }\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.price !== state.sezzleConfig.price) {\n const updateState = state\n updateState.sezzleConfig.price = props.price\n return updateState\n }\n state = { ...state }\n if (\n props.includeAPModal &&\n state.sezzleConfig.modalsToShow.indexOf('afterpay') === -1\n ) {\n state.sezzleConfig.modalsToShow.push('afterpay')\n }\n return state\n }\n\n render() {\n return (\n <div>\n <SezzleWidget config={this.state.sezzleConfig} />\n </div>\n )\n }\n}\n\nSezzleWidgetWrapper.propTypes = {\n price: PropTypes.string.isRequired,\n merchantId: PropTypes.string.isRequired,\n theme: PropTypes.string,\n alignment: PropTypes.string,\n fontWeight: PropTypes.number,\n fontFamily: PropTypes.string,\n fontSize: PropTypes.number,\n textColor: PropTypes.string,\n logoSize: PropTypes.number,\n minPrice: PropTypes.number,\n maxPrice: PropTypes.number,\n minPriceLT: PropTypes.number,\n maxPriceLT: PropTypes.number,\n bestAPR: PropTypes.number,\n includeAPModal: PropTypes.bool,\n numberOfPayments: PropTypes.number\n}\n"],"names":["e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","supportedLanguages","parsePriceString","price","formattedPrice","isNumeric","isAlphabet","parsePrice","parseFloat","isNaN","isFinite","test","getLanguage","lang","document","querySelector","substring","toLowerCase","indexOf","getAPModal","_x","_getAPModal","_callee","modalNode","currentLang","url","response","_t","_context","className","concat","fetch","ok","Error","status","text","innerHTML","console","error","getCurrency","priceString","defaultCurrency","undefined","CURRENCY_REGEX","currencyMatch","match","getTranslations","translationsMap","en","enTranslations","fr","frTranslations","es","esTranslations","PI5_MIN_PRICE","isProductEligibleLT","priceText","minPriceLT","maxPriceLT","Number","isProductEligiblePI4","minPrice","maxPrice","isProductEligiblePI5","numberOfPayments","isInputAmountValid","upper","Math","max","termsToShow","addDelimiters","parsedPrice","toFixed","calculateMonthlyWithInterest","term","APR","rate","numerator","pow","denominator","interestPayment","getFormattedPrice","bestAPR","priceReplacer","formatter","replace","terms","sezzleInstallmentPrice","sezzleInstallmentFormattedPrice","CAROUSEL_MIN_TAB","CAROUSEL_MAX_TAB","INPUT_DEBOUNCE_DELAY_MS","CURRENCY_REGEX_GLOBAL","SANITIZE_REGEX","LT_APR_MIN","LT_APR_MAX","LT_TERM_MIN","LT_TERM_MAX","computeEligibility","opts","pi4","pi5","lt","formatLTAmount","currency","generateBiweeklyCard","translations","classModifier","dashWidth","installmentPrice","pillLabel","MultiPlanpayIn","installments","isFirst","isLast","weekNumber","dueText","today","MultiPlanweeks","push","MultiPlanevery2Weeks","join","generateMonthlyCard","months","monthly","total","interest","LTperMonth","LTmonthlyAmount","LTtermLength","LTreadApr","LTpercent","LTsampleApr","LTinterest","LTadjustedTotal","featureCheckSvg","generateBiweeklyInner","eligibility","generateMonthlyInner","cards","map","seeDetails","LTseeDetails","hideDetails","LThideDetails","LTsingleFeatureAffordable","LTsingleFeaturePrequalify","LTsingleFeatureTrusted","generateTermsInner","webBank","productTerms","webBankTermsPI5","webBankTermsPI4","webBankTerms","linkToCompleteTerms","ltTerms","ltTerms3","LTterms3","terms1","termsHiw","terms2","updateArrowStates","leftArrow","rightArrow","activeTab","leftDisabled","rightDisabled","disabled","classList","toggle","updateDotStates","dots","isActive","setAttribute","updateCarouselPosition","carouselWrapper","carousel","handleCarouselTabStyles","btn","_carouselWrapper$quer","contains","closest","parseInt","dataset","min","arrows","parentElement","querySelectorAll","Array","from","find","arrow","children","handleCarousel","getElementsByClassName","isInitialized","carouselInitialized","_carouselWrapper$quer2","addEventListener","stopPropagation","currentTarget","attachFeaturesAccordion","listenersAdded","drawer","expandIcon","collapseIcon","title","isExpanded","getAttribute","style","display","textContent","labelExpand","labelCollapse","renderDynamicSections","container","biweekly","handleMultiPlanInput","initialCurrency","input","debounceTimer","event","clearTimeout","setTimeout","raw","target","valid","add","remove","resetMultiPlanModal","rawPrice","sanitized","trim","_objectSpread","getMultiPlanModal","modalContent","sezzleInformation","closeSezzleModal","MultiPlantrusted","MultiPlanheader","MultiPlanSeePlans","MultiPlanAmount","MultiPlanhowToPay","previousSlide","nextSlide","MultiPlanStep1","MultiPlanStep2","MultiPlanStep3","carouselPosition","slide","Modal","_React$Component","props","_this","_classCallCheck","_callSuper","_defineProperty","isModalVisible","state","setState","modalType","modalElement","callbackModalClose","_inherits","_createClass","key","componentDidMount","_this2","appendChild","sezzleModal","closeTargets","_toConsumableArray","filter","el","forEach","modalCloseHandler","componentDidUpdate","prevProps","prevState","toggleModalVisibility","render","getDerivedStateFromProps","createElement","React","Component","propTypes","PropTypes","bool","string","func","number","SezzleWidgetText","config","sezzle","afterpay","modalsToShow","renderSezzleWidgetText","logoURLs","light","dark","language","priceFloat","includeAPModal","ltEnabled","upperBound","effectiveNumberOfPayments","widgetTemplate","longTerm","dualInstall","widget","apDualInstallText","apDualInstall","thresholdPriceText","thresholdPrice","subtemplates","split","subTemplate","index","priceElement","logoElement","alt","theme","src","transformOrigin","alignment","transform","logoSize","cursor","width","height","onClick","openModal","iconSize","fontSize","infoElement","clickToLearnMore","role","viewBox","fill","xmlns","fillRule","clipRule","apLogo","closeModal","_this3","merchantId","tabIndex","fontWeight","fontFamily","color","textColor","modal","object","SezzleWidgetWrapper","sezzleConfig","SezzleWidget","updateState","isRequired"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/Helpers/helper.js","../src/Helpers/ltConfig.js","../src/Helpers/renderFunctions.js","../node_modules/style-inject/dist/style-inject.es.js","../src/Components/MultiPlanModal.js","../src/Components/Modal.js","../src/Components/SezzleWidget.js","../src/index.cjs"],"sourcesContent":["import enTranslations from '../translations/en'\nimport frTranslations from '../translations/fr'\nimport esTranslations from '../translations/es'\n\nexport const supportedLanguages = ['en', 'es', 'fr']\n\n/**\n * This function will return the price string\n * @param price - string value\n * @return string\n */\n\nexport function parsePriceString(price) {\n let formattedPrice = ''\n if (!price) return formattedPrice\n for (let i = 0; i < price.length; i++) {\n if (isNumeric(price[i]) || price[i] === '.' || price[i] === ',') {\n // Ignore actual sentence punctuation\n if (i > 0 && price[i] === '.' && isAlphabet(price[i - 1])) continue\n\n formattedPrice += price[i]\n }\n }\n return formattedPrice\n}\n\n/**\n * Function parses the price from string to float\n * @param price -> String\n * @return float\n */\nexport function parsePrice(price) {\n return parseFloat(parsePriceString(price))\n}\n\n/**\n * This is helper function for formatPrice\n * @param n char value\n * @return boolean [if it's numeric or not]\n */\nexport function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\n/**\n * This is helper function for formatPrice\n * @param n char value\n * @return boolean [if it's alphabet or not]\n */\nexport function isAlphabet(n) {\n return /^[a-zA-Z()]+$/.test(n)\n}\n\n/**\n * This is a helper function for formatting the language\n * @return string\n */\n\nexport function getLanguage() {\n const lang = document\n .querySelector('html')\n .lang.substring(0, 2)\n .toLowerCase()\n return supportedLanguages.indexOf(lang) > -1 ? lang : 'en'\n}\n\nexport async function getAPModal(modalNode) {\n const currentLang = getLanguage()\n modalNode.className =\n 'sezzle-checkout-modal-lightbox close-sezzle-modal sezzle-ap-modal'\n const url = `https://media.sezzle.com/afterpay/modal/${currentLang}.html`\n try {\n const response = await fetch(url)\n if (!response.ok) {\n throw new Error(\n `Failed to fetch afterpay modal, status: ${response.status}`\n )\n }\n modalNode.innerHTML = await response.text()\n } catch (error) {\n console.error(error)\n }\n}\n\n/**\n * Extracts the currency symbol from a price string\n * @param priceString - String containing price with currency symbol\n * @param defaultCurrency - Default currency to return if not found (optional, defaults to \"$\")\n * @return string - The currency symbol or default\n */\nexport function getCurrency(priceString, defaultCurrency = '$') {\n const CURRENCY_REGEX = /[$€£₤₹]/\n const currencyMatch = priceString.match(CURRENCY_REGEX)\n return currencyMatch ? currencyMatch[0] : defaultCurrency\n}\n\n/**\n * Renders a numeric value with the decimal separator appropriate for the\n * language: a period for English, a comma for French/Spanish. Only the decimal\n * separator is swapped; no grouping is applied.\n * @param value - number or numeric string (e.g. an APR like 9.99)\n * @param lang - Language code (en, fr, es)\n * @return string\n */\nexport function formatNumberForLocale(value, lang) {\n const str = String(value)\n return lang === 'fr' || lang === 'es' ? str.replace('.', ',') : str\n}\n\n/**\n * Returns the translation object for the specified language\n * @param currentLang - Language code (en, fr, es)\n * @return object - The translation object for the given language\n */\nexport function getTranslations(currentLang) {\n const translationsMap = {\n en: enTranslations,\n fr: frTranslations,\n es: esTranslations\n }\n return translationsMap[currentLang]\n}\n","// Long-term (LT) product configuration.\n//\n// The widget supports long-term payment options whose defaults differ by\n// lending partner. To make per-partner rollouts easy, each partner's complete\n// set of LT defaults is bundled under a neutral alias (\"a\", \"b\", ...). The\n// alias is deliberately non-branded so the lending partner is never exposed to\n// merchants. An account manager guides the merchant on which alias to use based\n// on their enrollment, so the merchant no longer has to set every LT field by\n// hand. \"a\" is the default fallback preset.\n//\n// Every LT option follows a consistent contract: 0 (or unset) means \"not set.\"\n// To disable LT entirely, omit both `minPriceLT` and `LTgroup`.\n//\n// Units note: unlike the backend LT API (which uses cents), every LT value in\n// this widget is expressed in whole currency units (dollars), matching the rest\n// of this project's config — minPriceLT, maxPriceLT, and the termsToShow\n// thresholds are all dollar amounts.\n\nexport const DEFAULT_LT_GROUP = 'a'\n\n// Recursively freeze an object and all nested objects/arrays. The presets below\n// are shared, long-lived references that resolve* helpers hand out directly\n// (e.g. resolveTermsToShow returns the preset's termsToShow, including its term\n// arrays, by reference). Freezing makes any accidental downstream mutation\n// (e.g. config.termsToShow.default.push(12)) throw instead of silently\n// corrupting the preset for the lifetime of the page.\nfunction deepFreeze(obj) {\n for (const value of Object.values(obj)) {\n if (value && typeof value === 'object' && !Object.isFrozen(value)) {\n deepFreeze(value)\n }\n }\n return Object.freeze(obj)\n}\n\n// Per-partner presets. Each preset is a COMPLETE set of LT defaults:\n// minPriceLT – lowest price (inclusive) eligible for LT\n// maxPriceLT – highest price (inclusive) eligible for LT\n// minAPR – lowest APR offered; lower bound of the disclaimer APR range\n// medianAPR – representative APR; drives per-card monthly payment + per-card APR display\n// maxAPR – highest APR offered; upper bound of the disclaimer APR range\n// termsToShow – price-threshold → term-length map (see termsToShow shape below)\n//\n// termsToShow shape: keys are price thresholds in dollars, values are arrays of\n// term lengths in months. The `default` key handles prices below all\n// thresholds. A price selects the array for the highest threshold it strictly\n// exceeds, mirroring the previously hardcoded tiers.\nexport const LT_GROUPS = deepFreeze({\n // \"a\" is seeded from this project's prior production values\n // (APR range 9.99–34.99, median 21.99, maxPriceLT 15000, and the original\n // hardcoded term tiers).\n a: {\n minPriceLT: 150,\n maxPriceLT: 15000,\n minAPR: 9.99,\n medianAPR: 21.99,\n maxAPR: 34.99,\n termsToShow: {\n default: [3, 6, 9],\n 300: [6, 9, 12],\n 500: [12, 18, 24],\n 1000: [24, 36, 48]\n }\n },\n b: {\n minPriceLT: 400,\n maxPriceLT: 8000,\n minAPR: 24.99,\n medianAPR: 29.99,\n maxAPR: 35.99,\n termsToShow: {\n default: [3, 6, 9],\n 600: [6, 9, 12],\n 800: [9, 12, 24],\n 1000: [12, 24, 36]\n }\n }\n})\n\n// Resolve an LTgroup alias to its canonical (lowercased) preset key, or null\n// when no alias is given. An unrecognized (non-empty) alias warns (listing the\n// accepted values) and resolves to null so callers fall back to the default.\nexport function normalizeGroup(alias) {\n if (alias === undefined || alias === null || alias === '') return null\n const key = String(alias).toLowerCase()\n if (LT_GROUPS[key]) return key\n console.warn(\n `[Sezzle] Unknown LTgroup \"${alias}\". Accepted values: ${Object.keys(LT_GROUPS)\n .map((k) => `\"${k}\"`)\n .join(', ')}. Falling back to \"${DEFAULT_LT_GROUP}\".`\n )\n return null\n}\n\n// True when `value` is a well-formed termsToShow map: an object whose values are\n// non-empty arrays of positive numbers (months).\nfunction isValidTermsToShow(value) {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return false\n const entries = Object.values(value)\n if (entries.length === 0) return false\n return entries.every(\n (arr) =>\n Array.isArray(arr) &&\n arr.length > 0 &&\n arr.every((n) => Number.isFinite(n) && n > 0)\n )\n}\n\n// Resolve a merchant-supplied termsToShow against the group preset. Malformed\n// input warns (with the expected shape) and falls back to the preset. A valid\n// map missing the `default` key warns and borrows the preset's default so\n// below-threshold lookups never fall through.\nexport function resolveTermsToShow(provided, presetTerms) {\n if (provided === undefined || provided === null) return presetTerms\n if (!isValidTermsToShow(provided)) {\n console.warn(\n '[Sezzle] Malformed termsToShow. Expected an object mapping price ' +\n 'thresholds (numbers, in dollars) to arrays of term lengths in months, ' +\n 'plus a \"default\" key for prices below all thresholds, e.g. ' +\n '{ default: [3, 6, 9], 500: [12, 18, 24] }. Falling back to the ' +\n 'LTgroup preset.'\n )\n return presetTerms\n }\n if (!Array.isArray(provided.default)) {\n console.warn(\n '[Sezzle] termsToShow is missing a \"default\" key for prices below all ' +\n \"thresholds. Using the LTgroup preset's default.\"\n )\n return { ...provided, default: presetTerms.default }\n }\n return provided\n}\n\n// Pick an explicit prop when it is \"set\" (> 0), otherwise the preset value.\n// A value of 0 is never a valid LT setting, so it is treated as \"not set.\"\nfunction pickPrice(value, fallback) {\n return Number(value) > 0 ? Number(value) : fallback\n}\n\n// Resolve the effective LT config from widget props.\n//\n// Every LT value defaults to a group preset, falling back to group \"a\" even\n// when LT is off, so maxPriceLT / the APRs / termsToShow are never 0 or null\n// downstream. `minPriceLT` is the sole exception: it is the render trigger\n// (the widget shows LT only when minPriceLT > 0), so it stays 0 when LT is\n// disabled — i.e. when neither LTgroup nor minPriceLT is provided.\nexport function resolveLTConfig(props = {}) {\n const explicitGroup = normalizeGroup(props.LTgroup)\n // Backcompat: pre-LTgroup configs enabled LT via minPriceLT alone. When that's\n // set without an explicit LTgroup, auto-resolve to the default preset so the\n // remaining LT defaults come from the original group \"a\".\n const minPriceLTSet = Number(props.minPriceLT) > 0\n const group = explicitGroup || (minPriceLTSet ? DEFAULT_LT_GROUP : null)\n const groupDefaults = LT_GROUPS[group] || LT_GROUPS[DEFAULT_LT_GROUP]\n\n return {\n minPriceLT: pickPrice(props.minPriceLT, group ? groupDefaults.minPriceLT : 0),\n maxPriceLT: pickPrice(props.maxPriceLT, groupDefaults.maxPriceLT),\n minAPR: pickPrice(props.minAPR, groupDefaults.minAPR),\n medianAPR: pickPrice(props.medianAPR, groupDefaults.medianAPR),\n maxAPR: pickPrice(props.maxAPR, groupDefaults.maxAPR),\n termsToShow: resolveTermsToShow(props.termsToShow, groupDefaults.termsToShow)\n }\n}\n\n// Select the term-length array for a price from a termsToShow map. Returns the\n// array for the highest dollar threshold the price strictly exceeds, falling\n// back to the `default` key. Returns undefined only when the map is missing /\n// has no usable default — callers guard against that.\nexport function selectTermsToShow(price, termsConfig) {\n if (!termsConfig || typeof termsConfig !== 'object') return undefined\n const thresholds = Object.keys(termsConfig)\n .filter((k) => k !== 'default')\n .map(Number)\n .filter(Number.isFinite)\n .sort((a, b) => a - b)\n\n let selected = termsConfig.default\n for (const threshold of thresholds) {\n if (price > threshold) selected = termsConfig[threshold]\n }\n return selected\n}\n\n// Min and max term-month across the whole termsToShow map (the union of every\n// term array, including `default`). Used for the disclaimer's term-length\n// bounds. Returns null when no usable terms exist.\nexport function termMonthBounds(termsConfig) {\n if (!termsConfig || typeof termsConfig !== 'object') return null\n const months = Object.values(termsConfig)\n .filter(Array.isArray)\n .flat()\n .filter((n) => Number.isFinite(n))\n if (months.length === 0) return null\n return { min: Math.min(...months), max: Math.max(...months) }\n}\n","import { parsePriceString, parsePrice } from './helper'\nimport { selectTermsToShow } from './ltConfig'\n\nexport const PI5_MIN_PRICE = 50\n\nexport function isProductEligibleLT(priceText, minPriceLT, maxPriceLT) {\n if (!minPriceLT) return false\n const price = parsePrice(priceText)\n return Number.isFinite(price) && price >= minPriceLT && price <= maxPriceLT\n}\n\nexport function isProductEligiblePI4(priceText, minPrice, maxPrice) {\n const price = parsePrice(priceText)\n return Number.isFinite(price) && price >= minPrice && price <= maxPrice\n}\n\nexport function isProductEligiblePI5(priceText, maxPrice, numberOfPayments) {\n if (numberOfPayments !== 5) return false\n const price = parsePrice(priceText)\n return Number.isFinite(price) && price >= PI5_MIN_PRICE && price <= maxPrice\n}\n\nexport function isInputAmountValid(priceText, minPrice, maxPrice, minPriceLT, maxPriceLT) {\n const price = parsePrice(priceText)\n if (!Number.isFinite(price) || price <= 0) return false\n // LT is only active when minPriceLT is set; otherwise maxPriceLT is ignored\n // and maxPrice is the sole upper bound.\n const upper = minPriceLT > 0 ? Math.max(maxPrice, maxPriceLT || 0) : maxPrice\n return price >= minPrice && price <= upper\n}\n\nexport function addDelimiters(priceString) {\n const parsedPrice = Number(priceString).toFixed(2)\n if (parsedPrice.length > 6) {\n return (\n parsedPrice.substring(0, parsedPrice.indexOf('.') - 3) +\n ',' +\n parsedPrice.substring(parsedPrice.indexOf('.') - 3, parsedPrice.length)\n )\n }\n return parsedPrice\n}\n\nexport function calculateMonthlyWithInterest(priceText, term, APR) {\n const price = Number(priceText)\n if (APR > 0) {\n const rate = APR / 100 / 12\n const numerator = price * rate * Math.pow(1 + rate, term)\n const denominator = Math.pow(1 + rate, term) - 1\n const interestPayment = numerator / denominator\n return interestPayment\n } else {\n return price / term\n }\n}\n\nexport function getFormattedPrice(\n price,\n numberOfPayments,\n minPriceLT,\n maxPriceLT,\n medianAPR,\n termsConfig\n) {\n const priceString = parsePriceString(price)\n const priceReplacer = parsePrice(price)\n const formatter = price.replace(priceString, '{price}')\n\n let sezzleInstallmentPrice\n if (isProductEligibleLT(priceString, minPriceLT, maxPriceLT)) {\n const terms = selectTermsToShow(priceReplacer, termsConfig)\n // Defensive guard: when LT-eligible but no terms match (e.g. a malformed\n // termsToShow that slipped past validation), fall back to the bi-weekly\n // installment price rather than producing NaN.\n if (Array.isArray(terms) && terms.length > 0) {\n sezzleInstallmentPrice = calculateMonthlyWithInterest(\n priceString,\n terms[terms.length - 1],\n medianAPR\n )\n } else {\n sezzleInstallmentPrice = priceReplacer / numberOfPayments\n }\n } else {\n sezzleInstallmentPrice = priceReplacer / numberOfPayments\n }\n\n const sezzleInstallmentFormattedPrice = formatter.replace(\n '{price}',\n sezzleInstallmentPrice.toFixed(2)\n )\n\n return sezzleInstallmentFormattedPrice\n};\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { getLanguage, getCurrency, getTranslations, parsePrice, formatNumberForLocale } from '../Helpers/helper'\nimport {\n addDelimiters,\n calculateMonthlyWithInterest,\n getFormattedPrice,\n isInputAmountValid,\n isProductEligibleLT,\n isProductEligiblePI4,\n isProductEligiblePI5\n} from '../Helpers/renderFunctions'\nimport { selectTermsToShow, termMonthBounds } from '../Helpers/ltConfig'\n\nconst CAROUSEL_MIN_TAB = 1\nconst CAROUSEL_MAX_TAB = 3\nconst INPUT_DEBOUNCE_DELAY_MS = 150\nconst CURRENCY_REGEX_GLOBAL = /[$€£₤₹]/g\nconst SANITIZE_REGEX = /[^0-9,.$€£₤₹]/g\n\nfunction computeEligibility(priceString, opts) {\n return {\n pi4: isProductEligiblePI4(priceString, opts.minPrice, opts.maxPrice),\n pi5: isProductEligiblePI5(priceString, opts.maxPrice, opts.numberOfPayments),\n lt: isProductEligibleLT(priceString, opts.minPriceLT, opts.maxPriceLT)\n }\n}\n\nfunction formatLTAmount(currency, value) {\n return currency + addDelimiters(value)\n}\n\nfunction generateBiweeklyCard(numberOfPayments, currency, priceString, translations) {\n const classModifier = numberOfPayments === 4 ? 'fourth' : 'fifth'\n const dashWidth = numberOfPayments === 4 ? 30 : 22\n // Biweekly cards always show the bi-weekly installment (price / numberOfPayments),\n // never the long-term monthly amount. Passing minPriceLT/maxPriceLT = 0 forces\n // getFormattedPrice down the non-LT branch even for LT-eligible prices.\n const installmentPrice = getFormattedPrice(currency + priceString, numberOfPayments, 0, 0, 0, null)\n const pillLabel = numberOfPayments === 5\n ? `${translations.MultiPlanpayIn} 5 <sup>TM</sup>`\n : `${translations.MultiPlanpayIn} ${numberOfPayments}`\n\n const installments = []\n for (let i = 0; i < numberOfPayments; i++) {\n const isFirst = i === 0\n const isLast = i === numberOfPayments - 1\n const weekNumber = i * 2\n const dueText = isFirst ? translations.today : `${weekNumber} ${translations.MultiPlanweeks}`\n\n installments.push(`\n <div class='installment'>\n <div class='graphic'>\n <div class='dash left ${classModifier}'>\n <svg width=\"${dashWidth}\" height=\"2\" viewBox=\"0 0 ${dashWidth} 2\" fill=\"#E8E8E8\" xmlns=\"http://www.w3.org/2000/svg\"${isFirst ? ' style=\"visibility: hidden\"' : ''}>\n <rect x=\"${dashWidth === 30 ? '0.75' : '0.399994'}\" width=\"${dashWidth}\" height=\"2\" fill=\"#E8E8E8\"/>\n </svg>\n </div>\n <div class='dot'>\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.39999 12C10.6091 12 12.4 10.2091 12.4 8C12.4 5.79086 10.6091 4 8.39999 4C6.19085 4 4.39999 5.79086 4.39999 8C4.39999 10.2091 6.19085 12 8.39999 12Z\" fill=\"#8333D4\"></path>\n </svg>\n </div>\n <div class='dash right ${classModifier}'>\n <svg width=\"${dashWidth}\" height=\"${i > 0 && i < numberOfPayments - 1 ? 16 : 2}\" viewBox=\"0 0 ${dashWidth} ${i > 0 && i < numberOfPayments - 1 ? 16 : 2}\" fill=\"#E8E8E8\" xmlns=\"http://www.w3.org/2000/svg\"${isLast ? ' style=\"visibility: hidden\"' : ''}>\n <rect x=\"${dashWidth === 30 ? '0.75' : '0.399994'}\" ${i > 0 && i < numberOfPayments - 1 ? 'y=\"7\" ' : ''}width=\"${dashWidth}\" height=\"2\" fill=\"#E8E8E8\"/>\n </svg>\n </div>\n </div>\n <div class='detail${isFirst ? ' first-installment' : ''}'>\n <div class='amount ${numberOfPayments}-pay-installment'>\n ${installmentPrice}\n </div>\n <div class='due'>\n ${dueText}\n </div>\n </div>\n </div>\n `)\n }\n\n return `\n <div class='payment-card ${numberOfPayments}-pay-installment-card'>\n <div class='plan-summary'>\n <div class='purple'>\n <div class='left'>\n <span class='price ${numberOfPayments}-pay-installment'>${installmentPrice}</span>\n <span class='due'>${translations.today}</span>\n </div>\n <div class='right'>\n <span class='pill'>${pillLabel}</span>\n </div>\n </div>\n <div class='grey'>\n <span class=\"${numberOfPayments}-pay-installment\">${installmentPrice}</span> ${translations.MultiPlanevery2Weeks}\n </div>\n </div>\n <div class='payment-breakdown'>\n ${installments.join('')}\n </div>\n </div>\n `\n}\n\nfunction generateMonthlyCard(months, currency, priceString, medianAPR, translations, lang) {\n const monthly = calculateMonthlyWithInterest(priceString, months, medianAPR)\n const total = monthly * months\n const interest = total - Number(priceString)\n const aprDisplay = formatNumberForLocale(medianAPR, lang)\n\n return `\n <div class='payment-card monthly-installment-card' data-months='${months}'>\n <div class='plan-summary'>\n <div class='purple'>\n <div class='left'>\n <span class='price monthly-amount' data-months='${months}'>${formatLTAmount(currency, monthly)}</span>\n <span class='due' aria-label='${translations.LTperMonth}'>\n <span aria-hidden='true'>${translations.LTmonthlyAmount}</span>\n </span>\n </div>\n <div class='right'>\n <span class='pill'>${months} ${translations.LTtermLength}</span>\n </div>\n </div>\n </div>\n <div class='plan-details monthly-plan-details'>\n <div class='monthly-detail-row' aria-label='${translations.LTreadApr} ${aprDisplay} ${translations.LTpercent}'>\n <span class='detail-label' aria-hidden='true'>${translations.LTsampleApr}</span>\n <span class='detail-value monthly-apr' aria-hidden='true'>${aprDisplay}%</span>\n </div>\n <div class='monthly-detail-row'>\n <span class='detail-label'>${translations.LTinterest}</span>\n <span class='detail-value monthly-interest' data-months='${months}'>${formatLTAmount(currency, interest)}</span>\n </div>\n <div class='monthly-detail-row'>\n <span class='detail-label'>${translations.LTadjustedTotal}</span>\n <span class='detail-value monthly-total' data-months='${months}'>${formatLTAmount(currency, total)}</span>\n </div>\n </div>\n </div>\n `\n}\n\nfunction featureCheckSvg() {\n return `<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6.66667 0C2.98667 0 0 2.98667 0 6.66667C0 10.3467 2.98667 13.3333 6.66667 13.3333C10.3467 13.3333 13.3333 10.3467 13.3333 6.66667C13.3333 2.98667 10.3467 0 6.66667 0ZM6.66667 12C3.72667 12 1.33333 9.60667 1.33333 6.66667C1.33333 3.72667 3.72667 1.33333 6.66667 1.33333C9.60667 1.33333 12 3.72667 12 6.66667C12 9.60667 9.60667 12 6.66667 12ZM9.25333 4.19333L5.33333 8.11333L4.08 6.86C3.82 6.6 3.4 6.6 3.14 6.86C2.88 7.12 2.88 7.54 3.14 7.8L4.86667 9.52667C5.12667 9.78667 5.54667 9.78667 5.80667 9.52667L10.2 5.13333C10.46 4.87333 10.46 4.45333 10.2 4.19333C9.94 3.93333 9.51333 3.93333 9.25333 4.19333Z\" fill=\"#8333D4\"/>\n </svg>`\n}\n\nfunction generateBiweeklyInner(eligibility, currency, priceString, opts, translations) {\n if (!eligibility.pi4) return ''\n return `\n ${generateBiweeklyCard(4, currency, priceString, translations)}\n ${eligibility.pi5 ? generateBiweeklyCard(5, currency, priceString, translations) : ''}\n `\n}\n\nfunction generateMonthlyInner(eligibility, currency, priceString, opts, translations, lang) {\n if (!eligibility.lt) return ''\n const terms = selectTermsToShow(parsePrice(priceString), opts.termsToShow) || []\n const cards = terms.map(months => generateMonthlyCard(months, currency, priceString, opts.medianAPR, translations, lang)).join('')\n const seeDetails = translations.LTseeDetails\n const hideDetails = translations.LThideDetails\n\n return `\n ${cards}\n <div class=\"features-accordion\">\n <div class=\"accordion-title-bar\">\n <span class=\"accordion-title\" aria-hidden='true'>${seeDetails}</span>\n <button class=\"accordion-icon accordion-toggle\" aria-expanded=\"false\" aria-controls=\"features-drawer\" aria-label='${seeDetails}' data-label-expand='${seeDetails}' data-label-collapse='${hideDetails}'>\n <svg class=\"accordion-icon-expand\" width=\"12\" height=\"7\" viewBox=\"0 0 12 7\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9.4625 0.2925L5.5825 4.1725L1.7025 0.2925C1.3125 -0.0975 0.6825 -0.0975 0.2925 0.2925C-0.0975 0.6825 -0.0975 1.3125 0.2925 1.7025L4.8825 6.2925C5.2725 6.6825 5.9025 6.6825 6.2925 6.2925L10.8825 1.7025C11.2725 1.3125 11.2725 0.6825 10.8825 0.2925C10.4925 -0.0875 9.8525 -0.0975 9.4625 0.2925Z\" fill=\"#8333D4\"/>\n </svg>\n <svg class=\"accordion-icon-collapse\" style=\"display:none\" width=\"12\" height=\"7\" viewBox=\"0 0 12 7\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4.8825 0.2925L0.2925 4.8825C-0.0975 5.2725 -0.0975 5.9025 0.2925 6.2925C0.6825 6.6825 1.3125 6.6825 1.7025 6.2925L5.5925 2.4125L9.4725 6.2925C9.8625 6.6825 10.4925 6.6825 10.8825 6.2925C11.2725 5.9025 11.2725 5.2725 10.8825 4.8825L6.2925 0.2925C5.9125 -0.0975 5.2725 -0.0975 4.8825 0.2925Z\" fill=\"#8333D4\"/>\n </svg>\n </button>\n </div>\n <div id=\"features-drawer\" class=\"features-drawer\" style=\"display: none;\">\n <div class=\"single-feature\"><div>${featureCheckSvg()}</div><span>${translations.LTsingleFeatureAffordable}</span></div>\n <div class=\"single-feature\"><div>${featureCheckSvg()}</div><span>${translations.LTsingleFeaturePrequalify}</span></div>\n <div class=\"single-feature\"><div>${featureCheckSvg()}</div><span>${translations.LTsingleFeatureTrusted}</span></div>\n </div>\n </div>\n `\n}\n\nfunction generateTermsInner(eligibility, translations, opts, lang) {\n let webBank = ''\n if (eligibility.pi4) {\n const productTerms = eligibility.pi5 ? translations.webBankTermsPI5 : translations.webBankTermsPI4\n webBank = `\n <p class=\"terms\">\n <span class=\"webbank-terms\">${translations.webBankTerms} ${productTerms}</span>\n <br />\n <span>${translations.linkToCompleteTerms}</span>\n </p>\n `\n }\n\n let ltTerms = ''\n if (eligibility.lt) {\n // APR range comes from the resolved LT config; term-month bounds derive from\n // the union of every termsToShow array. APR values render with the\n // locale-appropriate decimal separator.\n const bounds = termMonthBounds(opts.termsToShow) || { min: '', max: '' }\n const ltTerms3 = (translations.LTterms3 || '* Subject to credit approval by a third party lender.')\n .replace('{minAPR}', formatNumberForLocale(opts.minAPR, lang))\n .replace('{maxAPR}', formatNumberForLocale(opts.maxAPR, lang))\n .replace('{minTermMonths}', bounds.min)\n .replace('{maxTermMonths}', bounds.max)\n ltTerms = `<p class=\"terms lt-terms\">${ltTerms3}</p>`\n }\n\n return `\n <p class=\"terms\"><span>${translations.terms1}</span><br /><span>${translations.termsHiw}</span></p>\n <p class=\"terms\">${translations.terms2}</p>\n ${webBank}\n ${ltTerms}\n `\n}\n\nfunction updateArrowStates(leftArrow, rightArrow, activeTab) {\n if (!leftArrow || !rightArrow) return\n const leftDisabled = activeTab === CAROUSEL_MIN_TAB\n const rightDisabled = activeTab === CAROUSEL_MAX_TAB\n leftArrow.disabled = leftDisabled\n leftArrow.classList.toggle('disabled', leftDisabled)\n rightArrow.disabled = rightDisabled\n rightArrow.classList.toggle('disabled', rightDisabled)\n}\n\nfunction updateDotStates(dots, activeTab) {\n if (!dots) return\n for (let i = 0; i < dots.length; i++) {\n const isActive = (activeTab - 1) === i\n dots[i].className = isActive ? 'dot active' : 'dot'\n dots[i].setAttribute('aria-selected', isActive ? 'true' : 'false')\n }\n}\n\nfunction updateCarouselPosition(carouselWrapper, activeTab) {\n if (!carouselWrapper) return\n const carousel = carouselWrapper.querySelector('.carousel')\n if (carousel) carousel.className = `carousel position-${activeTab}`\n}\n\nfunction handleCarouselTabStyles(btn) {\n if (!btn || btn.classList.contains('disabled')) return\n\n const modalNode = btn.closest('[data-carousel-initialized]')\n if (!modalNode) return\n\n const carouselWrapper = btn.closest('.how-to-sezzle')\n if (!carouselWrapper) return\n\n let activeTab = parseInt(modalNode.dataset.activeTab || CAROUSEL_MIN_TAB, 10)\n if (btn.classList.contains('arrow-right')) {\n activeTab = Math.min(activeTab + 1, CAROUSEL_MAX_TAB)\n } else {\n activeTab = Math.max(activeTab - 1, CAROUSEL_MIN_TAB)\n }\n\n modalNode.dataset.activeTab = activeTab\n\n const arrows = btn.parentElement.querySelectorAll('.arrow')\n const leftArrow = Array.from(arrows).find(arrow => arrow.classList.contains('arrow-left'))\n const rightArrow = Array.from(arrows).find(arrow => arrow.classList.contains('arrow-right'))\n\n updateCarouselPosition(carouselWrapper, activeTab)\n updateArrowStates(leftArrow, rightArrow, activeTab)\n\n const dots = carouselWrapper.querySelector('.carousel-dots')?.children\n updateDotStates(dots, activeTab)\n}\n\nexport function handleCarousel(modalNode) {\n if (!modalNode) return\n const carouselWrapper = modalNode.querySelector('.how-to-sezzle')\n if (!carouselWrapper) return\n\n const arrows = modalNode.getElementsByClassName('arrow')\n const leftArrow = Array.from(arrows).find(arrow => arrow.classList.contains('arrow-left'))\n const rightArrow = Array.from(arrows).find(arrow => arrow.classList.contains('arrow-right'))\n if (!leftArrow || !rightArrow) return\n\n const isInitialized = modalNode.dataset.carouselInitialized === 'true'\n if (isInitialized) {\n modalNode.dataset.activeTab = CAROUSEL_MIN_TAB\n updateCarouselPosition(carouselWrapper, CAROUSEL_MIN_TAB)\n updateArrowStates(leftArrow, rightArrow, CAROUSEL_MIN_TAB)\n const dots = carouselWrapper.querySelector('.carousel-dots')?.children\n updateDotStates(dots, CAROUSEL_MIN_TAB)\n } else {\n modalNode.dataset.carouselInitialized = 'true'\n modalNode.dataset.activeTab = CAROUSEL_MIN_TAB\n for (let i = 0; i < arrows.length; i++) {\n arrows[i].addEventListener('click', (e) => {\n e.stopPropagation()\n handleCarouselTabStyles(e.currentTarget)\n })\n }\n }\n}\n\n// Attach (or re-attach after re-render) the See details accordion toggle.\nfunction attachFeaturesAccordion(modalNode) {\n const toggle = modalNode.querySelector('.accordion-toggle')\n if (!toggle || toggle.dataset.listenersAdded === 'true') return\n\n toggle.addEventListener('click', (e) => {\n e.stopPropagation()\n const drawer = modalNode.querySelector('#features-drawer')\n const expandIcon = toggle.querySelector('.accordion-icon-expand')\n const collapseIcon = toggle.querySelector('.accordion-icon-collapse')\n const title = modalNode.querySelector('.accordion-title')\n const isExpanded = toggle.getAttribute('aria-expanded') === 'true'\n\n if (isExpanded) {\n drawer.style.display = 'none'\n expandIcon.style.display = ''\n collapseIcon.style.display = 'none'\n toggle.setAttribute('aria-expanded', 'false')\n if (title) title.textContent = toggle.dataset.labelExpand\n } else {\n drawer.style.display = ''\n expandIcon.style.display = 'none'\n collapseIcon.style.display = ''\n toggle.setAttribute('aria-expanded', 'true')\n if (title) title.textContent = toggle.dataset.labelCollapse\n }\n })\n toggle.dataset.listenersAdded = 'true'\n}\n\n// Swap in re-rendered HTML for the sections that depend on the input amount.\nfunction renderDynamicSections(modalNode, currency, priceString, opts, translations, lang) {\n const eligibility = computeEligibility(priceString, opts)\n\n const container = modalNode.querySelector('#sezzle-modal-container')\n if (container) container.classList.toggle('pi4-only', !eligibility.pi5)\n\n const biweekly = modalNode.querySelector('.payment-cards-biweekly')\n if (biweekly) {\n biweekly.innerHTML = generateBiweeklyInner(eligibility, currency, priceString, opts, translations)\n biweekly.style.display = eligibility.pi4 ? '' : 'none'\n }\n\n const monthly = modalNode.querySelector('.payment-cards-monthly')\n if (monthly) {\n monthly.innerHTML = generateMonthlyInner(eligibility, currency, priceString, opts, translations, lang)\n monthly.style.display = eligibility.lt ? '' : 'none'\n if (eligibility.lt) attachFeaturesAccordion(modalNode)\n }\n\n const terms = modalNode.querySelector('.terms-container')\n if (terms) terms.innerHTML = generateTermsInner(eligibility, translations, opts, lang)\n}\n\nfunction handleMultiPlanInput(modalNode, opts, initialCurrency) {\n const input = modalNode.querySelector('.input-amount')\n const container = modalNode.querySelector('.input-amount-container')\n if (!input || input.dataset.listenersAdded === 'true') return\n\n let currency = initialCurrency\n let debounceTimer = null\n const lang = getLanguage()\n const translations = getTranslations(lang)\n\n input.addEventListener('click', (e) => e.stopPropagation())\n input.addEventListener('focus', (e) => e.stopPropagation())\n\n input.addEventListener('input', (event) => {\n event.stopPropagation()\n if (debounceTimer) clearTimeout(debounceTimer)\n\n debounceTimer = setTimeout(() => {\n const raw = event.target.value.replace(SANITIZE_REGEX, '')\n currency = getCurrency(raw)\n const priceString = raw.replace(CURRENCY_REGEX_GLOBAL, '')\n\n const valid = isInputAmountValid(priceString, opts.minPrice, opts.maxPrice, opts.minPriceLT, opts.maxPriceLT)\n if (!valid) {\n input.classList.add('input-error')\n if (container) container.classList.add('input-error')\n return\n }\n input.classList.remove('input-error')\n if (container) container.classList.remove('input-error')\n\n renderDynamicSections(modalNode, currency, priceString, opts, translations, lang)\n }, INPUT_DEBOUNCE_DELAY_MS)\n })\n\n input.dataset.listenersAdded = 'true'\n}\n\n// Resets the modal to reflect the current widget price. Called when the modal\n// is (re)opened so the input never carries stale text from a prior session and\n// the cards/terms reflect the latest props.price. Eligibility uses the same\n// minPrice=0 relaxation as the initial render so PI4 is always visible on open.\nexport function resetMultiPlanModal(modalNode, rawPrice, opts) {\n if (!modalNode) return\n const lang = getLanguage()\n const translations = getTranslations(lang)\n // Whitelist-sanitize before interpolating into innerHTML downstream, matching\n // the user-input path in handleMultiPlanInput so all entry points share the\n // same trust posture regardless of how the caller sourced rawPrice.\n const sanitized = rawPrice.replace(SANITIZE_REGEX, '')\n const currency = getCurrency(sanitized)\n const priceString = sanitized.replace(CURRENCY_REGEX_GLOBAL, '').trim()\n\n const input = modalNode.querySelector('.input-amount')\n const container = modalNode.querySelector('.input-amount-container')\n if (input) {\n input.value = currency + priceString\n input.classList.remove('input-error')\n }\n if (container) container.classList.remove('input-error')\n\n renderDynamicSections(modalNode, currency, priceString, { ...opts, minPrice: 0 }, translations, lang)\n}\n\nexport function getMultiPlanModal(modalNode, priceString, opts) {\n const currentLang = getLanguage()\n const translations = getTranslations(currentLang)\n // Whitelist-sanitize before interpolating into innerHTML downstream, matching\n // the user-input path in handleMultiPlanInput so all entry points share the\n // same trust posture regardless of how the caller sourced priceString.\n const sanitized = priceString.replace(SANITIZE_REGEX, '')\n const currency = getCurrency(sanitized)\n priceString = sanitized.replace(CURRENCY_REGEX_GLOBAL, '').trim()\n\n // Initial render relaxes minPrice to 0 so that opening the modal always\n // shows at least one biweekly card, even when the configured minPrice\n // exceeds the current price. Strict minPrice still applies to user input\n // via handleMultiPlanInput → isInputAmountValid.\n const eligibility = computeEligibility(priceString, { ...opts, minPrice: 0 })\n\n modalNode.className = 'sezzle-checkout-modal-lightbox sezzle-modal'\n\n const modalContent = `<section class=\"sezzle-checkout-modal-lightbox close-sezzle-modal\" lang=\"${currentLang}\" aria-label=\"${translations.sezzleInformation}\" style=\"display: block;\">\n <div id=\"sezzle-modal-container\" role=\"dialog\" aria-label=\"Sezzle Modal\" class=\"sezzle-checkout-modal-hidden sezzle-multi-plan${eligibility.pi5 ? '' : ' pi4-only'}\">\n <div class=\"sezzle-modal\">\n <div><button role=\"button\" aria-label=\"${translations.closeSezzleModal}\" class=\"close-sezzle-modal\"></button></div>\n <div class=\"sezzle-logo\" title=\"Sezzle\"></div>\n <div id=\"sezzle-modal-core-content\" class=\"sezzle-modal-content\">\n <p class='trusted'>${translations.MultiPlantrusted}</p>\n <header class='sezzle-header'>${translations.MultiPlanheader}</header>\n <div class='payment-plan-wrapper'>\n <p class='sample-payments ${currentLang === 'fr' ? 'sezzle-multi-plan-fr' : ''}'>\n <span class=\"sample-payments-title\">${translations.MultiPlanSeePlans}</span>\n <span class=\"input-amount-container\">\n <label class=\"input-amount-label\" for=\"multi-plan-input-amount\">${translations.MultiPlanAmount}</label>\n <input class='price input-amount' id=\"multi-plan-input-amount\" maxlength=\"12\" value='${currency + priceString}'/>\n </span>\n </p>\n <div class='payment-cards payment-cards-biweekly'${eligibility.pi4 ? '' : ' style=\"display:none\"'}>${generateBiweeklyInner(eligibility, currency, priceString, opts, translations)}</div>\n <div class='payment-cards payment-cards-monthly'${eligibility.lt ? '' : ' style=\"display:none\"'}>${generateMonthlyInner(eligibility, currency, priceString, opts, translations, currentLang)}</div>\n </div>\n <div class='how-to-sezzle'>\n <div class='carousel-header'>\n <div class='how-to-text-wrapper'>\n <span class='how-to-text'>${translations.MultiPlanhowToPay}</span>\n <div class='how-to-logo'>\n <img class=\"how-to-sezzle-logo szl-light-image\" src=\"https://media.sezzle.com/branding/2.0/Sezzle_Logo_FullColor.svg\" alt=\"Sezzle\" style=\"height: 14px; width: 58px;\">\n </div>\n </div>\n <div class='arrows'>\n <button type='button' class='arrow arrow-left disabled' disabled aria-label='${translations.previousSlide}'>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.5 16.4078C14.825 16.0828 14.825 15.5578 14.5 15.2328L11.2667 11.9995L14.5 8.76614C14.825 8.44114 14.825 7.91614 14.5 7.59114C14.175 7.26614 13.65 7.26614 13.325 7.59114L9.5 11.4161C9.175 11.7411 9.175 12.2661 9.5 12.5911L13.325 16.4161C13.6417 16.7328 14.175 16.7328 14.5 16.4078Z\" fill=\"#8333D4\"/></svg>\n </button>\n <button type='button' class='arrow arrow-right' aria-label='${translations.nextSlide}'>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.5 7.59219C9.175 7.91719 9.175 8.44219 9.5 8.76719L12.7333 12.0005L9.5 15.2339C9.175 15.5589 9.175 16.0839 9.5 16.4089C9.825 16.7339 10.35 16.7339 10.675 16.4089L14.5 12.5839C14.825 12.2589 14.825 11.7339 14.5 11.4089L10.675 7.58386C10.3583 7.26719 9.825 7.26719 9.5 7.59219Z\" fill=\"#8333D4\"/></svg>\n </button>\n </div>\n </div>\n <div class='carousel position-1'>\n <div class='carousel-item'><div class='carousel-item-content'><div class='step-number'><span class='step-number-content'>1</span></div><div class='step-name'>${translations.MultiPlanStep1}</div></div></div>\n <div class='carousel-item'><div class='carousel-item-content'><div class='step-number'><span class='step-number-content'>2</span></div><div class='step-name'>${translations.MultiPlanStep2}</div></div></div>\n <div class='carousel-item'><div class='carousel-item-content'><div class='step-number'><span class='step-number-content'>3</span></div><div class='step-name'>${translations.MultiPlanStep3}</div></div></div>\n </div>\n <div class='carousel-dots' role=\"tablist\" aria-label=\"${translations.carouselPosition}\">\n <div class=\"dot active\" role=\"tab\" aria-selected=\"true\" aria-label=\"${translations.slide} 1\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#8333D4\"/></svg></div>\n <div class=\"dot\" role=\"tab\" aria-selected=\"false\" aria-label=\"${translations.slide} 2\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#8333D4\"/></svg></div>\n <div class=\"dot\" role=\"tab\" aria-selected=\"false\" aria-label=\"${translations.slide} 3\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#8333D4\"/></svg></div>\n </div>\n </div>\n <div class=\"terms-container\">${generateTermsInner(eligibility, translations, opts, currentLang)}</div>\n </div>\n </div>\n </div>\n</section>`\n modalNode.innerHTML = modalContent\n handleCarousel(modalNode)\n if (eligibility.lt) attachFeaturesAccordion(modalNode)\n handleMultiPlanInput(modalNode, opts, currency)\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { getAPModal } from '../Helpers/helper'\nimport { getMultiPlanModal, handleCarousel, resetMultiPlanModal } from './MultiPlanModal'\nimport './modal.scss'\n\nexport default class Modal extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n modalElement: null,\n isModalVisible: false\n }\n }\n\n static getDerivedStateFromProps(props, state) {\n if (!state.modalElement) {\n let modalElement = document.createElement('div')\n if (props.modalType === 'afterpay') {\n if (document.querySelector('.sezzle-ap-modal')) {\n modalElement = document.querySelector('.sezzle-ap-modal')\n } else {\n getAPModal(modalElement)\n }\n } else {\n getMultiPlanModal(modalElement, props.price, {\n minPrice: props.minPrice,\n maxPrice: props.maxPrice,\n minPriceLT: props.minPriceLT,\n maxPriceLT: props.maxPriceLT,\n minAPR: props.minAPR,\n medianAPR: props.medianAPR,\n maxAPR: props.maxAPR,\n termsToShow: props.termsToShow,\n numberOfPayments: props.numberOfPayments\n })\n }\n state = { ...state, modalElement }\n }\n state.modalElement.style.display = state.isModalVisible ? 'block' : 'none'\n return state\n }\n\n componentDidMount() {\n document.querySelector('html').appendChild(this.state.modalElement)\n\n // Scope queries to this Modal instance's element so handlers don't bleed\n // across Sezzle/Afterpay modal instances when both are rendered.\n const sezzleModal = this.state.modalElement.querySelector(\n this.props.modalType === 'afterpay' ? '.sezzle-ap-modal' : '.sezzle-modal'\n )\n if (sezzleModal) {\n sezzleModal.addEventListener('click', (event) => event.stopPropagation())\n }\n\n // Include modalElement itself plus any descendants carrying the\n // close-sezzle-modal class (the overlay <section> and the X button).\n const closeTargets = [\n this.state.modalElement,\n ...this.state.modalElement.querySelectorAll('.close-sezzle-modal')\n ].filter((el) => el.classList.contains('close-sezzle-modal'))\n closeTargets.forEach((el) =>\n el.addEventListener('click', (event) => this.modalCloseHandler(event))\n )\n }\n\n componentDidUpdate(prevProps, prevState) {\n this.toggleModalVisibility(this.props.toggleModalVisibility)\n }\n\n toggleModalVisibility = (isModalVisible) => {\n if (isModalVisible !== this.state.isModalVisible) {\n this.setState({ ...this.state, isModalVisible })\n\n // On open: reset input + cards to the current props.price (covers both\n // stale typed input from a prior open and runtime price prop changes),\n // and reset the carousel to the first slide.\n if (isModalVisible && this.props.modalType !== 'afterpay' && this.state.modalElement) {\n resetMultiPlanModal(this.state.modalElement, this.props.price, {\n minPrice: this.props.minPrice,\n maxPrice: this.props.maxPrice,\n minPriceLT: this.props.minPriceLT,\n maxPriceLT: this.props.maxPriceLT,\n minAPR: this.props.minAPR,\n medianAPR: this.props.medianAPR,\n maxAPR: this.props.maxAPR,\n termsToShow: this.props.termsToShow,\n numberOfPayments: this.props.numberOfPayments\n })\n handleCarousel(this.state.modalElement)\n }\n }\n }\n\n modalCloseHandler = (event) => {\n this.props.callbackModalClose(this.props.modalType)\n }\n\n render() {\n return null\n }\n}\n\nModal.propTypes = {\n toggleModalVisibility: PropTypes.bool,\n modalType: PropTypes.string,\n callbackModalClose: PropTypes.func,\n numberOfPayments: PropTypes.number,\n price: PropTypes.string,\n minPrice: PropTypes.number,\n maxPrice: PropTypes.number,\n minPriceLT: PropTypes.number,\n maxPriceLT: PropTypes.number,\n minAPR: PropTypes.number,\n medianAPR: PropTypes.number,\n maxAPR: PropTypes.number,\n termsToShow: PropTypes.object\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { getFormattedPrice, PI5_MIN_PRICE } from '../Helpers/renderFunctions'\nimport '../index.scss'\nimport { getLanguage, getTranslations, parsePriceString, parsePrice } from '../Helpers/helper'\n// eslint-disable-next-line no-unused-vars\nimport Modal from './Modal'\n\nexport default class SezzleWidgetText extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n config: this.props.config,\n sezzle: false,\n afterpay: false,\n modalsToShow: ['sezzle', 'afterpay']\n }\n }\n\n static getDerivedStateFromProps(props, state) {\n const config = props.config\n state = { ...state, config }\n\n return state\n }\n\n renderSezzleWidgetText() {\n const logoURLs = {\n light: 'https://media.sezzle.com/branding/2.0/Sezzle_Logo_FullColor.svg',\n dark: 'https://media.sezzle.com/branding/2.0/Sezzle_Logo_FullColor_WhiteWM.svg',\n 'black-flat':\n 'https://media.sezzle.com/branding/2.0/Sezzle_Logo_BlackAlt.svg',\n 'white-flat':\n 'https://media.sezzle.com/branding/2.0/Sezzle_Logo_WhiteAlt.svg'\n }\n const language = getLanguage()\n\n const translations = getTranslations(language)\n\n const priceFloat = parsePrice(\n parsePriceString(this.state.config.price)\n )\n const includeAPModal = !!this.state.config.includeAPModal\n const minPriceLT = this.state.config.minPriceLT || 0\n const ltEnabled = minPriceLT > 0\n const upperBound = ltEnabled\n ? this.state.config.maxPriceLT\n : this.state.config.maxPrice\n if (priceFloat <= 0 || priceFloat > upperBound) {\n return\n }\n\n // <$50 forces 4-installment messaging (PI5 minimum is $50). At or above\n // $50, honor the config: 4 if explicitly set, otherwise 5.\n const effectiveNumberOfPayments =\n priceFloat >= PI5_MIN_PRICE && this.state.config.numberOfPayments !== 4\n ? 5\n : 4\n\n let widgetTemplate\n if (ltEnabled && priceFloat >= minPriceLT) {\n widgetTemplate = translations.longTerm\n } else if (effectiveNumberOfPayments === 5 && includeAPModal) {\n widgetTemplate = translations.dualInstall\n } else {\n widgetTemplate = translations.widget\n }\n\n // Resolve curly-brace placeholders to plain strings before splitting on\n // %% for component substitution. Empty when the feature is off.\n const apDualInstallText = includeAPModal ? translations.apDualInstall : ''\n const thresholdPriceText =\n this.state.config.minPrice > 0 && priceFloat < this.state.config.minPrice\n ? translations.thresholdPrice.replace(\n '%%min-price%%',\n `$${this.state.config.minPrice}`\n )\n : ''\n\n widgetTemplate = widgetTemplate\n .replace('{numberOfPayments}', effectiveNumberOfPayments)\n .replace('{apDualInstallText}', apDualInstallText)\n .replace('{thresholdPriceText}', thresholdPriceText)\n\n const subtemplates = []\n widgetTemplate.split('%%').forEach((subTemplate, index) => {\n switch (subTemplate) {\n case 'price':\n // eslint-disable-next-line no-case-declarations\n const priceElement = (\n <span\n className=\"sezzle-payment-amount sezzle-button-text\"\n key={index}\n >\n {getFormattedPrice(this.state.config.price, effectiveNumberOfPayments, this.state.config.minPriceLT, this.state.config.maxPriceLT, this.state.config.medianAPR, this.state.config.termsToShow)}\n </span>\n )\n subtemplates.push(priceElement)\n break\n case 'logo':\n // eslint-disable-next-line no-case-declarations\n const logoElement = (\n <img\n alt=\"Sezzle\"\n className={`sezzle-logo szl-${\n this.state.config.theme === 'dark' ||\n this.state.config.theme === 'white-flat'\n ? 'dark'\n : 'light'\n }-image`}\n src={logoURLs[this.state.config.theme] || logoURLs.light}\n style={{\n transformOrigin: `top-${this.state.config.alignment}`,\n transform: `scale(${this.state.config.logoSize})`,\n cursor: 'pointer',\n width: '74px',\n height: '18px'\n }}\n key={index}\n onClick={() => this.openModal('sezzle')}\n />\n )\n subtemplates.push(logoElement)\n break\n case 'info':\n // eslint-disable-next-line no-case-declarations\n const iconSize = this.state.config.fontSize || 14\n // eslint-disable-next-line no-case-declarations\n const infoElement = (\n <div\n aria-label={`${translations.clickToLearnMore}`}\n className=\"sezzle-info-icon\"\n key={index}\n onClick={() => this.openModal('sezzle')}\n role=\"button\"\n >\n <svg width={iconSize} height={iconSize} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M7 0C3.13 0 0 3.13 0 7s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7zm0 12.6A5.6 5.6 0 1 1 7 1.4a5.6 5.6 0 0 1 0 11.2zM6.3 3.5h1.4v1.4H6.3V3.5zm0 2.8h1.4v4.2H6.3V6.3z\" fill=\"currentColor\"/>\n </svg>\n </div>\n )\n subtemplates.push(infoElement)\n break\n case 'afterpay-logo':\n // eslint-disable-next-line no-case-declarations\n const apLogo = (\n <img\n className=\"sezzle-ap-logo ap-modal-info-link no-sezzle-info\"\n src={\n 'https://media.sezzle.com/sezzle-credit-website-assets/ap-badge-black-on-mint.svg'\n }\n onClick={(event) => {\n event.stopPropagation()\n this.openModal('afterpay')\n }}\n key={index}\n alt=\"Afterpay\"\n />\n )\n subtemplates.push(apLogo)\n break\n default:\n subtemplates.push(subTemplate)\n }\n })\n return subtemplates\n }\n\n openModal(modalType) {\n modalType === 'afterpay'\n ? this.setState({ afterpay: true })\n : this.setState({ sezzle: true })\n }\n\n closeModal(modalType) {\n modalType === 'afterpay'\n ? this.setState({ afterpay: false })\n : this.setState({ sezzle: false })\n }\n\n render() {\n return (\n <div\n className={`sezzle-shopify-info-button sezzle-${\n this.state.config.merchantId || ''\n }`}\n >\n <div\n aria-haspopup=\"dialog\"\n role=\"button\"\n tabIndex=\"0\"\n className={`sezzle-checkout-button-wrapper sezzle-modal-link sezzle-${\n this.state.config.merchantId || ''\n } sezzle-${this.state.config.alignment || 'auto'}`}\n style={{ cursor: 'pointer' }}\n onClick={() => this.openModal('sezzle')}\n >\n <div\n className={`sezzle-button-text sezzle-${\n this.state.config.alignment || 'auto'\n } szl-${\n this.state.config.theme === 'dark' ||\n this.state.config.theme === 'white-flat'\n ? 'dark'\n : 'light'\n }`}\n style={{\n fontWeight: this.state.config.fontWeight || 500,\n fontFamily: this.state.config.fontFamily || 'inherit',\n fontSize: (this.state.config.fontSize || 14) + 'px',\n color: this.state.config.textColor || 'inherit'\n }}\n >\n {this.renderSezzleWidgetText()}\n </div>\n </div>\n {this.state.modalsToShow.map((modal, index) => (\n <Modal\n modalType={modal}\n key={index}\n toggleModalVisibility={this.state[modal]}\n callbackModalClose={(modal) => this.closeModal(modal)}\n minPrice={this.state.config.minPrice}\n maxPrice={this.state.config.maxPrice}\n minPriceLT={this.state.config.minPriceLT}\n maxPriceLT={this.state.config.maxPriceLT}\n minAPR={this.state.config.minAPR}\n medianAPR={this.state.config.medianAPR}\n maxAPR={this.state.config.maxAPR}\n termsToShow={this.state.config.termsToShow}\n price={this.state.config.price}\n numberOfPayments={this.state.config.numberOfPayments}\n />\n ))}\n </div>\n )\n }\n}\n\nSezzleWidgetText.propTypes = {\n config: PropTypes.object\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\n// eslint-disable-next-line no-unused-vars\nimport SezzleWidget from './Components/SezzleWidget'\nimport { resolveLTConfig } from './Helpers/ltConfig'\nimport './index.scss'\n\nexport default class SezzleWidgetWrapper extends React.Component {\n constructor(props) {\n super(props)\n // Resolve LT options from the LTgroup alias preset, overlaid with any\n // explicitly-set LT props. Returns a fully-disabled config when neither\n // LTgroup nor minPriceLT is provided.\n const ltConfig = resolveLTConfig({\n LTgroup: this.props.LTgroup,\n minPriceLT: this.props.minPriceLT,\n maxPriceLT: this.props.maxPriceLT,\n minAPR: this.props.minAPR,\n medianAPR: this.props.medianAPR,\n maxAPR: this.props.maxAPR,\n termsToShow: this.props.termsToShow\n })\n this.state = {\n sezzleConfig: {\n price: this.props.price || 0,\n merchantId: this.props.merchantId || '',\n includeAPModal: this.props.includeAPModal || false,\n minPrice: this.props.minPrice || 0,\n maxPrice: this.props.maxPrice || 2500,\n minPriceLT: ltConfig.minPriceLT,\n maxPriceLT: ltConfig.maxPriceLT,\n minAPR: ltConfig.minAPR,\n medianAPR: ltConfig.medianAPR,\n maxAPR: ltConfig.maxAPR,\n termsToShow: ltConfig.termsToShow,\n theme: this.props.theme || 'light',\n alignment: this.props.alignment || 'auto',\n fontWeight: this.props.fontWeight || 500,\n fontFamily: this.props.fontFamily || 'inherit',\n fontSize: this.props.fontSize || 14,\n textColor: this.props.textColor || 'inherit',\n logoSize: this.props.logoSize || 1,\n modalsToShow: ['sezzle'],\n numberOfPayments: this.props.numberOfPayments === 4 ? 4 : 5\n }\n }\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.price !== state.sezzleConfig.price) {\n const updateState = state\n updateState.sezzleConfig.price = props.price\n return updateState\n }\n state = { ...state }\n if (\n props.includeAPModal &&\n state.sezzleConfig.modalsToShow.indexOf('afterpay') === -1\n ) {\n state.sezzleConfig.modalsToShow.push('afterpay')\n }\n return state\n }\n\n render() {\n return (\n <div>\n <SezzleWidget config={this.state.sezzleConfig} />\n </div>\n )\n }\n}\n\nSezzleWidgetWrapper.propTypes = {\n price: PropTypes.string.isRequired,\n merchantId: PropTypes.string.isRequired,\n theme: PropTypes.string,\n alignment: PropTypes.string,\n fontWeight: PropTypes.number,\n fontFamily: PropTypes.string,\n fontSize: PropTypes.number,\n textColor: PropTypes.string,\n logoSize: PropTypes.number,\n minPrice: PropTypes.number,\n maxPrice: PropTypes.number,\n LTgroup: PropTypes.string,\n minPriceLT: PropTypes.number,\n maxPriceLT: PropTypes.number,\n minAPR: PropTypes.number,\n medianAPR: PropTypes.number,\n maxAPR: PropTypes.number,\n termsToShow: PropTypes.object,\n includeAPModal: PropTypes.bool,\n numberOfPayments: PropTypes.number\n}\n"],"names":["e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","supportedLanguages","parsePriceString","price","formattedPrice","isNumeric","isAlphabet","parsePrice","parseFloat","isNaN","isFinite","test","getLanguage","lang","document","querySelector","substring","toLowerCase","indexOf","getAPModal","_x","_getAPModal","_callee","modalNode","currentLang","url","response","_t","_context","className","concat","fetch","ok","Error","status","text","innerHTML","console","error","getCurrency","priceString","defaultCurrency","undefined","CURRENCY_REGEX","currencyMatch","match","formatNumberForLocale","str","String","replace","getTranslations","translationsMap","en","enTranslations","fr","frTranslations","es","esTranslations","DEFAULT_LT_GROUP","deepFreeze","obj","_i","_Object$values","values","_typeof","isFrozen","freeze","LT_GROUPS","minPriceLT","maxPriceLT","minAPR","medianAPR","maxAPR","termsToShow","b","normalizeGroup","alias","key","warn","keys","map","k","join","isValidTermsToShow","Array","isArray","entries","every","arr","Number","resolveTermsToShow","provided","presetTerms","_objectSpread","pickPrice","fallback","resolveLTConfig","props","explicitGroup","LTgroup","minPriceLTSet","group","groupDefaults","selectTermsToShow","termsConfig","thresholds","filter","sort","selected","_iterator","_createForOfIteratorHelper","_step","s","threshold","err","termMonthBounds","months","flat","min","Math","_toConsumableArray","max","PI5_MIN_PRICE","isProductEligibleLT","priceText","isProductEligiblePI4","minPrice","maxPrice","isProductEligiblePI5","numberOfPayments","isInputAmountValid","upper","addDelimiters","parsedPrice","toFixed","calculateMonthlyWithInterest","term","APR","rate","numerator","pow","denominator","interestPayment","getFormattedPrice","priceReplacer","formatter","sezzleInstallmentPrice","terms","sezzleInstallmentFormattedPrice","CAROUSEL_MIN_TAB","CAROUSEL_MAX_TAB","INPUT_DEBOUNCE_DELAY_MS","CURRENCY_REGEX_GLOBAL","SANITIZE_REGEX","computeEligibility","opts","pi4","pi5","lt","formatLTAmount","currency","generateBiweeklyCard","translations","classModifier","dashWidth","installmentPrice","pillLabel","MultiPlanpayIn","installments","isFirst","isLast","weekNumber","dueText","today","MultiPlanweeks","push","MultiPlanevery2Weeks","generateMonthlyCard","monthly","total","interest","aprDisplay","LTperMonth","LTmonthlyAmount","LTtermLength","LTreadApr","LTpercent","LTsampleApr","LTinterest","LTadjustedTotal","featureCheckSvg","generateBiweeklyInner","eligibility","generateMonthlyInner","cards","seeDetails","LTseeDetails","hideDetails","LThideDetails","LTsingleFeatureAffordable","LTsingleFeaturePrequalify","LTsingleFeatureTrusted","generateTermsInner","webBank","productTerms","webBankTermsPI5","webBankTermsPI4","webBankTerms","linkToCompleteTerms","ltTerms","bounds","ltTerms3","LTterms3","terms1","termsHiw","terms2","updateArrowStates","leftArrow","rightArrow","activeTab","leftDisabled","rightDisabled","disabled","classList","toggle","updateDotStates","dots","isActive","setAttribute","updateCarouselPosition","carouselWrapper","carousel","handleCarouselTabStyles","btn","_carouselWrapper$quer","contains","closest","parseInt","dataset","arrows","parentElement","querySelectorAll","from","find","arrow","children","handleCarousel","getElementsByClassName","isInitialized","carouselInitialized","_carouselWrapper$quer2","addEventListener","stopPropagation","currentTarget","attachFeaturesAccordion","listenersAdded","drawer","expandIcon","collapseIcon","title","isExpanded","getAttribute","style","display","textContent","labelExpand","labelCollapse","renderDynamicSections","container","biweekly","handleMultiPlanInput","initialCurrency","input","debounceTimer","event","clearTimeout","setTimeout","raw","target","valid","add","remove","resetMultiPlanModal","rawPrice","sanitized","trim","getMultiPlanModal","modalContent","sezzleInformation","closeSezzleModal","MultiPlantrusted","MultiPlanheader","MultiPlanSeePlans","MultiPlanAmount","MultiPlanhowToPay","previousSlide","nextSlide","MultiPlanStep1","MultiPlanStep2","MultiPlanStep3","carouselPosition","slide","Modal","_React$Component","_this","_classCallCheck","_callSuper","_defineProperty","isModalVisible","state","setState","modalType","modalElement","callbackModalClose","_inherits","_createClass","componentDidMount","_this2","appendChild","sezzleModal","closeTargets","el","forEach","modalCloseHandler","componentDidUpdate","prevProps","prevState","toggleModalVisibility","render","getDerivedStateFromProps","createElement","React","Component","propTypes","PropTypes","bool","string","func","number","object","SezzleWidgetText","config","sezzle","afterpay","modalsToShow","renderSezzleWidgetText","logoURLs","light","dark","language","priceFloat","includeAPModal","ltEnabled","upperBound","effectiveNumberOfPayments","widgetTemplate","longTerm","dualInstall","widget","apDualInstallText","apDualInstall","thresholdPriceText","thresholdPrice","subtemplates","split","subTemplate","index","priceElement","logoElement","alt","theme","src","transformOrigin","alignment","transform","logoSize","cursor","width","height","onClick","openModal","iconSize","fontSize","infoElement","clickToLearnMore","role","viewBox","fill","xmlns","fillRule","clipRule","apLogo","closeModal","_this3","merchantId","tabIndex","fontWeight","fontFamily","color","textColor","modal","SezzleWidgetWrapper","ltConfig","sezzleConfig","SezzleWidget","updateState","isRequired"],"mappings":"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"}
|