{"version":3,"file":"chunks/e9c108f9a47294.js","mappings":";+oBACA,gnGAAAA,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,+xBAEA,IAAMC,EAAmB,sBACnBC,GAAyB,iBACzBD,EAAgB,sBAAuBE,EAAAA,IAAqB,cAC5DF,EAAgB,kBAAkB,YAAe,SAAZG,YAA+B,kBACpEH,EAAgB,UAAU,gBAAGI,EAAK,EAALA,MAAOD,EAAY,EAAZA,aAAY,OAClDE,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAYF,EAAOD,GAAc,kBAChDH,EAAgB,gBAAiBE,EAAAA,IAAqB,cACtDF,EAAgB,kBAAmBE,EAAAA,IAAqB,GAGxDK,EAAiB,SACrBC,EACAL,EAAY,OACVM,EAAc,EAAdA,eAAgBC,EAAc,EAAdA,eAAgBN,EAAK,EAALA,MAAK,OAEvCO,OAAOC,KAAKX,GAA2BY,SAAQ,SAACC,GAC9C,IAAMC,EAAkBP,EAAQQ,cAAcF,GAC9CC,EAAgBE,UAAYhB,EAA0Ba,GACpD,CACEX,aAAAA,EACAM,eAAgBS,KAAKC,IAAIV,EAAgB,GACzCC,eAAAA,EACAN,MAAAA,GAEFW,EAAgBE,UAEpB,GAAE,EAEEG,EAAS,eA9Bf,EA8Be,GA9Bf,EA8Be,UAAG,WAAOC,EAASC,EAAWd,GAAO,2FACLa,EAAO,gBAA5ClB,EAAY,EAAZA,cAAcoB,EAAY,EAAZA,cACLC,SAASF,MACxBf,EAAeC,EAASL,EAAcoB,EAAaC,SAASF,KAC5Dd,EAAQiB,UAAUC,OAAO,YAC1B,0CAnCH,+KAoCC,gBANc,0CAQMC,EAAmB,GACtC,WAAYnB,EAAS,GAAwB,IAAtBa,EAAO,EAAPA,QAASC,EAAS,EAATA,uGAAS,SACvCF,EAAUC,EAASC,EAAWd,EAChC,kLCxCF,IAAMoB,EAAwB,MACxBC,EAAmB,GACnBC,EAA0B,CAC9BC,WAAY,aACZC,WAAY,cAGD9B,EAAwB,SAAH,EAEhC+B,GACG,QAGF,KAFgC,CAHjB,EAAdxB,eAA8B,EAAdC,gBAGgDwB,KAChE,SAACC,GAAQ,OAAK9B,EAAAA,EAAAA,IAAiB8B,EAAS,MACzC,o5BAFMJ,EAAU,KAAEC,EAAU,KAI7B,OAAOI,EAAAA,EAAAA,IACL,CAAEL,WAAAA,EAAYC,WAAAA,GACdC,EACAH,EAEJ,EAEaO,EAAqB,SAAC5B,EAAgBC,GACjD,OAAOA,GAAkC,GAAH,OAAMD,EAAc,IAC5D,EAIaH,EAAc,SAACF,GAA2C,OAArB,UAAH,6CAAGwB,KAC/BA,GACP,IAAVxB,IACCA,EAAQ,GAAM,GAAKA,EAAQyB,GACxBzB,EAAMkC,QAAQ,GACdlC,CAAK","sources":["webpack:///./resources/js/components/generic/price-block-localized.ts","webpack:///./resources/js/components/generic/pricing-utils.ts"],"sourcesContent":["import { getStrWithCommas } from \"../../utils/string\";\nimport { replaceTierLimitsText, formatPrice } from \"./pricing-utils\";\n\nconst CLASSNAME_PREFIX = \".localized_pricing_\";\nconst CLASSNAME_TO_REPLACE_FUNC = {\n [`${CLASSNAME_PREFIX}heading > .heading`]: replaceTierLimitsText,\n [`${CLASSNAME_PREFIX}currency_code`]: ({ currencyCode }) => currencyCode,\n [`${CLASSNAME_PREFIX}price`]: ({ price, currencyCode }) =>\n getStrWithCommas(formatPrice(price, currencyCode)),\n [`${CLASSNAME_PREFIX}primary_text`]: replaceTierLimitsText,\n [`${CLASSNAME_PREFIX}secondary_text`]: replaceTierLimitsText,\n};\n\nconst doReplacements = (\n domRoot,\n currencyCode,\n { unitLimitLower, unitLimitUpper, price }\n) =>\n Object.keys(CLASSNAME_TO_REPLACE_FUNC).forEach((sel) => {\n const replacementNode = domRoot.querySelector(sel);\n replacementNode.innerText = CLASSNAME_TO_REPLACE_FUNC[sel](\n {\n currencyCode,\n unitLimitLower: Math.max(unitLimitLower, 0),\n unitLimitUpper,\n price,\n },\n replacementNode.innerText\n );\n });\n\nconst onPricing = async (pricing, tierStart, domRoot) => {\n const { currencyCode, pricingTiers } = await pricing;\n if (pricingTiers[parseInt(tierStart)]) {\n doReplacements(domRoot, currencyCode, pricingTiers[parseInt(tierStart)]);\n domRoot.classList.remove(\"loading\");\n }\n};\n\nexport default class PriceBlockLocalized {\n constructor(domRoot, { pricing, tierStart }) {\n onPricing(pricing, tierStart, domRoot);\n }\n}\n","import { getStrWithCommas, replaceText } from \"../../utils/string\";\n\nconst DEFAULT_CURRENCY_CODE = \"USD\";\nconst FORMAT_MAX_PRICE = 10;\nconst REPLACE_TIER_LIMITS_MAP = {\n lowerLimit: \"lowerLimit\",\n upperLimit: \"upperlimit\",\n};\n\nexport const replaceTierLimitsText = (\n { unitLimitLower, unitLimitUpper },\n inputText\n) => {\n const [lowerLimit, upperLimit] = [unitLimitLower, unitLimitUpper].map(\n (limitVal) => getStrWithCommas(limitVal)\n );\n\n return replaceText(\n { lowerLimit, upperLimit },\n inputText,\n REPLACE_TIER_LIMITS_MAP\n );\n};\n\nexport const sanitizeUpperLimit = (unitLimitLower, unitLimitUpper) => {\n return unitLimitUpper ? unitLimitUpper : `${unitLimitLower}+`;\n};\n\n// show 2 decimal places in price if USD, not zero, and:\n// either a fractional amount or under $10\nexport const formatPrice = (price, currencyCode = DEFAULT_CURRENCY_CODE) =>\n currencyCode === DEFAULT_CURRENCY_CODE &&\n price !== 0 &&\n (price % 1 !== 0 || price < FORMAT_MAX_PRICE)\n ? price.toFixed(2)\n : price;\n"],"names":["i","CLASSNAME_PREFIX","CLASSNAME_TO_REPLACE_FUNC","replaceTierLimitsText","currencyCode","price","getStrWithCommas","formatPrice","doReplacements","domRoot","unitLimitLower","unitLimitUpper","Object","keys","forEach","sel","replacementNode","querySelector","innerText","Math","max","onPricing","pricing","tierStart","pricingTiers","parseInt","classList","remove","PriceBlockLocalized","DEFAULT_CURRENCY_CODE","FORMAT_MAX_PRICE","REPLACE_TIER_LIMITS_MAP","lowerLimit","upperLimit","inputText","map","limitVal","replaceText","sanitizeUpperLimit","toFixed"],"sourceRoot":""}