@alma/widgets 4.0.7 → 4.0.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"widgets.umd.js","sources":["../src/types.ts","../src/utils/index.ts","../src/utils/polyfills.js","../node_modules/preact/dist/preact.module.js","../node_modules/preact/hooks/dist/hooks.module.js","../node_modules/preact/compat/dist/compat.module.js","../node_modules/preact/compat/client.mjs","../node_modules/tslib/tslib.es6.mjs","../node_modules/@formatjs/fast-memoize/lib/index.js","../node_modules/@formatjs/ecma402-abstract/lib/utils.js","../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","../node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../node_modules/intl-messageformat/lib/src/error.js","../node_modules/intl-messageformat/lib/src/formatters.js","../node_modules/intl-messageformat/lib/src/core.js","../node_modules/@formatjs/intl/lib/src/error.js","../node_modules/@formatjs/intl/lib/src/utils.js","../node_modules/@formatjs/intl/lib/src/message.js","../node_modules/@formatjs/intl/lib/src/dateTime.js","../node_modules/@formatjs/intl/lib/src/displayName.js","../node_modules/@formatjs/intl/lib/src/list.js","../node_modules/@formatjs/intl/lib/src/plural.js","../node_modules/@formatjs/intl/lib/src/relativeTime.js","../node_modules/@formatjs/intl/lib/src/number.js","../node_modules/@formatjs/intl/lib/src/create-intl.js","../node_modules/react-intl/lib/src/utils.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/react-intl/lib/src/components/injectIntl.js","../node_modules/react-intl/lib/src/components/useIntl.js","../node_modules/react-intl/lib/src/components/createFormattedComponent.js","../node_modules/react-intl/lib/src/components/createIntl.js","../node_modules/react-intl/lib/src/components/provider.js","../node_modules/react-intl/lib/src/components/message.js","../node_modules/react-intl/lib/index.js","../src/intl/utils.ts","../src/intl/IntlProvider.tsx","../src/utils/utilsForStorage.ts","../src/hooks/useSessionStorage.tsx","../src/utils/fetch.ts","../src/utils/filterEligibility.ts","../src/hooks/useFetchEligibility.ts","../node_modules/css-mediaquery/index.js","../node_modules/matchmediaquery/index.js","../node_modules/hyphenate-style-name/index.js","../node_modules/shallow-equal/dist/index.modern.mjs","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/react-responsive/dist/esm/index.js","../node_modules/classnames/index.js","../src/components/LoadingIndicator/LoadingIndicator.tsx","../node_modules/no-scroll/index.js","../node_modules/react-modal/lib/helpers/tabbable.js","../node_modules/react-modal/lib/helpers/focusManager.js","../node_modules/react-modal/lib/helpers/scopeTab.js","../node_modules/warning/warning.js","../node_modules/exenv/index.js","../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../node_modules/react-modal/lib/helpers/ariaAppHider.js","../node_modules/react-modal/lib/helpers/classList.js","../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../node_modules/react-modal/lib/helpers/bodyTrap.js","../node_modules/react-modal/lib/components/ModalPortal.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-modal/lib/components/Modal.js","../node_modules/react-modal/lib/index.js","../src/assets/Cross.tsx","../src/Widgets/EligibilityModal/classNames.const.ts","../src/components/Modal/index.tsx","../src/components/SkipLinks/index.tsx","../node_modules/date-fns/constants.js","../node_modules/date-fns/constructFrom.js","../node_modules/date-fns/toDate.js","../node_modules/date-fns/_lib/normalizeDates.js","../node_modules/date-fns/startOfDay.js","../node_modules/date-fns/constructNow.js","../node_modules/date-fns/isSameDay.js","../node_modules/date-fns/isToday.js","../node_modules/date-fns/secondsToMilliseconds.js","../src/utils/paymentPlanStrings.tsx","../src/Widgets/EligibilityModal/components/EligibilityPlansButtons/index.tsx","../src/components/Installments/Installment/index.tsx","../src/components/Installments/TotalBlock/index.tsx","../src/Widgets/EligibilityModal/components/Schedule/index.tsx","../src/assets/almaLogo.tsx","../src/assets/cards/amex.tsx","../src/assets/cards/cb.tsx","../src/assets/cards/mastercard.tsx","../src/assets/cards/visa.tsx","../src/Widgets/EligibilityModal/components/Cards/index.tsx","../src/Widgets/EligibilityModal/components/Info/index.tsx","../src/Widgets/EligibilityModal/components/Title/index.tsx","../src/Widgets/EligibilityModal/DesktopModal/index.tsx","../src/Widgets/EligibilityModal/MobileModal/index.tsx","../src/Widgets/EligibilityModal/index.tsx","../src/Widgets/EligibilityModal/ModalContainer.tsx","../src/components/Loader/index.tsx","../src/hooks/useAnnounceText.ts","../src/hooks/useAnimationInstructions.ts","../src/hooks/useButtonAnimation.ts","../src/utils/merchantOrderPreferences.ts","../src/Widgets/PaymentPlans/classNames.const.ts","../src/Widgets/PaymentPlans/index.tsx","../src/widgets_controller.tsx","../src/consts.ts","../src/index.ts"],"sourcesContent":["import React from 'react'\n\nimport { ApiMode } from '@/consts'\n\nexport type ApiConfig = { domain: ApiMode; merchantId: string }\n\nexport enum widgetTypes {\n PaymentPlans = 'PaymentPlans',\n Modal = 'Modal',\n}\nexport enum statusResponse {\n PENDING = 'pending',\n SUCCESS = 'success',\n FAILED = 'failed',\n}\n\nexport type ConfigPlan = {\n installmentsCount: number\n deferredDays?: number\n deferredMonths?: number\n minAmount: number\n maxAmount: number\n}\n\nexport type PaymentPlan = {\n customer_fee: number\n customer_interest: number\n due_date: number\n purchase_amount: number\n total_amount: number\n refunded_interest?: number\n}\nexport type EligibilityPlan = {\n annual_interest_rate?: number\n customer_total_cost_amount: number\n customer_total_cost_bps: number\n deferred_days: number\n deferred_months: number\n eligible: boolean\n reasons?: Record<string, unknown>\n installments_count: number\n payment_plan?: PaymentPlan[]\n purchase_amount: number\n constraints?: {\n purchase_amount?: { minimum: number; maximum: number }\n }\n}\n\nexport type ErrorResponse = {\n message?: string\n error_code?: string\n}\n\nexport type EligibilityPlanToDisplay = EligibilityPlan & {\n minAmount?: number\n maxAmount?: number\n}\n\nexport enum Locale {\n en = 'en',\n 'fr-FR' = 'fr-FR',\n fr = 'fr',\n 'de-DE' = 'de-DE',\n de = 'de',\n it = 'it',\n 'it-IT' = 'it-IT',\n es = 'es',\n 'es-ES' = 'es-ES',\n pt = 'pt',\n 'pt-PT' = 'pt-PT',\n nl = 'nl',\n 'nl-NL' = 'nl-NL',\n 'nl-BE' = 'nl-BE',\n}\n\nexport type Card = 'cb' | 'amex' | 'mastercard' | 'visa'\n\nexport type PaymentPlanWidgetOptions = {\n container: string\n hideIfNotEligible?: boolean\n locale?: Locale\n cards?: Card[]\n monochrome?: boolean\n plans?: ConfigPlan[]\n purchaseAmount: number\n suggestedPaymentPlan?: number | number[]\n transitionDelay?: number\n hideBorder?: boolean\n customerBillingCountry?: string\n customerShippingCountry?: string\n onModalClose?: (event: React.MouseEvent | React.KeyboardEvent) => void\n}\n\nexport type ModalOptions = {\n container: string\n clickableSelector: string\n purchaseAmount: number\n customerBillingCountry?: string\n customerShippingCountry?: string\n plans?: ConfigPlan[]\n locale?: Locale\n cards?: Card[]\n onClose?: (event: React.MouseEvent | React.KeyboardEvent) => void\n}\n\nexport type WidgetNames = keyof typeof widgetTypes\n\nexport type WidgetOptions = PaymentPlanWidgetOptions | ModalOptions\n","import { EligibilityPlan } from '@/types'\n\nexport function priceToCents(price: number): number {\n return Math.round(price * 100)\n}\n\nexport function priceFromCents(cents: number): number {\n return Number((cents / 100).toFixed(2))\n}\n\nexport function formatCents(cents: number): string {\n return String(priceFromCents(cents)).replace('.', ',')\n}\n\nexport const secondsToMilliseconds = (date: number): number => date * 1000\n\nexport const desktopWidth = 800\n\nexport const isP1X = (plan: EligibilityPlan): boolean =>\n plan?.installments_count === 1 && plan?.deferred_days === 0 && plan?.deferred_months === 0\n","/* eslint-disable */\n/*\n * Element.prototype.closest & Element.prototype.matches polyfills\n */\n\n;(function (ElementProto) {\n if (typeof ElementProto.matches !== 'function') {\n ElementProto.matches =\n ElementProto.msMatchesSelector ||\n ElementProto.mozMatchesSelector ||\n ElementProto.webkitMatchesSelector ||\n function matches(selector) {\n const element = this\n const elements = (element.document || element.ownerDocument).querySelectorAll(selector)\n let index = 0\n\n while (elements[index] && elements[index] !== element) {\n ++index\n }\n\n return Boolean(elements[index])\n }\n }\n\n if (typeof ElementProto.closest !== 'function') {\n ElementProto.closest = function closest(selector) {\n let element = this\n\n while (element && element.nodeType === 1) {\n if (element.matches(selector)) {\n return element\n }\n\n element = element.parentNode\n }\n\n return null\n }\n }\n})(window.Element.prototype)\n\n/*\n * Element.prototype.classList polyfill\n */\n\n// 1. String.prototype.trim polyfill\nif (!''.trim)\n String.prototype.trim = function () {\n return this.replace(/^[\\s]+|[\\s]+$/g, '')\n }\n;(function (window) {\n // prevent global namespace pollution\n if (!window.DOMException)\n (DOMException = function (reason) {\n this.message = reason\n }).prototype = new Error()\n const wsRE = /[\\11\\12\\14\\15\\40]/\n let wsIndex = 0\n const checkIfValidClassListEntry = function (O, V) {\n if (V === '')\n throw new DOMException(\n `Failed to execute '${O}' on 'DOMTokenList': The token provided must not be empty.`,\n )\n if ((wsIndex = V.search(wsRE)) !== -1)\n throw new DOMException(\n `Failed to execute '${O}' on 'DOMTokenList': ` +\n `The token provided ('${\n V[wsIndex]\n }') contains HTML space characters, which are not valid in tokens.`,\n )\n }\n // 2. Implement the barebones DOMTokenList livelyness polyfill\n if (typeof DOMTokenList !== 'function')\n (function (window) {\n const document = window.document\n const Object = window.Object\n const hasOwnProp = Object.prototype.hasOwnProperty\n const defineProperty = Object.defineProperty\n let allowTokenListConstruction = 0\n let skipPropChange = 0\n\n const DOMTokenList = function () {\n if (!allowTokenListConstruction) throw TypeError('Illegal constructor') // internally let it through\n }\n\n DOMTokenList.prototype.toString = DOMTokenList.prototype.toLocaleString = function () {\n return this.value\n }\n DOMTokenList.prototype.add = function () {\n a: for (\n var v = 0, argLen = arguments.length, val = '', ele = this[' uCL'], proto = ele[' uCLp'];\n v !== argLen;\n ++v\n ) {\n ;(val = `${arguments[v]}`), checkIfValidClassListEntry('add', val)\n for (var i = 0, Len = proto.length, resStr = val; i !== Len; ++i)\n if (this[i] === val) continue a\n else resStr += ` ${this[i]}`\n ;(this[Len] = val), (proto.length += 1), (proto.value = resStr)\n }\n ;(skipPropChange = 1), (ele.className = proto.value), (skipPropChange = 0)\n }\n DOMTokenList.prototype.remove = function () {\n for (\n var v = 0, argLen = arguments.length, val = '', ele = this[' uCL'], proto = ele[' uCLp'];\n v !== argLen;\n ++v\n ) {\n ;(val = `${arguments[v]}`), checkIfValidClassListEntry('remove', val)\n for (var i = 0, Len = proto.length, resStr = '', is = 0; i !== Len; ++i)\n if (is) {\n this[i - 1] = this[i]\n } else if (this[i] !== val) {\n resStr += `${this[i]} `\n } else {\n is = 1\n }\n if (!is) continue\n delete this[Len], (proto.length -= 1), (proto.value = resStr)\n }\n ;(skipPropChange = 1), (ele.className = proto.value), (skipPropChange = 0)\n }\n window.DOMTokenList = DOMTokenList\n\n function whenPropChanges() {\n const evt = window.event\n const prop = evt.propertyName\n if (\n !skipPropChange &&\n (prop === 'className' || (prop === 'classList' && !defineProperty))\n ) {\n const target = evt.srcElement\n const protoObjProto = target[' uCLp']\n const strval = `${target[prop]}`\n const tokens = strval.trim().split(wsRE)\n const resTokenList = target[prop === 'classList' ? ' uCL' : 'classList']\n const oldLen = protoObjProto.length\n a: for (\n var cI = 0, cLen = (protoObjProto.length = tokens.length), sub = 0;\n cI !== cLen;\n ++cI\n ) {\n for (let innerI = 0; innerI !== cI; ++innerI)\n if (tokens[innerI] === tokens[cI]) {\n sub++\n continue a\n }\n resTokenList[cI - sub] = tokens[cI]\n }\n for (let i = cLen - sub; i < oldLen; ++i) delete resTokenList[i] // remove trailing indexs\n if (prop !== 'classList') return\n ;(skipPropChange = 1), (target.classList = resTokenList), (target.className = strval)\n ;(skipPropChange = 0), (resTokenList.length = tokens.length - sub)\n }\n }\n\n function polyfillClassList(ele) {\n if (!ele || !('innerHTML' in ele)) throw TypeError('Illegal invocation')\n ele.detachEvent('onpropertychange', whenPropChanges) // prevent duplicate handler infinite loop\n allowTokenListConstruction = 1\n try {\n var protoObj = function () {}\n\n protoObj.prototype = new DOMTokenList()\n } finally {\n allowTokenListConstruction = 0\n }\n const protoObjProto = protoObj.prototype\n const resTokenList = new protoObj()\n a: for (\n var toks = ele.className.trim().split(wsRE), cI = 0, cLen = toks.length, sub = 0;\n cI !== cLen;\n ++cI\n ) {\n for (let innerI = 0; innerI !== cI; ++innerI)\n if (toks[innerI] === toks[cI]) {\n sub++\n continue a\n }\n this[cI - sub] = toks[cI]\n }\n ;(protoObjProto.length = cLen - sub),\n (protoObjProto.value = ele.className),\n (protoObjProto[' uCL'] = ele)\n if (defineProperty) {\n defineProperty(ele, 'classList', {\n // IE8 & IE9 allow defineProperty on the DOM\n enumerable: 1,\n get() {\n return resTokenList\n },\n configurable: 0,\n set(newVal) {\n ;(skipPropChange = 1),\n (ele.className = protoObjProto.value = newVal += ''),\n (skipPropChange = 0)\n const toks = newVal.trim().split(wsRE)\n const oldLen = protoObjProto.length\n a: for (\n var cI = 0, cLen = (protoObjProto.length = toks.length), sub = 0;\n cI !== cLen;\n ++cI\n ) {\n for (let innerI = 0; innerI !== cI; ++innerI)\n if (toks[innerI] === toks[cI]) {\n sub++\n continue a\n }\n resTokenList[cI - sub] = toks[cI]\n }\n for (let i = cLen - sub; i < oldLen; ++i) delete resTokenList[i] // remove trailing indexs\n },\n })\n defineProperty(ele, ' uCLp', {\n // for accessing the hidden prototype\n enumerable: 0,\n configurable: 0,\n writeable: 0,\n value: protoObj.prototype,\n })\n defineProperty(protoObjProto, ' uCL', {\n enumerable: 0,\n configurable: 0,\n writeable: 0,\n value: ele,\n })\n } else {\n ;(ele.classList = resTokenList),\n (ele[' uCL'] = resTokenList),\n (ele[' uCLp'] = protoObj.prototype)\n }\n ele.attachEvent('onpropertychange', whenPropChanges)\n }\n\n try {\n // Much faster & cleaner version for IE8 & IE9:\n // Should work in IE8 because Element.prototype instanceof Node is true according to the specs\n window.Object.defineProperty(window.Element.prototype, 'classList', {\n enumerable: 1,\n get(val) {\n if (!hasOwnProp.call(this, 'classList')) polyfillClassList(this)\n return this.classList\n },\n configurable: 0,\n set(val) {\n this.className = val\n },\n })\n } catch (e) {\n // Less performant fallback for older browsers (IE 6-8):\n window[' uCL'] = polyfillClassList\n // the below code ensures polyfillClassList is applied to all current and future elements in the doc.\n document.documentElement.firstChild.appendChild(\n document.createElement('style'),\n ).styleSheet.cssText =\n '_*{x-uCLp:expression(!this.hasOwnProperty(\"classList\")&&window[\" uCL\"](this))}' + // IE6\n '[class]{x-uCLp/**/:expression(!this.hasOwnProperty(\"classList\")&&window[\" uCL\"](this))}' // IE7-8\n }\n })(window)\n // 3. Patch in unsupported methods in DOMTokenList\n ;(function (DOMTokenListProto, testClass) {\n if (!DOMTokenListProto.item)\n DOMTokenListProto.item = function (i) {\n function NullCheck(n) {\n return n === void 0 ? null : n\n }\n\n return NullCheck(this[i])\n }\n if (!DOMTokenListProto.toggle || testClass.toggle('a', 0) !== false)\n DOMTokenListProto.toggle = function (val) {\n if (arguments.length > 1) return this[arguments[1] ? 'add' : 'remove'](val), !!arguments[1]\n const oldValue = this.value\n return (\n this.remove(oldValue), oldValue === this.value && (this.add(val), true)\n ) /* || false */\n }\n if (!DOMTokenListProto.replace || typeof testClass.replace('a', 'b') !== 'boolean')\n DOMTokenListProto.replace = function (oldToken, newToken) {\n checkIfValidClassListEntry('replace', oldToken),\n checkIfValidClassListEntry('replace', newToken)\n const oldValue = this.value\n return this.remove(oldToken), this.value !== oldValue && (this.add(newToken), true)\n }\n if (!DOMTokenListProto.contains)\n DOMTokenListProto.contains = function (value) {\n for (let i = 0, Len = this.length; i !== Len; ++i) if (this[i] === value) return true\n return false\n }\n if (!DOMTokenListProto.forEach)\n DOMTokenListProto.forEach = function (f) {\n if (arguments.length === 1)\n for (var i = 0, Len = this.length; i !== Len; ++i) f(this[i], i, this)\n else\n for (var i = 0, Len = this.length, tArg = arguments[1]; i !== Len; ++i)\n f.call(tArg, this[i], i, this)\n }\n if (!DOMTokenListProto.entries)\n DOMTokenListProto.entries = function () {\n const nextIndex = 0\n const that = this\n return {\n next() {\n return nextIndex < that.length\n ? {\n value: [nextIndex, that[nextIndex]],\n done: false,\n }\n : { done: true }\n },\n }\n }\n if (!DOMTokenListProto.values)\n DOMTokenListProto.values = function () {\n const nextIndex = 0\n const that = this\n return {\n next() {\n return nextIndex < that.length\n ? { value: that[nextIndex], done: false }\n : { done: true }\n },\n }\n }\n if (!DOMTokenListProto.keys)\n DOMTokenListProto.keys = function () {\n const nextIndex = 0\n const that = this\n return {\n next() {\n return nextIndex < that.length ? { value: nextIndex, done: false } : { done: true }\n },\n }\n }\n })(window.DOMTokenList.prototype, window.document.createElement('div').classList)\n})(window)\n","var n,l,u,t,i,r,o,e,f,c,s,a,h,p={},y=[],v=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,w=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function g(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)null==e[o]&&(e[o]=l.defaultProps[o]);return m(l,e,i,r,null)}function m(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function b(){return{current:null}}function k(n){return n.children}function x(n,l){this.props=n,this.context=l}function S(n,l){if(null==l)return n.__?S(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?S(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!$.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)($)}function $(){for(var n,u,t,r,o,f,c,s=1;i.length;)i.length>s&&i.sort(e),n=i.shift(),s=i.length,n.__d&&(t=void 0,o=(r=(u=n).__v).__e,f=[],c=[],u.__P&&((t=d({},r)).__v=r.__v+1,l.vnode&&l.vnode(t),O(u.__P,t,r,u.__n,u.__P.namespaceURI,32&r.__u?[o]:null,f,null==o?S(r):o,!!(32&r.__u),c),t.__v=r.__v,t.__.__k[t.__i]=t,z(f,t,c),t.__e!=o&&C(t)));$.__r=0}function I(n,l,u,t,i,r,o,e,f,c,s){var a,h,v,w,d,g,_=t&&t.__k||y,m=l.length;for(f=P(u,l,_,f,m),a=0;a<m;a++)null!=(v=u.__k[a])&&(h=-1==v.__i?p:_[v.__i]||p,v.__i=a,g=O(n,v,h,i,r,o,e,f,c,s),w=v.__e,v.ref&&h.ref!=v.ref&&(h.ref&&q(h.ref,null,v),s.push(v.ref,v.__c||w,v)),null==d&&null!=w&&(d=w),4&v.__u||h.__k===v.__k?f=A(v,f,n):\"function\"==typeof v.type&&void 0!==g?f=g:w&&(f=w.nextSibling),v.__u&=-7);return u.__e=d,f}function P(n,l,u,t,i){var r,o,e,f,c,s=u.length,a=s,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(f=r+h,(o=n.__k[r]=\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?m(null,o,null,null,null):w(o)?m(k,{children:o},null,null,null):null==o.constructor&&o.__b>0?m(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=L(o,u,f,a))&&(a--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>s?h--:i<s&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(a)for(r=0;r<s;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=S(e)),B(e,e));return t}function A(n,l,u){var t,i;if(\"function\"==typeof n.type){for(t=n.__k,i=0;t&&i<t.length;i++)t[i]&&(t[i].__=n,l=A(t[i],l,u));return l}n.__e!=l&&(l&&n.type&&!u.contains(l)&&(l=S(n)),u.insertBefore(n.__e,l||null),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(w(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i,r,o=n.key,e=n.type,f=l[u];if(null===f&&null==n.key||f&&o==f.key&&e==f.type&&0==(2&f.__u))return u;if(t>(null!=f&&0==(2&f.__u)?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;){if(i>=0){if((f=l[i])&&0==(2&f.__u)&&o==f.key&&e==f.type)return i;i--}if(r<l.length){if((f=l[r])&&0==(2&f.__u)&&o==f.key&&e==f.type)return r;r++}}return-1}function T(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||v.test(l)?u:u+\"px\"}function j(n,l,u,t,i){var r;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||T(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(f,\"$1\")),l=l.toLowerCase()in n||\"onFocusOut\"==l||\"onFocusIn\"==l?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u.u=t.u:(u.u=c,n.addEventListener(l,r?a:s,r)):n.removeEventListener(l,r?a:s,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function F(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=c++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function O(n,u,t,i,r,o,e,f,c,s){var a,h,p,y,v,_,m,b,S,C,M,$,P,A,H,L,T,j=u.type;if(null!=u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof j)try{if(b=u.props,S=\"prototype\"in j&&j.prototype.render,C=(a=j.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,t.__c?m=(h=u.__c=t.__c).__=h.__E:(S?u.__c=h=new j(b,M):(u.__c=h=new x(b,M),h.constructor=j,h.render=D),C&&C.sub(h),h.props=b,h.state||(h.state={}),h.context=M,h.__n=i,p=h.__d=!0,h.__h=[],h._sb=[]),S&&null==h.__s&&(h.__s=h.state),S&&null!=j.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=d({},h.__s)),d(h.__s,j.getDerivedStateFromProps(b,h.__s))),y=h.props,v=h.state,h.__v=u,p)S&&null==j.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),S&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(S&&null==j.getDerivedStateFromProps&&b!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(b,M),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(b,h.__s,M)||u.__v==t.__v){for(u.__v!=t.__v&&(h.props=b,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),$=0;$<h._sb.length;$++)h.__h.push(h._sb[$]);h._sb=[],h.__h.length&&e.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(b,h.__s,M),S&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,v,_)})}if(h.context=M,h.props=b,h.__P=n,h.__e=!1,P=l.__r,A=0,S){for(h.state=h.__s,h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++A<25);h.state=h.__s,null!=h.getChildContext&&(i=d(d({},i),h.getChildContext())),S&&!p&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(y,v)),L=a,null!=a&&a.type===k&&null==a.key&&(L=N(a.props.children)),f=I(n,w(L)?L:[L],u,t,i,r,o,e,f,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&e.push(h),m&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=o)if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;o[o.indexOf(f)]=null,u.__e=f}else for(T=o.length;T--;)g(o[T]);else u.__e=t.__e,u.__k=t.__k;l.__e(n,u,t)}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=V(t.__e,u,t,i,r,o,e,c,s);return(a=l.diffed)&&a(u),128&u.__u?void 0:f}function z(n,u,t){for(var i=0;i<t.length;i++)q(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function N(n){return\"object\"!=typeof n||null==n||n.__b&&n.__b>0?n:w(n)?n.map(N):d({},n)}function V(u,t,i,r,o,e,f,c,s){var a,h,y,v,d,_,m,b=i.props,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(a=0;a<e.length;a++)if((d=e[a])&&\"setAttribute\"in d==!!x&&(x?d.localName==x:3==d.nodeType)){u=d,e[a]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)b===k||c&&u.data==k||(u.data=k);else{if(e=e&&n.call(u.childNodes),b=i.props||p,!c&&null!=e)for(b={},a=0;a<u.attributes.length;a++)b[(d=u.attributes[a]).name]=d.value;for(a in b)if(d=b[a],\"children\"==a);else if(\"dangerouslySetInnerHTML\"==a)y=d;else if(!(a in k)){if(\"value\"==a&&\"defaultValue\"in k||\"checked\"==a&&\"defaultChecked\"in k)continue;j(u,a,null,d,o)}for(a in k)d=k[a],\"children\"==a?v=d:\"dangerouslySetInnerHTML\"==a?h=d:\"value\"==a?_=d:\"checked\"==a?m=d:c&&\"function\"!=typeof d||b[a]===d||j(u,a,d,b[a],o);if(h)c||y&&(h.__html==y.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(y&&(u.innerHTML=\"\"),I(\"template\"==t.type?u.content:u,w(v)?v:[v],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&S(i,0),c,s),null!=e)for(a=e.length;a--;)g(e[a]);c||(a=\"value\",\"progress\"==x&&null==_?u.removeAttribute(\"value\"):null!=_&&(_!==u[a]||\"progress\"==x&&!_||\"option\"==x&&_!=b[a])&&j(u,a,_,b[a],o),a=\"checked\",null!=m&&m!=u[a]&&j(u,a,m,b[a],o))}return u}function q(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function B(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||q(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&B(i[r],u,t||\"function\"!=typeof n.type);t||g(n.__e),n.__c=n.__=n.__e=void 0}function D(n,l,u){return this.constructor(n,u)}function E(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],O(t,u=(!r&&i||t).__k=_(k,null,[u]),o||p,p,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),z(e,u,f)}function G(n,l){E(n,l,G)}function J(l,u,t){var i,r,o,e,f=d({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=null==u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),m(l.type,f,i||l.key,r||l.ref,null)}function K(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+h++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=y.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},x.prototype.render=k,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},$.__r=0,f=/(PointerCapture)$|Capture$/i,c=0,s=F(!1),a=F(!0),h=0;export{x as Component,k as Fragment,J as cloneElement,K as createContext,_ as createElement,b as createRef,_ as h,G as hydrate,t as isValidElement,l as options,E as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function p(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,h(D,n)}function h(n,u,i){var o=p(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=o.__c.props!==n;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c&&c.call(this,n,t,r)||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=p(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=p(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=p(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=p(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=p(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=p(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,h as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as c,createRef as l,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useState as a,useLayoutEffect as s,useEffect as h,useCallback as v,useContext as d,useDebugValue as p,useId as m,useImperativeHandle as y,useMemo as _,useReducer as b,useRef as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function E(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function C(n,t){var e=t(),r=a({t:{__:e,u:t}}),u=r[0].t,o=r[1];return s(function(){u.__=e,u.u=t,x(u)&&o({t:u})},[n,e,t]),h(function(){return x(u)&&o({t:u}),n(function(){x(u)&&o({t:u})})},[n]),e}function x(n){var t,e,r=n.u,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}function R(n){n()}function w(n){return n}function k(){return[!1,R]}var I=s;function N(n,t){this.props=n,this.context=t}function M(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(N.prototype=new n).isPureReactComponent=!0,N.prototype.shouldComponentUpdate=function(n,t){return E(this.props,n)||E(this.state,t)};var T=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),T&&T(n)};var A=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function D(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=A,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var L=function(n,t){return null==n?null:r(r(n).map(t))},O={map:L,forEach:L,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},F=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);F(n,t,e,r)};var U=e.unmount;function V(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c.__e=!0,n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return V(n,t,e)})),n}function W(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return W(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function P(){this.__u=0,this.o=null,this.__b=null}function j(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function z(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function B(){this.i=null,this.l=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),U&&U(n)},(P.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.o&&(r.o=[]),r.o.push(e);var u=j(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(c):c())};e.__R=i;var c=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=W(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},P.prototype.componentWillUnmount=function(){this.o=[]},P.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=V(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__u&=-33),[t(u,null,e.__a?null:n.children),i]};var H=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.i=e=e[2]}};function Z(n){return this.getChildContext=function(){return n.context},n.children}function Y(n){var e=this,r=n.h;e.componentWillUnmount=function(){o(null,e.v),e.v=null,e.h=null},e.h&&e.h!==r&&e.componentWillUnmount(),e.v||(e.h=r,e.v={nodeType:1,parentNode:r,childNodes:[],contains:function(){return!0},appendChild:function(n){this.childNodes.push(n),e.h.appendChild(n)},insertBefore:function(n,t){this.childNodes.push(n),e.h.insertBefore(n,t)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.h.removeChild(n)}}),o(t(Z,{context:e.context},n.__v),e.v)}function $(n,e){var r=t(Y,{__v:n,h:e});return r.containerInfo=e,r}(B.prototype=new n).__a=function(n){var t=this,e=j(t.__v),r=t.l.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),H(t,n,r)):u()};e?e(o):o()}},B.prototype.render=function(n){this.i=null,this.l=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.l.set(t[e],this.i=[1,0,this.i]);return n.children},B.prototype.componentDidUpdate=B.prototype.componentDidMount=function(){var n=this;this.l.forEach(function(t,e){H(n,e,t)})};var q=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,G=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,J=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,K=/[A-Z0-9]/g,Q=\"undefined\"!=typeof document,X=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function nn(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function tn(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var en=e.event;function rn(){}function un(){return this.cancelBubble}function on(){return this.defaultPrevented}e.event=function(n){return en&&(n=en(n)),n.persist=rn,n.isPropagationStopped=un,n.isDefaultPrevented=on,n.nativeEvent=n};var cn,ln={enumerable:!1,configurable:!0,get:function(){return this.class}},fn=e.vnode;e.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={},o=-1===e.indexOf(\"-\");for(var i in t){var c=t[i];if(!(\"value\"===i&&\"defaultValue\"in t&&null==c||Q&&\"children\"===i&&\"noscript\"===e||\"class\"===i||\"className\"===i)){var l=i.toLowerCase();\"defaultValue\"===i&&\"value\"in t&&null==t.value?i=\"value\":\"download\"===i&&!0===c?c=\"\":\"translate\"===l&&\"no\"===c?c=!1:\"o\"===l[0]&&\"n\"===l[1]?\"ondoubleclick\"===l?i=\"ondblclick\":\"onchange\"!==l||\"input\"!==e&&\"textarea\"!==e||X(t.type)?\"onfocus\"===l?i=\"onfocusin\":\"onblur\"===l?i=\"onfocusout\":J.test(i)&&(i=l):l=i=\"oninput\":o&&G.test(i)?i=i.replace(K,\"-$&\").toLowerCase():null===c&&(c=void 0),\"oninput\"===l&&u[i=l]&&(i=\"oninputCapture\"),u[i]=c}}\"select\"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=r(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==e&&null!=u.defaultValue&&(u.value=r(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",ln)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=q,fn&&fn(n)};var an=e.__r;e.__r=function(n){an&&an(n),cn=n.__c};var sn=e.diffed;e.diffed=function(n){sn&&sn(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),cn=null};var hn={ReactCurrentDispatcher:{current:{readContext:function(n){return cn.__n[n.__c].props.value},useCallback:v,useContext:d,useDebugValue:p,useDeferredValue:w,useEffect:h,useId:m,useImperativeHandle:y,useInsertionEffect:I,useLayoutEffect:s,useMemo:_,useReducer:b,useRef:S,useState:a,useSyncExternalStore:C,useTransition:k}}},vn=\"18.3.1\";function dn(n){return t.bind(null,n)}function pn(n){return!!n&&n.$$typeof===q}function mn(n){return pn(n)&&n.type===u}function yn(n){return!!n&&!!n.displayName&&(\"string\"==typeof n.displayName||n.displayName instanceof String)&&n.displayName.startsWith(\"Memo(\")}function _n(n){return pn(n)?f.apply(null,arguments):n}function bn(n){return!!n.__k&&(o(null,n),!0)}function Sn(n){return n&&(n.base||1===n.nodeType&&n)||null}var gn=function(n,t){return n(t)},En=function(n,t){return n(t)},Cn=u,xn=pn,Rn={useState:a,useId:m,useReducer:b,useEffect:h,useLayoutEffect:s,useInsertionEffect:I,useTransition:k,useDeferredValue:w,useSyncExternalStore:C,startTransition:R,useRef:S,useImperativeHandle:y,useMemo:_,useCallback:v,useContext:d,useDebugValue:p,version:\"18.3.1\",Children:O,render:nn,hydrate:tn,unmountComponentAtNode:bn,createPortal:$,createElement:t,createContext:c,createFactory:dn,cloneElement:_n,createRef:l,Fragment:u,isValidElement:pn,isElement:xn,isFragment:mn,isMemo:yn,findDOMNode:Sn,Component:n,PureComponent:N,memo:M,forwardRef:D,flushSync:En,unstable_batchedUpdates:gn,StrictMode:Cn,Suspense:P,SuspenseList:B,lazy:z,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:hn};export{O as Children,N as PureComponent,Cn as StrictMode,P as Suspense,B as SuspenseList,hn as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,_n as cloneElement,dn as createFactory,$ as createPortal,Rn as default,Sn as findDOMNode,En as flushSync,D as forwardRef,tn as hydrate,xn as isElement,mn as isFragment,yn as isMemo,pn as isValidElement,z as lazy,M as memo,nn as render,R as startTransition,bn as unmountComponentAtNode,gn as unstable_batchedUpdates,w as useDeferredValue,I as useInsertionEffect,C as useSyncExternalStore,k as useTransition,vn as version};\n//# sourceMappingURL=compat.module.js.map\n","import { render, hydrate, unmountComponentAtNode } from 'preact/compat';\n\nexport function createRoot(container) {\n\treturn {\n\t\t// eslint-disable-next-line\n\t\trender: function (children) {\n\t\t\trender(children, container);\n\t\t},\n\t\t// eslint-disable-next-line\n\t\tunmount: function () {\n\t\t\tunmountComponentAtNode(container);\n\t\t}\n\t};\n}\n\nexport function hydrateRoot(container, children) {\n\thydrate(children, container);\n\treturn createRoot(container);\n}\n\nexport default {\n\tcreateRoot,\n\thydrateRoot\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","//\n// Main\n//\nexport function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __spreadArray } from \"tslib\";\nimport { memoize, strategies } from '@formatjs/fast-memoize';\n/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n // Cannot count string length via Number.toString because it may use scientific notation\n // for very small or very large numbers.\n return Math.floor(Math.log(x) * Math.LOG10E);\n}\nexport function repeat(s, times) {\n if (typeof s.repeat === 'function') {\n return s.repeat(times);\n }\n var arr = new Array(times);\n for (var i = 0; i < arr.length; i++) {\n arr[i] = s;\n }\n return arr.join('');\n}\nexport function setInternalSlot(map, pl, field, value) {\n if (!map.get(pl)) {\n map.set(pl, Object.create(null));\n }\n var slots = map.get(pl);\n slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var k = _a[_i];\n setInternalSlot(map, pl, k, props[k]);\n }\n}\nexport function getInternalSlot(map, pl, field) {\n return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n var fields = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n fields[_i - 2] = arguments[_i];\n }\n var slots = map.get(pl);\n if (!slots) {\n throw new TypeError(\"\".concat(pl, \" InternalSlot has not been initialized\"));\n }\n return fields.reduce(function (all, f) {\n all[f] = slots[f];\n return all;\n }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n return patternPart.type === 'literal';\n}\n/*\n 17 ECMAScript Standard Built-in Objects:\n Every built-in Function object, including constructors, that is not\n identified as an anonymous function has a name property whose value\n is a String.\n\n Unless otherwise specified, the name property of a built-in Function\n object, if it exists, has the attributes { [[Writable]]: false,\n [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, _a) {\n var value = _a.value;\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value,\n });\n}\n/**\n * 7.3.5 CreateDataProperty\n * @param target\n * @param name\n * @param value\n */\nexport function createDataProperty(target, name, value) {\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value,\n });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\nexport var createMemoizedNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n}, {\n strategy: strategies.variadic,\n});\nexport var createMemoizedDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n}, {\n strategy: strategies.variadic,\n});\nexport var createMemoizedPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n}, {\n strategy: strategies.variadic,\n});\nexport var createMemoizedLocale = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.Locale).bind.apply(_a, __spreadArray([void 0], args, false)))();\n}, {\n strategy: strategies.variadic,\n});\nexport var createMemoizedListFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.ListFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n}, {\n strategy: strategies.variadic,\n});\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `<bold!>foo</bold!>) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo</123>`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `<bold>foo</italic>`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `<bold>foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: milliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n case 'rounding-mode-floor':\n result.roundingMode = 'floor';\n continue;\n case 'rounding-mode-ceiling':\n result.roundingMode = 'ceil';\n continue;\n case 'rounding-mode-down':\n result.roundingMode = 'trunc';\n continue;\n case 'rounding-mode-up':\n result.roundingMode = 'expand';\n continue;\n case 'rounding-mode-half-even':\n result.roundingMode = 'halfEven';\n continue;\n case 'rounding-mode-half-down':\n result.roundingMode = 'halfTrunc';\n continue;\n case 'rounding-mode-half-up':\n result.roundingMode = 'halfExpand';\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore \nexport var timeData = {\n \"001\": [\n \"H\",\n \"h\"\n ],\n \"419\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AD\": [\n \"H\",\n \"hB\"\n ],\n \"AE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"AF\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"AG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AL\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"AM\": [\n \"H\",\n \"hB\"\n ],\n \"AO\": [\n \"H\",\n \"hB\"\n ],\n \"AR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AS\": [\n \"h\",\n \"H\"\n ],\n \"AT\": [\n \"H\",\n \"hB\"\n ],\n \"AU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AW\": [\n \"H\",\n \"hB\"\n ],\n \"AX\": [\n \"H\"\n ],\n \"AZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BD\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"BE\": [\n \"H\",\n \"hB\"\n ],\n \"BF\": [\n \"H\",\n \"hB\"\n ],\n \"BG\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"BI\": [\n \"H\",\n \"h\"\n ],\n \"BJ\": [\n \"H\",\n \"hB\"\n ],\n \"BL\": [\n \"H\",\n \"hB\"\n ],\n \"BM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BN\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"BO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"BQ\": [\n \"H\"\n ],\n \"BR\": [\n \"H\",\n \"hB\"\n ],\n \"BS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BT\": [\n \"h\",\n \"H\"\n ],\n \"BW\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BY\": [\n \"H\",\n \"h\"\n ],\n \"BZ\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CA\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"CC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CD\": [\n \"hB\",\n \"H\"\n ],\n \"CF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CG\": [\n \"H\",\n \"hB\"\n ],\n \"CH\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"CI\": [\n \"H\",\n \"hB\"\n ],\n \"CK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CL\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CN\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"CO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CP\": [\n \"H\"\n ],\n \"CR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CU\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CV\": [\n \"H\",\n \"hB\"\n ],\n \"CW\": [\n \"H\",\n \"hB\"\n ],\n \"CX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CY\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"CZ\": [\n \"H\"\n ],\n \"DE\": [\n \"H\",\n \"hB\"\n ],\n \"DG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"DJ\": [\n \"h\",\n \"H\"\n ],\n \"DK\": [\n \"H\"\n ],\n \"DM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"DO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"DZ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"EC\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"EE\": [\n \"H\",\n \"hB\"\n ],\n \"EG\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ER\": [\n \"h\",\n \"H\"\n ],\n \"ES\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"ET\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"FI\": [\n \"H\"\n ],\n \"FJ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"FM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FO\": [\n \"H\",\n \"h\"\n ],\n \"FR\": [\n \"H\",\n \"hB\"\n ],\n \"GA\": [\n \"H\",\n \"hB\"\n ],\n \"GB\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GD\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GE\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"GF\": [\n \"H\",\n \"hB\"\n ],\n \"GG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GH\": [\n \"h\",\n \"H\"\n ],\n \"GI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GL\": [\n \"H\",\n \"h\"\n ],\n \"GM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GN\": [\n \"H\",\n \"hB\"\n ],\n \"GP\": [\n \"H\",\n \"hB\"\n ],\n \"GQ\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"GR\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"GT\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"GU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GW\": [\n \"H\",\n \"hB\"\n ],\n \"GY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"HK\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"HN\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"HR\": [\n \"H\",\n \"hB\"\n ],\n \"HU\": [\n \"H\",\n \"h\"\n ],\n \"IC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ID\": [\n \"H\"\n ],\n \"IE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IL\": [\n \"H\",\n \"hB\"\n ],\n \"IM\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IN\": [\n \"h\",\n \"H\"\n ],\n \"IO\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IQ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"IR\": [\n \"hB\",\n \"H\"\n ],\n \"IS\": [\n \"H\"\n ],\n \"IT\": [\n \"H\",\n \"hB\"\n ],\n \"JE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"JM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"JO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"JP\": [\n \"H\",\n \"K\",\n \"h\"\n ],\n \"KE\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"KG\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KH\": [\n \"hB\",\n \"h\",\n \"H\",\n \"hb\"\n ],\n \"KI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KM\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KN\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KP\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KW\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"KY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KZ\": [\n \"H\",\n \"hB\"\n ],\n \"LA\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"LB\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LI\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"LK\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"LR\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LS\": [\n \"h\",\n \"H\"\n ],\n \"LT\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"LU\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"LV\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"LY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MC\": [\n \"H\",\n \"hB\"\n ],\n \"MD\": [\n \"H\",\n \"hB\"\n ],\n \"ME\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"MF\": [\n \"H\",\n \"hB\"\n ],\n \"MG\": [\n \"H\",\n \"h\"\n ],\n \"MH\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ML\": [\n \"H\"\n ],\n \"MM\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"MN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MP\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MQ\": [\n \"H\",\n \"hB\"\n ],\n \"MR\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MS\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MT\": [\n \"H\",\n \"h\"\n ],\n \"MU\": [\n \"H\",\n \"h\"\n ],\n \"MV\": [\n \"H\",\n \"h\"\n ],\n \"MW\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MX\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"MY\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"MZ\": [\n \"H\",\n \"hB\"\n ],\n \"NA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NC\": [\n \"H\",\n \"hB\"\n ],\n \"NE\": [\n \"H\"\n ],\n \"NF\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NI\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NL\": [\n \"H\",\n \"hB\"\n ],\n \"NO\": [\n \"H\",\n \"h\"\n ],\n \"NP\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"NR\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NU\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"OM\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"PG\": [\n \"h\",\n \"H\"\n ],\n \"PH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PK\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"PL\": [\n \"H\",\n \"h\"\n ],\n \"PM\": [\n \"H\",\n \"hB\"\n ],\n \"PN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"PR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PS\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PT\": [\n \"H\",\n \"hB\"\n ],\n \"PW\": [\n \"h\",\n \"H\"\n ],\n \"PY\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"QA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"RE\": [\n \"H\",\n \"hB\"\n ],\n \"RO\": [\n \"H\",\n \"hB\"\n ],\n \"RS\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"RU\": [\n \"H\"\n ],\n \"RW\": [\n \"H\",\n \"h\"\n ],\n \"SA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SC\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SD\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SE\": [\n \"H\"\n ],\n \"SG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SH\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SI\": [\n \"H\",\n \"hB\"\n ],\n \"SJ\": [\n \"H\"\n ],\n \"SK\": [\n \"H\"\n ],\n \"SL\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SN\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SO\": [\n \"h\",\n \"H\"\n ],\n \"SR\": [\n \"H\",\n \"hB\"\n ],\n \"SS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ST\": [\n \"H\",\n \"hB\"\n ],\n \"SV\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"SX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"TC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TD\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"TF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"TG\": [\n \"H\",\n \"hB\"\n ],\n \"TH\": [\n \"H\",\n \"h\"\n ],\n \"TJ\": [\n \"H\",\n \"h\"\n ],\n \"TL\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"TM\": [\n \"H\",\n \"h\"\n ],\n \"TN\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"TO\": [\n \"h\",\n \"H\"\n ],\n \"TR\": [\n \"H\",\n \"hB\"\n ],\n \"TT\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TW\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"TZ\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UG\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"US\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"UY\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"UZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"VA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"VC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"VG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VN\": [\n \"H\",\n \"h\"\n ],\n \"VU\": [\n \"h\",\n \"H\"\n ],\n \"WF\": [\n \"H\",\n \"hB\"\n ],\n \"WS\": [\n \"h\",\n \"H\"\n ],\n \"XK\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"YE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"YT\": [\n \"H\",\n \"hB\"\n ],\n \"ZA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ZM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ZW\": [\n \"H\",\n \"h\"\n ],\n \"af-ZA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ar-001\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ca-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"en-001\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-HK\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-IL\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"en-MY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"es-BR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-ES\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-GQ\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"fr-CA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gl-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gu-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"hi-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"it-CH\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-IT\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"kn-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ml-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"mr-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"pa-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"ta-IN\": [\n \"hB\",\n \"h\",\n \"hb\",\n \"H\"\n ],\n \"te-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"zu-ZA\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ]\n};\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n var skeletonCopy = '';\n for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n var patternChar = skeleton.charAt(patternPos);\n if (patternChar === 'j') {\n var extraLength = 0;\n while (patternPos + 1 < skeleton.length &&\n skeleton.charAt(patternPos + 1) === patternChar) {\n extraLength++;\n patternPos++;\n }\n var hourLen = 1 + (extraLength & 1);\n var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n var dayPeriodChar = 'a';\n var hourChar = getDefaultHourSymbolFromLocale(locale);\n if (hourChar == 'H' || hourChar == 'k') {\n dayPeriodLen = 0;\n }\n while (dayPeriodLen-- > 0) {\n skeletonCopy += dayPeriodChar;\n }\n while (hourLen-- > 0) {\n skeletonCopy = hourChar + skeletonCopy;\n }\n }\n else if (patternChar === 'J') {\n skeletonCopy += 'H';\n }\n else {\n skeletonCopy += patternChar;\n }\n }\n return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n var hourCycle = locale.hourCycle;\n if (hourCycle === undefined &&\n // @ts-ignore hourCycle(s) is not identified yet\n locale.hourCycles &&\n // @ts-ignore\n locale.hourCycles.length) {\n // @ts-ignore\n hourCycle = locale.hourCycles[0];\n }\n if (hourCycle) {\n switch (hourCycle) {\n case 'h24':\n return 'k';\n case 'h23':\n return 'H';\n case 'h12':\n return 'h';\n case 'h11':\n return 'K';\n default:\n throw new Error('Invalid hourCycle');\n }\n }\n // TODO: Once hourCycle is fully supported remove the following with data generation\n var languageTag = locale.language;\n var regionTag;\n if (languageTag !== 'root') {\n regionTag = locale.maximize().region;\n }\n var hourCycles = timeData[regionTag || ''] ||\n timeData[languageTag || ''] ||\n timeData[\"\".concat(languageTag, \"-001\")] ||\n timeData['001'];\n return hourCycles[0];\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith && '_a'.startsWith('a', 1);\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.locale = options.locale;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"</\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('</')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var dateTimePattern = skeleton;\n // Get \"best match\" pattern only if locale is passed, if not, let it\n // pass as-is where `parseDateTimeSkeleton()` will throw an error\n // for unsupported patterns.\n if (this.locale) {\n dateTimePattern = getBestPattern(skeleton, this.locale);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: dateTimePattern,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(dateTimePattern)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n// only for testing\nexport var _Parser = Parser;\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : formats.time.medium;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { parse, } from '@formatjs/icu-messageformat-parser';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n var _this = this;\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () {\n var _a;\n return ({\n locale: ((_a = _this.resolvedLocale) === null || _a === void 0 ? void 0 : _a.toString()) ||\n Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n });\n };\n this.getAst = function () { return _this.ast; };\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n var _a = opts || {}, formatters = _a.formatters, parseOpts = __rest(_a, [\"formatters\"]);\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, __assign(__assign({}, parseOpts), { locale: this.resolvedLocale }));\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.resolveLocale = function (locales) {\n if (typeof Intl.Locale === 'undefined') {\n return;\n }\n var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n if (supportedLocales.length > 0) {\n return new Intl.Locale(supportedLocales[0]);\n }\n return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n };\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n __extends(IntlError, _super);\n function IntlError(code, message, exception) {\n var _this = this;\n var err = exception\n ? exception instanceof Error\n ? exception\n : new Error(String(exception))\n : undefined;\n _this = _super.call(this, \"[@formatjs/intl Error \".concat(code, \"] \").concat(message, \"\\n\").concat(err ? \"\\n\".concat(err.message, \"\\n\").concat(err.stack) : '')) || this;\n _this.code = code;\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (typeof Error.captureStackTrace === 'function') {\n // @ts-ignore just so we don't need to declare dep on @types/node\n Error.captureStackTrace(_this, IntlError);\n }\n return _this;\n }\n return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n }\n return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n }\n return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar IntlFormatError = /** @class */ (function (_super) {\n __extends(IntlFormatError, _super);\n function IntlFormatError(message, locale, exception) {\n var _this = _super.call(this, IntlErrorCode.FORMAT_ERROR, \"\".concat(message, \"\\nLocale: \").concat(locale, \"\\n\"), exception) || this;\n _this.locale = locale;\n return _this;\n }\n return IntlFormatError;\n}(IntlError));\nexport { IntlFormatError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, \"\".concat(message, \"\\nMessageID: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, \"\\nDefault Message: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage, \"\\nDescription: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.description, \"\\n\"), locale, exception) || this;\n _this.descriptor = descriptor;\n _this.locale = locale;\n return _this;\n }\n return MessageFormatError;\n}(IntlFormatError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\".concat(descriptor.id, \"\\\" for locale \\\"\").concat(locale, \"\\\", using \").concat(descriptor.defaultMessage\n ? \"default message (\".concat(typeof descriptor.defaultMessage === 'string'\n ? descriptor.defaultMessage\n : descriptor.defaultMessage\n .map(function (e) { var _a; return (_a = e.value) !== null && _a !== void 0 ? _a : JSON.stringify(e); })\n .join(), \")\")\n : 'id', \" as fallback.\")) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","import { __assign, __spreadArray } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, allowlist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return allowlist.reduce(function (filtered, name) {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nvar defaultErrorHandler = function (error) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nvar defaultWarnHandler = function (warning) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n};\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n fallbackOnEmptyString: true,\n onError: defaultErrorHandler,\n onWarn: defaultWarnHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n });\n var getNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n });\n var getPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules,\n } }, (opts || {})));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: strategies.variadic,\n }),\n getRelativeTimeFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: strategies.variadic,\n }),\n getDisplayNames: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: strategies.variadic,\n }),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \".concat(type, \" format named: \").concat(name)));\n}\n","import { __assign } from \"tslib\";\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { IntlMessageFormat, } from 'intl-messageformat';\nimport { MissingTranslationError, MessageFormatError } from './error';\nimport { TYPE } from '@formatjs/icu-messageformat-parser';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce(function (all, k) {\n all[k] = __assign({ timeZone: timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n var keys = Object.keys(__assign(__assign({}, opts1), opts2));\n return keys.reduce(function (all, k) {\n all[k] = __assign(__assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n var mfFormats = IntlMessageFormat.formats;\n return __assign(__assign(__assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport var formatMessage = function (_a, state, messageDescriptor, values, opts) {\n var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, fallbackOnEmptyString = _a.fallbackOnEmptyString, onError = _a.onError, timeZone = _a.timeZone, defaultRichTextElements = _a.defaultRichTextElements;\n if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }\n var msgId = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;\n // `id` is a required field of a Message Descriptor.\n invariant(!!msgId, \"[@formatjs/intl] An `id` must be provided to format a message. You can either:\\n1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin)\\nor [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR\\n2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id)\\nto autofix this issue\");\n var id = String(msgId);\n var message = \n // In case messages is Object.create(null)\n // e.g import('foo.json') from webpack)\n // See https://github.com/formatjs/formatjs/issues/1914\n messages &&\n Object.prototype.hasOwnProperty.call(messages, id) &&\n messages[id];\n // IMPORTANT: Hot path if `message` is AST with a single literal node\n if (Array.isArray(message) &&\n message.length === 1 &&\n message[0].type === TYPE.literal) {\n return message[0].value;\n }\n // IMPORTANT: Hot path straight lookup for performance\n if (!values &&\n message &&\n typeof message === 'string' &&\n !defaultRichTextElements) {\n return message.replace(/'\\{(.*?)\\}'/gi, \"{$1}\");\n }\n values = __assign(__assign({}, defaultRichTextElements), (values || {}));\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n if (!message) {\n if (fallbackOnEmptyString === false && message === '') {\n return message;\n }\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale.\n onError(new MissingTranslationError(messageDescriptor, locale));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting default message for: \\\"\".concat(id, \"\\\", rendering default message verbatim\"), locale, messageDescriptor, e));\n return typeof defaultMessage === 'string' ? defaultMessage : id;\n }\n }\n return id;\n }\n // We have the translated message\n try {\n var formatter = state.getMessageFormat(message, locale, formats, __assign({ formatters: state }, (opts || {})));\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting message: \\\"\".concat(id, \"\\\", using \").concat(defaultMessage ? 'default message' : 'id', \" as fallback.\"), locale, messageDescriptor, e));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting the default message for: \\\"\".concat(id, \"\\\", rendering message verbatim\"), locale, messageDescriptor, e));\n }\n }\n if (typeof message === 'string') {\n return message;\n }\n if (typeof defaultMessage === 'string') {\n return defaultMessage;\n }\n return id;\n};\n","import { __assign } from \"tslib\";\nimport { filterProps, getNamedFormat } from './utils';\nimport { IntlFormatError } from './error';\nvar DATE_TIME_FORMAT_OPTIONS = [\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'hourCycle',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n // 'dayPeriod',\n 'numberingSystem',\n 'fractionalSecondDigits',\n];\nexport function getFormatter(_a, type, getDateTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError, timeZone = _a.timeZone;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second &&\n !filteredOptions.timeStyle &&\n !filteredOptions.dateStyle) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = __assign(__assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting date.', config.locale, e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting time.', config.locale, e));\n }\n return String(date);\n}\nexport function formatDateTimeRange(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var from = _a[0], to = _a[1], _b = _a[2], options = _b === void 0 ? {} : _b;\n var timeZone = config.timeZone, locale = config.locale, onError = config.onError;\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, timeZone ? { timeZone: timeZone } : {});\n try {\n return getDateTimeFormat(locale, filteredOptions).formatRange(from, to);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting date time range.', config.locale, e));\n }\n return String(from);\n}\nexport function formatDateToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting date.', config.locale, e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting time.', config.locale, e));\n }\n return [];\n}\n","import { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar DISPLAY_NAMES_OPTONS = [\n 'style',\n 'type',\n 'fallback',\n 'languageDisplay',\n];\nexport function formatDisplayName(_a, getDisplayNames, value, options) {\n var locale = _a.locale, onError = _a.onError;\n var DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(new FormatError(\"Intl.DisplayNames is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-displaynames\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting display name.', locale, e));\n }\n}\n","import { __assign } from \"tslib\";\nimport { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar LIST_FORMAT_OPTIONS = [\n 'type',\n 'style',\n];\nvar now = Date.now();\nfunction generateToken(i) {\n return \"\".concat(now, \"_\").concat(i, \"_\").concat(now);\n}\nexport function formatList(opts, getListFormat, values, options) {\n if (options === void 0) { options = {}; }\n var results = formatListToParts(opts, getListFormat, values, options).reduce(function (all, el) {\n var val = el.value;\n if (typeof val !== 'string') {\n all.push(val);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n return results.length === 1 ? results[0] : results.length === 0 ? '' : results;\n}\nexport function formatListToParts(_a, getListFormat, values, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n var richValues_1 = {};\n var serializedValues = values.map(function (v, i) {\n if (typeof v === 'object') {\n var id = generateToken(i);\n richValues_1[id] = v;\n return id;\n }\n return String(v);\n });\n return getListFormat(locale, filteredOptions)\n .formatToParts(serializedValues)\n .map(function (part) {\n return part.type === 'literal'\n ? part\n : __assign(__assign({}, part), { value: richValues_1[part.value] || part.value });\n });\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting list.', locale, e));\n }\n // @ts-ignore\n return values;\n}\n","import { filterProps } from './utils';\nimport { IntlFormatError } from './error';\nimport { ErrorCode, FormatError } from 'intl-messageformat';\nvar PLURAL_FORMAT_OPTIONS = ['type'];\nexport function formatPlural(_a, getPluralRules, value, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n if (!Intl.PluralRules) {\n onError(new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting plural.', locale, e));\n }\n return 'other';\n}\n","import { getNamedFormat, filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar RELATIVE_TIME_FORMAT_OPTIONS = ['numeric', 'style'];\nfunction getFormatter(_a, getRelativeTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n var filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options) {\n if (options === void 0) { options = {}; }\n if (!unit) {\n unit = 'second';\n }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(new FormatError(\"Intl.RelativeTimeFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-relativetimeformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting relative time.', config.locale, e));\n }\n return String(value);\n}\n","import { IntlFormatError } from './error';\nimport { filterProps, getNamedFormat } from './utils';\nvar NUMBER_FORMAT_OPTIONS = [\n 'style',\n 'currency',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // ES2020 NumberFormat\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'numberingSystem',\n // ES2023 NumberFormat\n 'trailingZeroDisplay',\n 'roundingPriority',\n 'roundingIncrement',\n 'roundingMode',\n];\nexport function getFormatter(_a, getNumberFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting number.', config.locale, e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting number.', config.locale, e));\n }\n return [];\n}\n","import { __assign } from \"tslib\";\nimport { createFormatters, DEFAULT_INTL_CONFIG } from './utils';\nimport { InvalidConfigError, MissingDataError } from './error';\nimport { formatNumber, formatNumberToParts } from './number';\nimport { formatRelativeTime } from './relativeTime';\nimport { formatDate, formatDateToParts, formatTime, formatTimeToParts, formatDateTimeRange, } from './dateTime';\nimport { formatPlural } from './plural';\nimport { formatMessage } from './message';\nimport { formatList, formatListToParts } from './list';\nimport { formatDisplayName } from './displayName';\nfunction messagesContainString(messages) {\n var firstMessage = messages ? messages[Object.keys(messages)[0]] : undefined;\n return typeof firstMessage === 'string';\n}\nfunction verifyConfigMessages(config) {\n if (config.onWarn &&\n config.defaultRichTextElements &&\n messagesContainString(config.messages || {})) {\n config.onWarn(\"[@formatjs/intl] \\\"defaultRichTextElements\\\" was specified but \\\"message\\\" was not pre-compiled. \\nPlease consider using \\\"@formatjs/cli\\\" to pre-compile your messages for performance.\\nFor more details see https://formatjs.io/docs/getting-started/message-distribution\");\n }\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n var formatters = createFormatters(cache);\n var resolvedConfig = __assign(__assign({}, DEFAULT_INTL_CONFIG), config);\n var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;\n if (!locale) {\n if (onError) {\n onError(new InvalidConfigError(\"\\\"locale\\\" was not configured, using \\\"\".concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details\")));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.NumberFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.DateTimeFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n verifyConfigMessages(resolvedConfig);\n return __assign(__assign({}, resolvedConfig), { formatters: formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), \n // @ts-expect-error TODO: will get to this later\n formatMessage: formatMessage.bind(null, resolvedConfig, formatters), \n // @ts-expect-error TODO: will get to this later\n $t: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG } from '@formatjs/intl';\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n '<IntlProvider> needs to exist in the component ancestry.');\n}\nexport var DEFAULT_INTL_CONFIG = __assign(__assign({}, CORE_DEFAULT_INTL_CONFIG), { textComponent: React.Fragment });\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n return function (parts) {\n // eslint-disable-next-line prefer-rest-params\n return formatXMLElementFn(React.Children.toArray(parts));\n };\n}\nexport function shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key] ||\n !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import { __assign } from \"tslib\";\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// This is primarily dealing with packaging systems where multiple copies of react-intl\n// might exist\nvar IntlContext = typeof window !== 'undefined' && !window.__REACT_INTL_BYPASS_GLOBAL_CONTEXT__\n ? window.__REACT_INTL_CONTEXT__ ||\n (window.__REACT_INTL_CONTEXT__ = React.createContext(null))\n : React.createContext(null);\nvar IntlConsumer = IntlContext.Consumer, IntlProvider = IntlContext.Provider;\nexport var Provider = IntlProvider;\nexport var Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n var _a = options || {}, _b = _a.intlPropName, intlPropName = _b === void 0 ? 'intl' : _b, _c = _a.forwardRef, forwardRef = _c === void 0 ? false : _c, _d = _a.enforceContext, enforceContext = _d === void 0 ? true : _d;\n var WithIntl = function (props) { return (React.createElement(IntlConsumer, null, function (intl) {\n var _a;\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n var intlProp = (_a = {}, _a[intlPropName] = intl, _a);\n return (React.createElement(WrappedComponent, __assign({}, props, intlProp, { ref: forwardRef ? props.forwardedRef : null })));\n })); };\n WithIntl.displayName = \"injectIntl(\".concat(getDisplayName(WrappedComponent), \")\");\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(\n // @ts-expect-error\n React.forwardRef(function (props, ref) { return (React.createElement(WithIntl, __assign({}, props, { forwardedRef: ref }))); }), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","import * as React from 'react';\nimport { invariantIntlContext } from '../utils';\nimport { Context } from './injectIntl';\nexport default function useIntl() {\n var intl = React.useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport useIntl from './useIntl';\nvar DisplayName;\n(function (DisplayName) {\n DisplayName[\"formatDate\"] = \"FormattedDate\";\n DisplayName[\"formatTime\"] = \"FormattedTime\";\n DisplayName[\"formatNumber\"] = \"FormattedNumber\";\n DisplayName[\"formatList\"] = \"FormattedList\";\n // Note that this DisplayName is the locale display name, not to be confused with\n // the name of the enum, which is for React component display name in dev tools.\n DisplayName[\"formatDisplayName\"] = \"FormattedDisplayName\";\n})(DisplayName || (DisplayName = {}));\nvar DisplayNameParts;\n(function (DisplayNameParts) {\n DisplayNameParts[\"formatDate\"] = \"FormattedDateParts\";\n DisplayNameParts[\"formatTime\"] = \"FormattedTimeParts\";\n DisplayNameParts[\"formatNumber\"] = \"FormattedNumberParts\";\n DisplayNameParts[\"formatList\"] = \"FormattedListParts\";\n})(DisplayNameParts || (DisplayNameParts = {}));\nexport var FormattedNumberParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatNumberToParts(value, formatProps));\n};\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport var FormattedListParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatListToParts(value, formatProps));\n};\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport function createFormattedDateTimePartsComponent(name) {\n var ComponentParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n var formattedParts = name === 'formatDate'\n ? intl.formatDateToParts(date, formatProps)\n : intl.formatTimeToParts(date, formatProps);\n return children(formattedParts);\n };\n ComponentParts.displayName = DisplayNameParts[name];\n return ComponentParts;\n}\nexport function createFormattedComponent(name) {\n var Component = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props\n // TODO: fix TS type definition for localeMatcher upstream\n , [\"value\", \"children\"]);\n // TODO: fix TS type definition for localeMatcher upstream\n var formattedValue = intl[name](value, formatProps);\n if (typeof children === 'function') {\n return children(formattedValue);\n }\n var Text = intl.textComponent || React.Fragment;\n return React.createElement(Text, null, formattedValue);\n };\n Component.displayName = DisplayName[name];\n return Component;\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { createIntl as coreCreateIntl, formatMessage as coreFormatMessage, } from '@formatjs/intl';\nimport * as React from 'react';\nimport { DEFAULT_INTL_CONFIG, assignUniqueKeysToParts } from '../utils';\nimport { isFormatXMLElementFn, } from 'intl-messageformat';\nfunction assignUniqueKeysToFormatXMLElementFnArgument(values) {\n if (!values) {\n return values;\n }\n return Object.keys(values).reduce(function (acc, k) {\n var v = values[k];\n acc[k] = isFormatXMLElementFn(v)\n ? assignUniqueKeysToParts(v)\n : v;\n return acc;\n }, {});\n}\nvar formatMessage = function (config, formatters, descriptor, rawValues) {\n var rest = [];\n for (var _i = 4; _i < arguments.length; _i++) {\n rest[_i - 4] = arguments[_i];\n }\n var values = assignUniqueKeysToFormatXMLElementFnArgument(rawValues);\n var chunks = coreFormatMessage.apply(void 0, __spreadArray([config,\n formatters,\n descriptor,\n values], rest, false));\n if (Array.isArray(chunks)) {\n return React.Children.toArray(chunks);\n }\n return chunks;\n};\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport var createIntl = function (_a, cache) {\n var rawDefaultRichTextElements = _a.defaultRichTextElements, config = __rest(_a, [\"defaultRichTextElements\"]);\n var defaultRichTextElements = assignUniqueKeysToFormatXMLElementFnArgument(rawDefaultRichTextElements);\n var coreIntl = coreCreateIntl(__assign(__assign(__assign({}, DEFAULT_INTL_CONFIG), config), { defaultRichTextElements: defaultRichTextElements }), cache);\n var resolvedConfig = {\n locale: coreIntl.locale,\n timeZone: coreIntl.timeZone,\n fallbackOnEmptyString: coreIntl.fallbackOnEmptyString,\n formats: coreIntl.formats,\n defaultLocale: coreIntl.defaultLocale,\n defaultFormats: coreIntl.defaultFormats,\n messages: coreIntl.messages,\n onError: coreIntl.onError,\n defaultRichTextElements: defaultRichTextElements,\n };\n return __assign(__assign({}, coreIntl), { formatMessage: formatMessage.bind(null, resolvedConfig, \n // @ts-expect-error fix this\n coreIntl.formatters), \n // @ts-expect-error fix this\n $t: formatMessage.bind(null, resolvedConfig, coreIntl.formatters) });\n};\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __extends } from \"tslib\";\nimport { createIntlCache } from '@formatjs/intl';\nimport * as React from 'react';\nimport { DEFAULT_INTL_CONFIG, invariantIntlContext, shallowEqual } from '../utils';\nimport { Provider } from './injectIntl';\nimport { createIntl } from './createIntl';\nfunction processIntlConfig(config) {\n return {\n locale: config.locale,\n timeZone: config.timeZone,\n fallbackOnEmptyString: config.fallbackOnEmptyString,\n formats: config.formats,\n textComponent: config.textComponent,\n messages: config.messages,\n defaultLocale: config.defaultLocale,\n defaultFormats: config.defaultFormats,\n onError: config.onError,\n onWarn: config.onWarn,\n wrapRichTextChunksInFragment: config.wrapRichTextChunksInFragment,\n defaultRichTextElements: config.defaultRichTextElements,\n };\n}\nvar IntlProvider = /** @class */ (function (_super) {\n __extends(IntlProvider, _super);\n function IntlProvider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cache = createIntlCache();\n _this.state = {\n cache: _this.cache,\n intl: createIntl(processIntlConfig(_this.props), _this.cache),\n prevConfig: processIntlConfig(_this.props),\n };\n return _this;\n }\n IntlProvider.getDerivedStateFromProps = function (props, _a) {\n var prevConfig = _a.prevConfig, cache = _a.cache;\n var config = processIntlConfig(props);\n if (!shallowEqual(prevConfig, config)) {\n return {\n intl: createIntl(config, cache),\n prevConfig: config,\n };\n }\n return null;\n };\n IntlProvider.prototype.render = function () {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n };\n IntlProvider.displayName = 'IntlProvider';\n IntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n return IntlProvider;\n}(React.PureComponent));\nexport default IntlProvider;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __rest } from \"tslib\";\nimport * as React from 'react';\nimport useIntl from './useIntl';\nimport { shallowEqual } from '../utils';\nfunction areEqual(prevProps, nextProps) {\n var values = prevProps.values, otherProps = __rest(prevProps, [\"values\"]);\n var nextValues = nextProps.values, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (shallowEqual(nextValues, values) &&\n shallowEqual(otherProps, nextOtherProps));\n}\nfunction FormattedMessage(props) {\n var intl = useIntl();\n var formatMessage = intl.formatMessage, _a = intl.textComponent, Text = _a === void 0 ? React.Fragment : _a;\n var id = props.id, description = props.description, defaultMessage = props.defaultMessage, values = props.values, children = props.children, _b = props.tagName, Component = _b === void 0 ? Text : _b, ignoreTag = props.ignoreTag;\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var nodes = formatMessage(descriptor, values, {\n ignoreTag: ignoreTag,\n });\n if (typeof children === 'function') {\n return children(Array.isArray(nodes) ? nodes : [nodes]);\n }\n if (Component) {\n return React.createElement(Component, null, React.Children.toArray(nodes));\n }\n return React.createElement(React.Fragment, null, nodes);\n}\nFormattedMessage.displayName = 'FormattedMessage';\nvar MemoizedFormattedMessage = React.memo(FormattedMessage, areEqual);\nMemoizedFormattedMessage.displayName = 'MemoizedFormattedMessage';\nexport default MemoizedFormattedMessage;\n","import { createFormattedComponent, createFormattedDateTimePartsComponent, } from './src/components/createFormattedComponent';\nimport injectIntl, { Provider as RawIntlProvider, Context as IntlContext, } from './src/components/injectIntl';\nimport useIntl from './src/components/useIntl';\nimport IntlProvider from './src/components/provider';\nimport { createIntl } from './src/components/createIntl';\nimport FormattedRelativeTime from './src/components/relative';\nimport FormattedPlural from './src/components/plural';\nimport FormattedMessage from './src/components/message';\nimport FormattedDateTimeRange from './src/components/dateTimeRange';\nexport { FormattedDateTimeRange, FormattedMessage, FormattedPlural, FormattedRelativeTime, IntlContext, IntlProvider, RawIntlProvider, createIntl, injectIntl, useIntl, };\nexport { createIntlCache, UnsupportedFormatterError, InvalidConfigError, MissingDataError, MessageFormatError, MissingTranslationError, IntlErrorCode as ReactIntlErrorCode, IntlError as ReactIntlError, } from '@formatjs/intl';\nexport function defineMessages(msgs) {\n return msgs;\n}\nexport function defineMessage(msg) {\n return msg;\n}\n// IMPORTANT: Explicit here to prevent api-extractor from outputing `import('./src/types').CustomFormatConfig`\nexport var FormattedDate = createFormattedComponent('formatDate');\nexport var FormattedTime = createFormattedComponent('formatTime');\nexport var FormattedNumber = createFormattedComponent('formatNumber');\nexport var FormattedList = createFormattedComponent('formatList');\nexport var FormattedDisplayName = createFormattedComponent('formatDisplayName');\nexport var FormattedDateParts = createFormattedDateTimePartsComponent('formatDate');\nexport var FormattedTimeParts = createFormattedDateTimePartsComponent('formatTime');\nexport { FormattedNumberParts, FormattedListParts, } from './src/components/createFormattedComponent';\n","import { Locale } from '@/types'\nimport messagesDE from 'intl/messages/messages.de.json'\nimport messagesEN from 'intl/messages/messages.en.json'\nimport messagesES from 'intl/messages/messages.es.json'\nimport messagesFR from 'intl/messages/messages.fr.json'\nimport messagesIT from 'intl/messages/messages.it.json'\nimport messagesNL from 'intl/messages/messages.nl.json'\nimport messagesPT from 'intl/messages/messages.pt.json'\n\nexport const getTranslationsByLocale = (locale: Locale): Record<string, string> => {\n // A CMS plugin can add LCID format like : 'fr-FR' instead of 'fr'.\n // Instead of specifying all possibilities we just remove the last part of the string.\n const merchantLocale = locale.slice(0, 2)\n switch (merchantLocale) {\n case Locale.fr:\n return messagesFR\n case Locale.es:\n return messagesES\n case Locale.it:\n return messagesIT\n case Locale.de:\n return messagesDE\n case Locale.pt:\n return messagesPT\n case Locale.nl:\n return messagesNL\n case Locale.en:\n default:\n return messagesEN\n }\n}\n","import React, { FC, ReactNode } from 'react'\n\nimport { IntlProvider } from 'react-intl'\n\nimport { Locale } from '@/types'\nimport { getTranslationsByLocale } from 'intl/utils'\n\ntype Props = { children: ReactNode; locale: Locale }\n\nconst Provider: FC<Props> = ({ children, locale }) => (\n <IntlProvider messages={getTranslationsByLocale(locale)} locale={locale} defaultLocale=\"en\">\n {children}\n </IntlProvider>\n)\n\nexport default Provider\n","/* eslint-disable */\n// Function to hash a string\n// https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript\nexport const hashStringForStorage = (str: string): string =>\n str\n // The input string is split into an array of characters.\n .split('')\n // The reduce function is used to apply a function against an accumulator and each element in the array (from left to right) to reduce it to a single output value.\n .reduce(\n (a, b) =>\n // The accumulator (a) is shifted left by 5 bits (multiplied by 32), then subtracted by itself and added to the ASCII value of the current character (b).\n // The bitwise OR operation with 0 is used to ensure the result is a 32-bit integer.\n // eslint-disable-next-line no-bitwise\n ((a << 5) - a + b.charCodeAt(0)) | 0,\n 0,\n ) // The initial value of the accumulator is 0.\n .toString() // The result is then converted to a string.\n .replace('-', 'A') // If the hash is negative (which is represented by a leading '-'), it's replaced with 'A' to ensure the hash is alphanumeric.\n\nexport const isMoreThanOneHourAgo = (date: number): boolean => {\n const ONE_HOUR_IN_MILLISECONDS = 1000 * 60 * 60\n const currentTime = Date.now()\n const difference = currentTime - date\n\n return difference >= ONE_HOUR_IN_MILLISECONDS\n}\n","import { ConfigPlan, EligibilityPlan } from '@/types'\nimport { hashStringForStorage } from 'utils/utilsForStorage'\n\ntype CreateKeyType = {\n purchaseAmount: number\n plans?: ConfigPlan[]\n customerBillingCountry?: string\n customerShippingCountry?: string\n domain?: string\n merchantId?: string\n}\n\ntype StorageType = {\n value: EligibilityPlan[]\n timestamp: number\n}\n\ntype UseSessionStorageType = {\n getCache: (key: string) => StorageType | null\n setCache: (key: string, value: EligibilityPlan[]) => void\n clearCache: () => void\n deleteCache: (key: string) => void\n createKey: (params: CreateKeyType) => string\n}\n\nexport const useSessionStorage: () => UseSessionStorageType = () => {\n const setCache = (key: string, value: EligibilityPlan[]) => {\n // Save data to sessionStorage and create timestamp\n const timestamp = Date.now()\n sessionStorage.setItem(key, JSON.stringify({ value, timestamp }))\n }\n\n const getCache = (key: string): StorageType | null => {\n // Get saved data from sessionStorage\n const stringData = sessionStorage.getItem(key) || ''\n // Parse cached data to use it directly as an array of EligibilityPlan\n return stringData ? JSON.parse(stringData) : null\n }\n\n const deleteCache = (key: string) => {\n // Remove saved data from sessionStorage\n sessionStorage.removeItem(key)\n }\n\n const clearCache = () => {\n // Remove all saved data from sessionStorage\n sessionStorage.clear()\n }\n\n const createKey = (params: CreateKeyType): string => {\n const {\n purchaseAmount,\n plans,\n customerBillingCountry,\n customerShippingCountry,\n domain,\n merchantId,\n } = params\n\n const stringAmount = purchaseAmount.toString()\n const stringPlans = JSON.stringify(plans)\n // Using build version into the key to invalidate cache when the widget is updated\n const buildVersion = process.env.BUILD_VERSION ?? 'local-build'\n return hashStringForStorage(\n `${domain}${merchantId}${stringAmount}${stringPlans}${customerBillingCountry}${customerShippingCountry}${buildVersion}`,\n )\n }\n\n return {\n setCache,\n getCache,\n clearCache,\n deleteCache,\n createKey,\n }\n}\n","import { EligibilityPlan, ErrorResponse } from '@/types'\n\nexport async function fetchFromApi(\n data: { [key: string]: unknown },\n headers?: { [key: string]: unknown },\n url = '',\n): Promise<EligibilityPlan[] | ErrorResponse> {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n cache: 'force-cache',\n body: JSON.stringify(data),\n })\n return response.json()\n}\n","import { ConfigPlan, EligibilityPlan, EligibilityPlanToDisplay } from '@/types'\n\nconst isPlanEligible = (plan: EligibilityPlan, configPlan?: ConfigPlan) => {\n if (!plan.eligible) {\n return false\n }\n return configPlan\n ? plan.purchase_amount >= configPlan?.minAmount && plan.purchase_amount <= configPlan?.maxAmount\n : false\n}\n\nconst getPaymentPlanBoundaries = (plan: EligibilityPlan, configPlan?: ConfigPlan) => {\n // When the plan is not eligible, the purchase amount constraints is given from the merchant config\n const purchaseAmountConstraints = plan.constraints?.purchase_amount\n if (purchaseAmountConstraints && configPlan) {\n return {\n minAmount: Math.max(configPlan.minAmount, purchaseAmountConstraints?.minimum),\n maxAmount: Math.min(configPlan.maxAmount, purchaseAmountConstraints?.maximum),\n }\n }\n return configPlan ?? {}\n}\n\nconst filterEligibility = (\n eligibilities: EligibilityPlan[],\n configPlans?: ConfigPlan[],\n): EligibilityPlanToDisplay[] => {\n // Remove P1X if no configuration is provided\n if (!configPlans) {\n return eligibilities.filter(\n (plan) =>\n !(plan.installments_count === 1 && plan.deferred_days === 0 && plan.deferred_months === 0),\n )\n }\n\n // Else check if the plan is eligible regarding the related configPlan\n return eligibilities.map((plan) => {\n const eligibilityDeferredDays =\n (plan.deferred_months ? plan.deferred_months : 0) * 30 +\n (plan.deferred_days ? plan.deferred_days : 0)\n\n // find the related configPlan\n const relatedConfigPlan = configPlans.find((configPlan) => {\n const configPlanDeferredDays =\n (configPlan.deferredMonths ? configPlan.deferredMonths : 0) * 30 +\n (configPlan.deferredDays ? configPlan.deferredDays : 0)\n return (\n plan.installments_count === configPlan.installmentsCount &&\n eligibilityDeferredDays === configPlanDeferredDays\n )\n })\n\n return {\n ...plan,\n eligible: isPlanEligible(plan, relatedConfigPlan),\n ...getPaymentPlanBoundaries(plan, relatedConfigPlan),\n }\n })\n}\n\nexport default filterEligibility\n","import { useEffect, useState } from 'react'\n\nimport { ApiConfig, ConfigPlan, EligibilityPlan, statusResponse } from '@/types'\nimport { useSessionStorage } from 'hooks/useSessionStorage'\nimport { fetchFromApi } from 'utils/fetch'\nimport filterEligibility from 'utils/filterEligibility'\nimport { isMoreThanOneHourAgo } from 'utils/utilsForStorage'\n\nconst useFetchEligibility = (\n purchaseAmount: number,\n { domain, merchantId }: ApiConfig,\n plans?: ConfigPlan[],\n customerBillingCountry?: string,\n customerShippingCountry?: string,\n): [EligibilityPlan[], statusResponse] => {\n const [eligibility, setEligibility] = useState([] as EligibilityPlan[])\n const [status, setStatus] = useState(statusResponse.PENDING)\n\n // caching\n const { getCache, setCache, createKey, clearCache } = useSessionStorage()\n const key = createKey({\n purchaseAmount,\n plans,\n customerBillingCountry,\n customerShippingCountry,\n domain,\n merchantId,\n })\n const currentCache = getCache(key)?.value\n const lastCacheTimestamp = getCache(key)?.timestamp\n // If the stored date is more than an hour ago, we should invalidate the cache\n const shouldInvalidate = lastCacheTimestamp && isMoreThanOneHourAgo(lastCacheTimestamp)\n\n const configInstallments = plans?.map((plan) => ({\n installments_count: plan.installmentsCount,\n deferred_days: plan?.deferredDays,\n deferred_months: plan?.deferredMonths,\n }))\n useEffect(() => {\n if (status === statusResponse.PENDING) {\n let billingAddress = null\n if (customerBillingCountry) {\n billingAddress = {\n country: customerBillingCountry,\n }\n }\n\n let shippingAddress = null\n if (customerShippingCountry) {\n shippingAddress = {\n country: customerShippingCountry,\n }\n }\n if (currentCache && !shouldInvalidate) {\n setEligibility(currentCache)\n setStatus(statusResponse.SUCCESS)\n }\n if (shouldInvalidate) {\n // If we should invalidate, we clear all cache\n clearCache()\n }\n if (!currentCache) {\n // Fetch eligibility from API\n fetchFromApi(\n {\n purchase_amount: purchaseAmount,\n queries: configInstallments,\n billing_address: billingAddress,\n shipping_address: shippingAddress,\n },\n {\n Authorization: `Alma-Merchant-Auth ${merchantId}`,\n 'X-Alma-Agent': `Alma Widget/${process.env.BUILD_VERSION}`,\n },\n `${domain}/v2/payments/eligibility`,\n )\n .then((res) => {\n // If the response contains an error_code, we set the status to failed - for example if code is 403 unauthorized\n // When purchase amount & plans are not compatible, the API returns an error {\"running\": {\"message\": \"'purchase_amount'\"}} which does not contain the key `error_code`\n // And the widget keeps loading if we don't handle it, so we need to cover this case and returns a FAILED status\n if ('error_code' in res || 'errors' in res) {\n setStatus(statusResponse.FAILED)\n } else {\n setEligibility(res as EligibilityPlan[])\n setCache(key, res as EligibilityPlan[])\n setStatus(statusResponse.SUCCESS)\n }\n })\n .catch(() => {\n setStatus(statusResponse.FAILED)\n })\n }\n }\n }, [\n status,\n purchaseAmount,\n key,\n customerBillingCountry,\n customerShippingCountry,\n currentCache,\n shouldInvalidate,\n configInstallments,\n merchantId,\n domain,\n setCache,\n clearCache,\n ])\n return [filterEligibility(eligibility, plans), status]\n}\nexport default useFetchEligibility\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n'use strict';\n\nexports.match = matchQuery;\nexports.parse = parseQuery;\n\n// -----------------------------------------------------------------------------\n\nvar RE_MEDIA_QUERY = /(?:(only|not)?\\s*([^\\s\\(\\)]+)(?:\\s*and)?\\s*)?(.+)?/i,\n RE_MQ_EXPRESSION = /\\(\\s*([^\\s\\:\\)]+)\\s*(?:\\:\\s*([^\\s\\)]+))?\\s*\\)/,\n RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/,\n RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/,\n RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;\n\nfunction matchQuery(mediaQuery, values) {\n return parseQuery(mediaQuery).some(function (query) {\n var inverse = query.inverse;\n\n // Either the parsed or specified `type` is \"all\", or the types must be\n // equal for a match.\n var typeMatch = query.type === 'all' || values.type === query.type;\n\n // Quit early when `type` doesn't match, but take \"not\" into account.\n if ((typeMatch && inverse) || !(typeMatch || inverse)) {\n return false;\n }\n\n var expressionsMatch = query.expressions.every(function (expression) {\n var feature = expression.feature,\n modifier = expression.modifier,\n expValue = expression.value,\n value = values[feature];\n\n // Missing or falsy values don't match.\n if (!value) { return false; }\n\n switch (feature) {\n case 'orientation':\n case 'scan':\n return value.toLowerCase() === expValue.toLowerCase();\n\n case 'width':\n case 'height':\n case 'device-width':\n case 'device-height':\n expValue = toPx(expValue);\n value = toPx(value);\n break;\n\n case 'resolution':\n expValue = toDpi(expValue);\n value = toDpi(value);\n break;\n\n case 'aspect-ratio':\n case 'device-aspect-ratio':\n case /* Deprecated */ 'device-pixel-ratio':\n expValue = toDecimal(expValue);\n value = toDecimal(value);\n break;\n\n case 'grid':\n case 'color':\n case 'color-index':\n case 'monochrome':\n expValue = parseInt(expValue, 10) || 1;\n value = parseInt(value, 10) || 0;\n break;\n }\n\n switch (modifier) {\n case 'min': return value >= expValue;\n case 'max': return value <= expValue;\n default : return value === expValue;\n }\n });\n\n return (expressionsMatch && !inverse) || (!expressionsMatch && inverse);\n });\n}\n\nfunction parseQuery(mediaQuery) {\n return mediaQuery.split(',').map(function (query) {\n query = query.trim();\n\n var captures = query.match(RE_MEDIA_QUERY),\n modifier = captures[1],\n type = captures[2],\n expressions = captures[3] || '',\n parsed = {};\n\n parsed.inverse = !!modifier && modifier.toLowerCase() === 'not';\n parsed.type = type ? type.toLowerCase() : 'all';\n\n // Split expressions into a list.\n expressions = expressions.match(/\\([^\\)]+\\)/g) || [];\n\n parsed.expressions = expressions.map(function (expression) {\n var captures = expression.match(RE_MQ_EXPRESSION),\n feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n\n return {\n modifier: feature[1],\n feature : feature[2],\n value : captures[2]\n };\n });\n\n return parsed;\n });\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction toDecimal(ratio) {\n var decimal = Number(ratio),\n numbers;\n\n if (!decimal) {\n numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/);\n decimal = numbers[1] / numbers[2];\n }\n\n return decimal;\n}\n\nfunction toDpi(resolution) {\n var value = parseFloat(resolution),\n units = String(resolution).match(RE_RESOLUTION_UNIT)[1];\n\n switch (units) {\n case 'dpcm': return value / 2.54;\n case 'dppx': return value * 96;\n default : return value;\n }\n}\n\nfunction toPx(length) {\n var value = parseFloat(length),\n units = String(length).match(RE_LENGTH_UNIT)[1];\n\n switch (units) {\n case 'em' : return value * 16;\n case 'rem': return value * 16;\n case 'cm' : return value * 96 / 2.54;\n case 'mm' : return value * 96 / 2.54 / 10;\n case 'in' : return value * 96;\n case 'pt' : return value * 72;\n case 'pc' : return value * 72 / 12;\n default : return value;\n }\n}\n","'use strict';\n\nvar staticMatch = require('css-mediaquery').match;\nvar dynamicMatch = typeof window !== 'undefined' ? window.matchMedia : null;\n\n// our fake MediaQueryList\nfunction Mql(query, values, forceStatic){\n var self = this;\n var mql;\n\n // matchMedia will return null in FF when it's called in a hidden iframe\n // ref: https://stackoverflow.com/a/12330568\n if(dynamicMatch && !forceStatic) mql = dynamicMatch.call(window, query);\n\n if (mql) {\n this.matches = mql.matches;\n this.media = mql.media;\n // TODO: is there a time it makes sense to remove this listener?\n mql.addListener(update);\n } else {\n this.matches = staticMatch(query, values);\n this.media = query;\n }\n\n this.addListener = addListener;\n this.removeListener = removeListener;\n this.dispose = dispose;\n\n function addListener(listener){\n if(mql){\n mql.addListener(listener);\n }\n }\n\n function removeListener(listener){\n if(mql){\n mql.removeListener(listener);\n }\n }\n\n // update ourselves!\n function update(evt){\n self.matches = evt.matches;\n self.media = evt.media;\n }\n\n function dispose(){\n if(mql){\n mql.removeListener(update);\n }\n }\n}\n\nfunction matchMedia(query, values, forceStatic){\n return new Mql(query, values, forceStatic);\n}\n\nmodule.exports = matchMedia;\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","function shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n if (!arrA || !arrB) {\n return false;\n }\n const len = arrA.length;\n if (arrB.length !== len) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n const aKeys = Object.keys(objA);\n const bKeys = Object.keys(objB);\n const len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n const key = aKeys[i];\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction shallowEqual(a, b) {\n const aIsArr = Array.isArray(a);\n const bIsArr = Array.isArray(b);\n if (aIsArr !== bIsArr) {\n return false;\n }\n if (aIsArr && bIsArr) {\n return shallowEqualArrays(a, b);\n }\n return shallowEqualObjects(a, b);\n}\n\nexport { shallowEqual, shallowEqualArrays, shallowEqualObjects };\n//# sourceMappingURL=index.modern.mjs.map\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import { createContext, useRef, useEffect, useContext, useState } from 'react';\nimport matchMedia from 'matchmediaquery';\nimport hyphenate from 'hyphenate-style-name';\nimport { shallowEqualObjects } from 'shallow-equal';\nimport PropTypes from 'prop-types';\n\nconst stringOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.number]);\n// media types\nconst types = {\n all: PropTypes.bool,\n grid: PropTypes.bool,\n aural: PropTypes.bool,\n braille: PropTypes.bool,\n handheld: PropTypes.bool,\n print: PropTypes.bool,\n projection: PropTypes.bool,\n screen: PropTypes.bool,\n tty: PropTypes.bool,\n tv: PropTypes.bool,\n embossed: PropTypes.bool\n};\n// properties that match media queries\nconst matchers = {\n orientation: PropTypes.oneOf(['portrait', 'landscape']),\n scan: PropTypes.oneOf(['progressive', 'interlace']),\n aspectRatio: PropTypes.string,\n deviceAspectRatio: PropTypes.string,\n height: stringOrNumber,\n deviceHeight: stringOrNumber,\n width: stringOrNumber,\n deviceWidth: stringOrNumber,\n color: PropTypes.bool,\n colorIndex: PropTypes.bool,\n monochrome: PropTypes.bool,\n resolution: stringOrNumber,\n type: Object.keys(types)\n};\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst { type, ...featureMatchers } = matchers;\n// media features\nconst features = {\n minAspectRatio: PropTypes.string,\n maxAspectRatio: PropTypes.string,\n minDeviceAspectRatio: PropTypes.string,\n maxDeviceAspectRatio: PropTypes.string,\n minHeight: stringOrNumber,\n maxHeight: stringOrNumber,\n minDeviceHeight: stringOrNumber,\n maxDeviceHeight: stringOrNumber,\n minWidth: stringOrNumber,\n maxWidth: stringOrNumber,\n minDeviceWidth: stringOrNumber,\n maxDeviceWidth: stringOrNumber,\n minColor: PropTypes.number,\n maxColor: PropTypes.number,\n minColorIndex: PropTypes.number,\n maxColorIndex: PropTypes.number,\n minMonochrome: PropTypes.number,\n maxMonochrome: PropTypes.number,\n minResolution: stringOrNumber,\n maxResolution: stringOrNumber,\n ...featureMatchers\n};\nconst all = { ...types, ...features };\nvar mq = {\n all: all,\n types: types,\n matchers: matchers,\n features: features\n};\n\nconst negate = (cond) => `not ${cond}`;\nconst keyVal = (k, v) => {\n const realKey = hyphenate(k);\n // px shorthand\n if (typeof v === 'number') {\n v = `${v}px`;\n }\n if (v === true) {\n return realKey;\n }\n if (v === false) {\n return negate(realKey);\n }\n return `(${realKey}: ${v})`;\n};\nconst join = (conds) => conds.join(' and ');\nconst toQuery = (obj) => {\n const rules = [];\n Object.keys(mq.all).forEach((k) => {\n const v = obj[k];\n if (v != null) {\n rules.push(keyVal(k, v));\n }\n });\n return join(rules);\n};\n\nconst Context = createContext(undefined);\n\nconst makeQuery = (settings) => settings.query || toQuery(settings);\nconst hyphenateKeys = (obj) => {\n if (!obj)\n return undefined;\n const keys = Object.keys(obj);\n return keys.reduce((result, key) => {\n result[hyphenate(key)] = obj[key];\n return result;\n }, {});\n};\nconst useIsUpdate = () => {\n const ref = useRef(false);\n useEffect(() => {\n ref.current = true;\n }, []);\n return ref.current;\n};\nconst useDevice = (deviceFromProps) => {\n const deviceFromContext = useContext(Context);\n const getDevice = () => hyphenateKeys(deviceFromProps) || hyphenateKeys(deviceFromContext);\n const [device, setDevice] = useState(getDevice);\n useEffect(() => {\n const newDevice = getDevice();\n if (!shallowEqualObjects(device, newDevice)) {\n setDevice(newDevice);\n }\n }, [deviceFromProps, deviceFromContext]);\n return device;\n};\nconst useQuery = (settings) => {\n const getQuery = () => makeQuery(settings);\n const [query, setQuery] = useState(getQuery);\n useEffect(() => {\n const newQuery = getQuery();\n if (query !== newQuery) {\n setQuery(newQuery);\n }\n }, [settings]);\n return query;\n};\nconst useMatchMedia = (query, device) => {\n const getMatchMedia = () => matchMedia(query, device || {}, !!device);\n const [mq, setMq] = useState(getMatchMedia);\n const isUpdate = useIsUpdate();\n useEffect(() => {\n if (isUpdate) {\n // skip on mounting, it has already been set\n const newMq = getMatchMedia();\n setMq(newMq);\n return () => {\n if (newMq) {\n newMq.dispose();\n }\n };\n }\n }, [query, device]);\n return mq;\n};\nconst useMatches = (mediaQuery) => {\n const [matches, setMatches] = useState(mediaQuery.matches);\n useEffect(() => {\n const updateMatches = (ev) => {\n setMatches(ev.matches);\n };\n mediaQuery.addListener(updateMatches);\n setMatches(mediaQuery.matches);\n return () => {\n mediaQuery.removeListener(updateMatches);\n };\n }, [mediaQuery]);\n return matches;\n};\nconst useMediaQuery = (settings, device, onChange) => {\n const deviceSettings = useDevice(device);\n const query = useQuery(settings);\n if (!query)\n throw new Error('Invalid or missing MediaQuery!');\n const mq = useMatchMedia(query, deviceSettings);\n const matches = useMatches(mq);\n const isUpdate = useIsUpdate();\n useEffect(() => {\n if (isUpdate && onChange) {\n onChange(matches);\n }\n }, [matches]);\n useEffect(() => () => {\n if (mq) {\n mq.dispose();\n }\n }, []);\n return matches;\n};\n\n// ReactNode and ReactElement typings are a little funky for functional components, so the ReactElement cast is needed on the return\nconst MediaQuery = ({ children, device, onChange, ...settings }) => {\n const matches = useMediaQuery(settings, device, onChange);\n if (typeof children === 'function') {\n return children(matches);\n }\n return matches ? children : null;\n};\n\nexport { Context, MediaQuery as default, toQuery, useMediaQuery };\n//# sourceMappingURL=index.js.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React, { FunctionComponent } from 'react'\n\nimport cx from 'classnames'\n\nimport s from 'components/LoadingIndicator/LoadingIndicator.module.css'\n\nexport const LoadingIndicator: FunctionComponent<{ className?: string }> = ({ className }) => (\n <div className={cx(s.loadingIndicator, className)} data-testid=\"loader\">\n <svg\n width=\"120\"\n height=\"134\"\n viewBox=\"0 0 120 134\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M83.8164 41.0325C79.1708 22.8241 69.3458 17 59.9939 17C50.642 17 40.8171 22.8241 36.1715 41.0325L16 117H35.8804C39.119 104.311 49.1016 97.2436 59.9939 97.2436C70.8863 97.2436 80.8689 104.324 84.1075 117H104L83.8164 41.0325ZM59.9939 79.5428C53.6623 79.5428 47.925 82.0552 43.6918 86.1283L55.0936 41.9207C56.1853 37.6953 57.7985 36.3503 60.0061 36.3503C62.2136 36.3503 63.8269 37.6953 64.9185 41.9207L76.3082 86.1283C72.075 82.0552 66.3256 79.5428 59.9939 79.5428Z\"\n fill=\"#FA5022\"\n />\n </svg>\n </div>\n)\n","(function(root) {\n var isOn = false;\n var scrollbarSize;\n var scrollTop;\n\n function getScrollbarSize() {\n if (typeof scrollbarSize !== 'undefined') return scrollbarSize;\n\n var doc = document.documentElement;\n var dummyScroller = document.createElement('div');\n dummyScroller.setAttribute('style', 'width:99px;height:99px;' + 'position:absolute;top:-9999px;overflow:scroll;');\n doc.appendChild(dummyScroller);\n scrollbarSize = dummyScroller.offsetWidth - dummyScroller.clientWidth;\n doc.removeChild(dummyScroller);\n return scrollbarSize;\n }\n\n function hasScrollbar() {\n return document.documentElement.scrollHeight > window.innerHeight;\n }\n\n function on(options) {\n if (typeof document === 'undefined' || isOn) return;\n var doc = document.documentElement;\n scrollTop = window.pageYOffset;\n if (hasScrollbar()) {\n doc.style.width = 'calc(100% - '+ getScrollbarSize() +'px)';\n } else {\n doc.style.width = '100%';\n }\n doc.style.position = 'fixed';\n doc.style.top = -scrollTop + 'px';\n doc.style.overflow = 'hidden';\n isOn = true;\n }\n\n function off() {\n if (typeof document === 'undefined' || !isOn) return;\n var doc = document.documentElement;\n doc.style.width = '';\n doc.style.position = '';\n doc.style.top = '';\n doc.style.overflow = '';\n window.scroll(0, scrollTop);\n isOn = false;\n }\n\n function toggle() {\n if (isOn) {\n off();\n return;\n }\n on();\n }\n\n var noScroll = {\n on: on,\n off: off,\n toggle: toggle,\n };\n\n if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = noScroll;\n } else {\n root.noScroll = noScroll;\n }\n})(this);\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar DISPLAY_NONE = \"none\";\nvar DISPLAY_CONTENTS = \"contents\";\n\nvar tabbableNode = /input|select|textarea|button|object|iframe/;\n\nfunction isNotOverflowing(element, style) {\n return style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0;\n}\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n try {\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n var displayValue = style.getPropertyValue(\"display\");\n return zeroSize ? displayValue !== DISPLAY_CONTENTS && isNotOverflowing(element, style) : displayValue === DISPLAY_NONE;\n } catch (exception) {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inspect element style\");\n return false;\n }\n}\n\nfunction visible(element) {\n var parentElement = element;\n var rootNode = element.getRootNode && element.getRootNode();\n while (parentElement) {\n if (parentElement === document.body) break;\n\n // if we are not hidden yet, skip to checking outside the Web Component\n if (rootNode && parentElement === rootNode) parentElement = rootNode.host.parentNode;\n\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n var descendants = [].slice.call(element.querySelectorAll(\"*\"), 0).reduce(function (finished, el) {\n return finished.concat(!el.shadowRoot ? [el] : findTabbableDescendants(el.shadowRoot));\n }, []);\n return descendants.filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n focusLaterElements = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"focusManager ----------\");\n focusLaterElements.forEach(function (f) {\n var check = f || {};\n console.log(check.nodeName, check.className, check.id);\n });\n console.log(\"end focusManager ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({ preventScroll: preventScroll });\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getActiveElement() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n return el.activeElement.shadowRoot ? getActiveElement(el.activeElement.shadowRoot) : el.activeElement;\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n var activeElement = getActiveElement();\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n if (globalElement) {\n if (globalElement.removeAttribute) {\n globalElement.removeAttribute(\"aria-hidden\");\n } else if (globalElement.length != null) {\n globalElement.forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n } else {\n document.querySelectorAll(globalElement).forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n }\n }\n globalElement = null;\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var check = globalElement || {};\n console.log(\"ariaAppHider ----------\");\n console.log(check.nodeName, check.className, check.id);\n console.log(\"end ariaAppHider ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n var el = appElement || globalElement;\n if (el) {\n return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];\n } else {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return [];\n }\n}\n\nfunction hide(appElement) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var el = _step.value;\n\n el.setAttribute(\"aria-hidden\", \"true\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\nfunction show(appElement) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var el = _step2.value;\n\n el.removeAttribute(\"aria-hidden\");\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction removeClass(at, cls) {\n at.classList.remove(cls);\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n var htmlElement = document.getElementsByTagName(\"html\")[0];\n for (var cls in htmlClassList) {\n removeClass(htmlElement, htmlClassList[cls]);\n }\n\n var body = document.body;\n for (var _cls in docBodyClassList) {\n removeClass(body, docBodyClassList[_cls]);\n }\n\n htmlClassList = {};\n docBodyClassList = {};\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \"<html /> (\" + classes + \"):\\n \";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n \";\n }\n\n classes = document.body.className;\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n \";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n \";\n }\n\n buffer += \"\\n\";\n\n console.log(buffer);\n }\n}\n/* eslint-enable no-console */\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.log = log;\nexports.resetState = resetState;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction log() {\n console.log(\"portalOpenInstances ----------\");\n console.log(portalOpenInstances.openInstances.length);\n portalOpenInstances.openInstances.forEach(function (p) {\n return console.log(p);\n });\n console.log(\"end portalOpenInstances ----------\");\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n portalOpenInstances = new PortalOpenInstances();\n}\n/* eslint-enable no-console */\n\nexports.default = portalOpenInstances;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n var _arr = [before, after];\n\n for (var _i = 0; _i < _arr.length; _i++) {\n var item = _arr[_i];\n if (!item) continue;\n item.parentNode && item.parentNode.removeChild(item);\n }\n before = after = null;\n instances = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n console.log(\"bodyTrap ----------\");\n console.log(instances.length);\n var _arr2 = [before, after];\n for (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var item = _arr2[_i2];\n var check = item || {};\n console.log(check.nodeName, check.className, check.id);\n }\n console.log(\"edn bodyTrap ----------\");\n}\n/* eslint-enable no-console */\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before && !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\n\n/**\n * We need to support the deprecated `KeyboardEvent.keyCode` in addition to\n * `KeyboardEvent.code` for apps that still support IE11. Can be removed when\n * `react-modal` only supports React >18 (which dropped IE support).\n */\nvar isTabKey = function isTabKey(event) {\n return event.code === \"Tab\" || event.keyCode === 9;\n};\nvar isEscKey = function isEscKey(event) {\n return event.code === \"Escape\" || event.keyCode === 27;\n};\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName,\n parentSelector = _this$props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Remove classes.\n bodyOpenClassName && classList.remove(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.openAnimationFrame = requestAnimationFrame(function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (isTabKey(event)) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && isEscKey(event)) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n cancelAnimationFrame(this.openAnimationFrame);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName,\n parentSelector = _props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Add classes.\n bodyOpenClassName && classList.add(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n parentSelector: _propTypes2.default.func,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _safeHTMLElement.canUseDOM && _reactDom2.default.createPortal !== undefined;\n\nvar createHTMLElement = function createHTMLElement(name) {\n return document.createElement(name);\n};\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n if (parent && parent.contains(_this.node)) {\n parent.removeChild(_this.node);\n } else {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n }\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n this.node.className = this.props.portalClassName;\n\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return { prevParent: prevParent, nextParent: nextParent };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n }\n\n // Stop unnecessary renders if modal is remaining closed\n if (!prevProps.isOpen && !isOpen) return;\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n preventScroll: false,\n parentSelector: function parentSelector() {\n return document.body;\n },\n overlayElement: function overlayElement(props, contentEl) {\n return _react2.default.createElement(\n \"div\",\n props,\n contentEl\n );\n },\n contentElement: function contentElement(props, children) {\n return _react2.default.createElement(\n \"div\",\n props,\n children\n );\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n\n\n(0, _reactLifecyclesCompat.polyfill)(Modal);\n\nif (process.env.NODE_ENV !== \"production\") {\n Modal.setCreateHTMLElement = function (fn) {\n return createHTMLElement = fn;\n };\n}\n\nexports.default = Modal;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","import React from 'react'\n\nfunction CrossIcon({\n color = '#fff',\n className,\n}: {\n color?: string\n className?: string\n}): JSX.Element {\n return (\n <svg\n className={className}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M12.5964 11.404L9.41445 8.22205L12.5964 5.04007C12.7732 4.86329 12.7732 4.50974 12.5964 4.33296L11.8893 3.62585C11.6904 3.42698 11.359 3.44908 11.1822 3.62585L8.00023 6.80783L4.81825 3.62585C4.61938 3.42698 4.28792 3.44908 4.11114 3.62585L3.40404 4.33296C3.20516 4.53183 3.20516 4.84119 3.40404 5.04007L6.58602 8.22205L3.40404 11.404C3.20516 11.6029 3.20517 11.9123 3.40404 12.1111L4.11115 12.8182C4.28792 12.995 4.61938 13.0171 4.81825 12.8182L8.00023 9.63626L11.1822 12.8182C11.359 12.995 11.6904 13.0171 11.8893 12.8182L12.5964 12.1111C12.7732 11.9344 12.7732 11.5808 12.5964 11.404Z\"\n fill={color}\n />\n </svg>\n )\n}\n\nexport default CrossIcon\n","/**\n * Prefix classes to avoid name collisions.\n */\nconst prefix = 'alma-eligibility-modal'\n\n/**\n * Class names for the **eligibility modale** widget.\n * Those classes are intended to be used by the **merchant developer**.\n */\nconst STATIC_CUSTOMISATION_CLASSES = {\n desktopModal: `${prefix}-desktop-modal`,\n mobileModal: `${prefix}-mobile-modal`,\n leftSide: `${prefix}-left-side`,\n bullet: `${prefix}-bullet`,\n rightSide: `${prefix}-right-side`,\n title: `${prefix}-title`,\n info: `${prefix}-info`,\n infoMessage: `${prefix}-info-message`,\n eligibilityOptions: `${prefix}-eligibility-options`,\n activeOption: `${prefix}-active-option`,\n closeButton: `${prefix}-close-button`,\n scheduleDetails: `${prefix}-schedule-details`,\n scheduleTotal: `${prefix}-schedule-total`,\n scheduleCredit: `${prefix}-schedule-credit`,\n cardContainer: `${prefix}-card-logos`,\n summary: `${prefix}-summary`,\n}\n\nexport default STATIC_CUSTOMISATION_CLASSES\n","import React, { FunctionComponent, ReactNode } from 'react'\n\nimport cx from 'classnames'\nimport noScroll from 'no-scroll'\nimport { useIntl } from 'react-intl'\nimport Modal from 'react-modal'\n\nimport CrossIcon from 'assets/Cross'\nimport s from 'components/Modal/Modal.module.css'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\n\nexport type Props = Modal.Props & {\n children: ReactNode\n isOpen: boolean\n onClose: (event: React.MouseEvent | React.KeyboardEvent) => void\n className?: string\n contentClassName?: string\n scrollable?: boolean\n}\n\nconst ControlledModal: FunctionComponent<Props> = ({\n children,\n isOpen,\n onClose,\n className,\n contentClassName,\n scrollable = false,\n ...props\n}) => {\n const intl = useIntl()\n\n Modal.setAppElement('body')\n\n return (\n <Modal\n className={cx(s.modal, className)}\n overlayClassName={s.overlay}\n onAfterOpen={() => {\n noScroll.on()\n }}\n onAfterClose={() => {\n noScroll.off()\n }}\n onRequestClose={onClose}\n isOpen={isOpen}\n shouldCloseOnOverlayClick\n shouldCloseOnEsc\n role=\"dialog\"\n aria-modal=\"true\"\n {...props}\n >\n <div className={s.header}>\n <button\n type=\"button\"\n onClick={onClose}\n className={cx(s.closeButton, STATIC_CUSTOMISATION_CLASSES.closeButton)}\n data-testid=\"modal-close-button\"\n aria-label={intl.formatMessage({\n id: 'accessibility.close-button.aria-label',\n defaultMessage: 'Fermer la fenêtre',\n })}\n >\n <CrossIcon aria-hidden=\"true\" />\n </button>\n </div>\n <div className={cx(s.content, contentClassName, { [s.contentScrollable]: scrollable })}>\n {children}\n </div>\n </Modal>\n )\n}\n\nexport default ControlledModal\n","import React, { FC } from 'react'\n\nimport cx from 'classnames'\nimport { FormattedMessage, useIntl } from 'react-intl'\n\nimport s from 'components/SkipLinks/SkipLinks.module.css'\n\ntype Props = {\n skipLinks: Array<{\n href: string\n labelId: string\n defaultMessage: string\n }>\n className?: string\n}\n\nconst SkipLinks: FC<Props> = ({ skipLinks, className }) => {\n const intl = useIntl()\n\n const handleSkipLinkClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n const href = event.currentTarget.getAttribute('href')\n if (href && href.startsWith('#')) {\n const targetId = href.substring(1)\n const targetElement = document.getElementById(targetId)\n\n if (targetElement) {\n // Small delay to allow browser to scroll first\n setTimeout(() => {\n targetElement.focus()\n }, 0)\n }\n }\n }\n\n return (\n <div\n className={cx(s.skipLinks, className)}\n role=\"navigation\"\n aria-label={intl.formatMessage({\n id: 'accessibility.skip-links.navigation.aria-label',\n defaultMessage: 'Navigation rapide',\n })}\n >\n <ul className={s.skipLinksList}>\n {skipLinks.map(({ href, labelId, defaultMessage }) => (\n <li key={href} className={s.skipLinkItem}>\n <a href={href} className={s.skipLink} onClick={handleSkipLinkClick}>\n <FormattedMessage id={labelId} defaultMessage={defaultMessage} />\n </a>\n </li>\n ))}\n </ul>\n </div>\n )\n}\n\nexport default SkipLinks\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name constructNow\n * @category Generic Helpers\n * @summary Constructs a new current date using the passed value constructor.\n * @pure false\n *\n * @description\n * The function constructs a new current date using the constructor from\n * the reference date. It helps to build generic functions that accept date\n * extensions and use the current date.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @param date - The reference date to take constructor from\n *\n * @returns Current date initialized using the given date constructor\n *\n * @example\n * import { constructNow, isSameDay } from 'date-fns'\n *\n * function isToday<DateType extends Date>(\n * date: DateArg<DateType>,\n * ): boolean {\n * // If we were to use `new Date()` directly, the function would behave\n * // differently in different timezones and return false for the same date.\n * return isSameDay(date, constructNow(date));\n * }\n */\nexport function constructNow(date) {\n return constructFrom(date, Date.now());\n}\n\n// Fallback for modularized imports:\nexport default constructNow;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link isSameDay} function options.\n */\n\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same day (and year and month)\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport function isSameDay(laterDate, earlierDate, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return +startOfDay(dateLeft_) === +startOfDay(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameDay;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { constructNow } from \"./constructNow.js\";\nimport { isSameDay } from \"./isSameDay.js\";\n\n/**\n * The {@link isToday} function options.\n */\n\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * @param date - The date to check\n * @param options - An object with options\n *\n * @returns The date is today\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * const result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\nexport function isToday(date, options) {\n return isSameDay(\n constructFrom(options?.in || date, date),\n constructNow(options?.in || date),\n );\n}\n\n// Fallback for modularized imports:\nexport default isToday;\n","import { millisecondsInSecond } from \"./constants.js\";\n\n/**\n * @name secondsToMilliseconds\n * @category Conversion Helpers\n * @summary Convert seconds to milliseconds.\n *\n * @description\n * Convert a number of seconds to a full number of milliseconds.\n *\n * @param seconds - The number of seconds to be converted\n *\n * @returns The number of seconds converted in milliseconds\n *\n * @example\n * // Convert 2 seconds into milliseconds\n * const result = secondsToMilliseconds(2)\n * //=> 2000\n */\nexport function secondsToMilliseconds(seconds) {\n return seconds * millisecondsInSecond;\n}\n\n// Fallback for modularized imports:\nexport default secondsToMilliseconds;\n","import React, { ReactNode } from 'react'\n\nimport { secondsToMilliseconds } from 'date-fns'\nimport { FormattedDate, FormattedMessage, FormattedNumber, IntlShape } from 'react-intl'\n\nimport { EligibilityPlan, EligibilityPlanToDisplay } from '@/types'\nimport { isP1X, priceFromCents } from '@/utils'\nimport s from '@/utils/paymentPlanStrings.module.css'\n\nexport const paymentPlanShorthandName = (payment: EligibilityPlan): ReactNode => {\n const {\n deferred_days: deferredDays,\n deferred_months: deferredMonths,\n installments_count: installmentsCount,\n } = payment\n\n if (installmentsCount === 1 && !deferredDays && !deferredMonths) {\n return (\n <FormattedMessage\n id=\"payment-plan-strings.pay.now.button\"\n defaultMessage=\"Payer maintenant\"\n />\n )\n }\n if (installmentsCount === 1 && deferredDays) {\n return (\n <FormattedMessage\n id=\"payment-plan-strings.day-abbreviation\"\n defaultMessage=\"J{deferredDays}\"\n values={{\n deferredDays: `+${deferredDays}`,\n }}\n />\n )\n }\n if (installmentsCount === 1 && deferredMonths) {\n return (\n <FormattedMessage\n id=\"payment-plan-strings.month-abbreviation\"\n defaultMessage=\"M{deferredMonths}\"\n values={{\n deferredMonths: `+${deferredMonths}`,\n }}\n />\n )\n }\n return `${installmentsCount}x`\n}\n\n/**\n * String version of paymentPlanShorthandName that returns a translated string\n * instead of a ReactNode for use in aria-label attributes for example\n */\nexport const paymentPlanShorthandText = (payment: EligibilityPlan, intl: IntlShape): string => {\n const {\n deferred_days: deferredDays,\n deferred_months: deferredMonths,\n installments_count: installmentsCount,\n } = payment\n\n if (installmentsCount === 1 && !deferredDays && !deferredMonths) {\n return intl.formatMessage({\n id: 'payment-plan-strings.pay.now.button',\n defaultMessage: 'Payer maintenant',\n })\n }\n if (installmentsCount === 1 && deferredDays) {\n return intl.formatMessage(\n {\n id: 'payment-plan-strings.day-abbreviation',\n defaultMessage: 'J{deferredDays}',\n },\n {\n deferredDays: `+${deferredDays}`,\n },\n )\n }\n if (installmentsCount === 1 && deferredMonths) {\n return intl.formatMessage(\n {\n id: 'payment-plan-strings.month-abbreviation',\n defaultMessage: 'M{deferredMonths}',\n },\n {\n deferredMonths: `+${deferredMonths}`,\n },\n )\n }\n return `${installmentsCount}x`\n}\n\n// eslint-disable-next-line consistent-return\nconst withNoFee = (payment: EligibilityPlanToDisplay) => {\n if (\n payment.payment_plan?.every((plan) => plan.customer_fee === 0 && plan.customer_interest === 0)\n ) {\n return (\n <>\n {' '}\n <FormattedMessage id=\"payment-plan-strings.no-fee\" defaultMessage=\"(sans frais)\" />\n </>\n )\n }\n}\n\nexport const paymentPlanInfoText = (payment: EligibilityPlanToDisplay): ReactNode => {\n const {\n deferred_days: deferredDays,\n deferred_months: deferredMonths,\n installments_count: installmentsCount,\n eligible,\n purchase_amount: purchaseAmount,\n minAmount = 0,\n maxAmount = 0,\n payment_plan: paymentPlan,\n } = payment\n const deferredDaysCount = deferredDays + deferredMonths * 30\n\n if (!eligible) {\n return (\n <p>\n {purchaseAmount > maxAmount ? (\n <FormattedMessage\n id=\"payment-plan-strings.ineligible-greater-than-max\"\n defaultMessage=\"Jusqu'à {maxAmount}\"\n values={{\n maxAmount: (\n <FormattedNumber\n value={priceFromCents(maxAmount)}\n style=\"currency\"\n currency=\"EUR\"\n />\n ),\n }}\n />\n ) : (\n <FormattedMessage\n id=\"payment-plan-strings.ineligible-lower-than-min\"\n defaultMessage=\"À partir de {minAmount}\"\n values={{\n minAmount: (\n <FormattedNumber\n value={priceFromCents(minAmount)}\n style=\"currency\"\n currency=\"EUR\"\n />\n ),\n }}\n />\n )}\n </p>\n )\n }\n if (!paymentPlan) {\n /* This error should never happen. We added this condition to avoid a typescript warning on\n payment_plan possibly undefined. As far as we know, it only happens when the plan is not\n eligible, which is checked above. */\n throw Error(\n `No payment plan provided for payment in ${installmentsCount} installments. Please contact us if you see this error.`,\n )\n } else if (deferredDaysCount !== 0 && installmentsCount === 1) {\n return (\n <p>\n <FormattedMessage\n id=\"payment-plan-strings.deferred\"\n defaultMessage=\"{totalAmount} à payer le {dueDate}\"\n values={{\n totalAmount: (\n <FormattedNumber\n value={priceFromCents(paymentPlan[0].total_amount)}\n style=\"currency\"\n currency=\"EUR\"\n />\n ),\n dueDate: (\n <FormattedDate\n value={secondsToMilliseconds(paymentPlan[0].due_date)}\n day=\"numeric\"\n month=\"long\"\n year=\"numeric\"\n />\n ),\n }}\n />\n {withNoFee(payment)}\n </p>\n )\n } else if (installmentsCount > 0) {\n const areInstallmentsOfSameAmount = paymentPlan?.every(\n (installment, index) =>\n index === 0 || installment.total_amount === paymentPlan[0].total_amount,\n )\n\n if (installmentsCount > 4) {\n return (\n <p className={s.openModalInfo}>\n <FormattedMessage\n id=\"payment-plan-strings.credit\"\n defaultMessage=\"Cliquez pour en savoir plus\"\n description=\"Link to credit details\"\n />\n </p>\n )\n }\n\n if (isP1X(payment)) {\n return (\n <p>\n <FormattedMessage\n id=\"payment-plan-strings.pay-now\"\n defaultMessage=\"Payer maintenant {totalAmount}\"\n values={{\n totalAmount: (\n <FormattedNumber\n value={priceFromCents(paymentPlan[0].total_amount)}\n style=\"currency\"\n currency=\"EUR\"\n />\n ),\n installmentsCount,\n }}\n />\n {withNoFee(payment)}\n </p>\n )\n }\n\n if (areInstallmentsOfSameAmount) {\n return (\n <p>\n <FormattedMessage\n id=\"payment-plan-strings.multiple-installments-same-amount\"\n defaultMessage=\"{installmentsCount} x {totalAmount}\"\n values={{\n totalAmount: (\n <FormattedNumber\n value={priceFromCents(paymentPlan[0].total_amount)}\n style=\"currency\"\n currency=\"EUR\"\n />\n ),\n installmentsCount,\n }}\n />\n {withNoFee(payment)}\n </p>\n )\n }\n\n return (\n <p>\n <FormattedMessage\n id=\"payment-plan-strings.multiple-installments\"\n defaultMessage=\"{numberOfRemainingInstallments, plural, one {{firstInstallmentAmount} puis {numberOfRemainingInstallments} x {othersInstallmentAmount}} other {{firstInstallmentAmount} puis {numberOfRemainingInstallments} x {othersInstallmentAmount}}}\"\n values={{\n firstInstallmentAmount: (\n <FormattedNumber\n value={priceFromCents(paymentPlan[0].total_amount)}\n style=\"currency\"\n currency=\"EUR\"\n />\n ),\n numberOfRemainingInstallments: installmentsCount - 1,\n othersInstallmentAmount: (\n <FormattedNumber\n value={priceFromCents(paymentPlan[1].total_amount)}\n style=\"currency\"\n currency=\"EUR\"\n />\n ),\n }}\n />\n {withNoFee(payment)}\n </p>\n )\n }\n return (\n <p>\n <FormattedMessage\n id=\"payment-plan-strings.default-message\"\n defaultMessage=\"Payez en plusieurs fois avec Alma\"\n />\n </p>\n )\n}\n\nexport const getPlanDescription = (plan: EligibilityPlan, intl: IntlShape) => {\n if (plan.installments_count === 1 && plan.deferred_days === 0 && plan.deferred_months === 0) {\n return intl.formatMessage({\n id: 'payment-plan-strings.pay.now.button',\n defaultMessage: 'Payer maintenant',\n })\n }\n if (plan.installments_count === 1 && (plan.deferred_days > 0 || plan.deferred_months > 0)) {\n return intl.formatMessage(\n {\n id: 'payment-plan-strings.pay.deferred.button',\n defaultMessage: 'Payer en différé : {deferredTime}',\n },\n {\n deferredTime:\n plan.deferred_months > 0\n ? intl.formatMessage(\n {\n id: 'payment-plan-strings.deferred.months',\n defaultMessage: '{months, number} {months, plural, one {mois} other {mois}}',\n },\n { months: plan.deferred_months },\n )\n : intl.formatMessage(\n {\n id: 'payment-plan-strings.deferred.days',\n defaultMessage: '{days, number} {days, plural, one {jour} other {jours}}',\n },\n { days: plan.deferred_days },\n ),\n },\n )\n }\n\n return `${plan.installments_count}x`\n}\n","import React, { FC, useEffect, useRef } from 'react'\n\nimport cx from 'classnames'\nimport { FormattedMessage, useIntl } from 'react-intl'\n\nimport { EligibilityPlan } from '@/types'\nimport { paymentPlanShorthandName, paymentPlanShorthandText } from 'utils/paymentPlanStrings'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\nimport s from 'Widgets/EligibilityModal/components/EligibilityPlansButtons/EligibilityPlansButtons.module.css'\n\nconst EligibilityPlansButtons: FC<{\n eligibilityPlans: EligibilityPlan[]\n currentPlanIndex: number\n // eslint-disable-next-line no-unused-vars\n setCurrentPlanIndex: (index: number) => void\n id?: string\n}> = ({ eligibilityPlans, currentPlanIndex, setCurrentPlanIndex, id }) => {\n const intl = useIntl()\n const buttonRefs = useRef<(HTMLButtonElement | null)[]>([])\n const shouldFocusRef = useRef(false)\n\n // Initialize button refs array\n useEffect(() => {\n buttonRefs.current = buttonRefs.current.slice(0, eligibilityPlans.length)\n }, [eligibilityPlans.length])\n\n // Handle focus when currentPlanIndex changes via keyboard navigation\n useEffect(() => {\n if (shouldFocusRef.current && buttonRefs.current[currentPlanIndex]) {\n buttonRefs.current[currentPlanIndex]?.focus()\n shouldFocusRef.current = false\n }\n }, [currentPlanIndex])\n\n /**\n * Navigate to plan and focus the corresponding button\n * @param newIndex - Target plan index\n */\n const navigateToPlan = (newIndex: number) => {\n if (newIndex >= 0 && newIndex < eligibilityPlans.length) {\n shouldFocusRef.current = true\n setCurrentPlanIndex(newIndex)\n }\n }\n\n return (\n <div>\n <h2 id=\"payment-plans-title\" className=\"sr-only\">\n <FormattedMessage\n id=\"accessibility.payment-plans-title\"\n defaultMessage=\"Options de paiement disponibles\"\n />\n </h2>\n <div\n id={id}\n className={cx(s.buttons, STATIC_CUSTOMISATION_CLASSES.eligibilityOptions)}\n role=\"group\"\n aria-labelledby=\"payment-plans-title\"\n >\n {eligibilityPlans.map((eligibilityPlan, key) => (\n <button\n type=\"button\"\n key={`p${eligibilityPlan.installments_count}x-d+${eligibilityPlan.deferred_days}-m+${eligibilityPlan.deferred_months}`}\n className={cx({\n [cx(s.active, STATIC_CUSTOMISATION_CLASSES.activeOption)]: key === currentPlanIndex,\n })}\n onClick={() => setCurrentPlanIndex(key)}\n onKeyDown={(e) => {\n // Arrow navigation between plans\n if (e.key === 'ArrowLeft') {\n e.preventDefault()\n navigateToPlan(key - 1)\n } else if (e.key === 'ArrowRight') {\n e.preventDefault()\n navigateToPlan(key + 1)\n } else if (e.key === 'Home') {\n e.preventDefault()\n navigateToPlan(0)\n } else if (e.key === 'End') {\n e.preventDefault()\n navigateToPlan(eligibilityPlans.length - 1)\n }\n }}\n aria-pressed={key === currentPlanIndex}\n aria-describedby=\"payment-info\"\n aria-current={key === currentPlanIndex ? 'true' : undefined}\n aria-label={intl.formatMessage(\n {\n id: 'accessibility.payment-plan-button.aria-label',\n defaultMessage: 'Sélectionner le plan de paiement {planName}',\n },\n { planName: paymentPlanShorthandText(eligibilityPlan, intl) },\n )}\n ref={(el) => {\n buttonRefs.current[key] = el\n }}\n >\n <span className={s.textButton}>{paymentPlanShorthandName(eligibilityPlan)}</span>\n </button>\n ))}\n </div>\n </div>\n )\n}\n\nexport default EligibilityPlansButtons\n","import React, { FC } from 'react'\n\nimport cx from 'classnames'\nimport { isToday } from 'date-fns'\nimport { FormattedDate, FormattedMessage, FormattedNumber } from 'react-intl'\n\nimport { PaymentPlan } from '@/types'\nimport s from 'components/Installments/Installment/Installment.module.css'\n\ntype Props = {\n installment: PaymentPlan\n index: number\n}\n\nconst Installment: FC<Props> = ({ installment, index }) => (\n <div className={s.installment} data-testid={`installment-${index}`}>\n <div className={s.date}>\n <div className={cx(s.dot, { [s.isCurrent]: index === 0 })} />\n {isToday(installment.due_date * 1000) ? (\n <FormattedMessage id=\"installments.today\" defaultMessage=\"Aujourd'hui\" tagName=\"strong\" />\n ) : (\n <FormattedDate\n value={installment.due_date * 1000}\n day=\"numeric\"\n month=\"long\"\n year=\"numeric\"\n />\n )}\n </div>\n <div className={cx({ [s.bold]: index === 0 })}>\n <FormattedNumber value={installment.total_amount / 100} style=\"currency\" currency=\"EUR\" />\n </div>\n </div>\n)\n\nexport default Installment\n","import React, { FunctionComponent } from 'react'\n\nimport cx from 'classnames'\nimport { FormattedMessage, FormattedNumber, useIntl } from 'react-intl'\n\nimport { EligibilityPlan } from '@/types'\nimport { priceFromCents } from '@/utils'\nimport s from 'components/Installments/TotalBlock/TotalBlock.module.css'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\n\nconst TotalBlock: FunctionComponent<{ currentPlan: EligibilityPlan }> = ({ currentPlan }) => {\n const intl = useIntl()\n const total = priceFromCents(currentPlan.purchase_amount + currentPlan.customer_total_cost_amount)\n const creditCost = priceFromCents(currentPlan.customer_total_cost_amount)\n const TAEG = (currentPlan?.annual_interest_rate && currentPlan.annual_interest_rate / 10000) || 0\n const customerFees = priceFromCents(currentPlan.customer_total_cost_amount)\n const isCredit = currentPlan.installments_count > 4\n const firstInstallmentAmount = priceFromCents(currentPlan.payment_plan?.[0]?.total_amount ?? 0)\n // For totalWithoutFirstInstallment, we need to get the total price and add the credit cost, before removing the first installment, to get the rest of the amount to pay.\n const totalWithoutFirstInstallment = priceFromCents(\n currentPlan.purchase_amount +\n currentPlan.customer_total_cost_amount -\n (currentPlan.payment_plan?.[0]?.total_amount ?? 0),\n )\n\n return (\n <>\n {isCredit && (\n <div className={s.creditInfo}>\n <span className={s.creditInfoTitle}>\n <FormattedMessage\n id=\"credit-features.information.title\"\n defaultMessage=\"Un crédit vous engage et doit être remboursé.\"\n />\n </span>\n <br />\n <FormattedMessage\n id=\"credit-features.information\"\n defaultMessage=\"Vérifiez vos capacités de remboursement avant de vous engager.\"\n />\n </div>\n )}\n <div\n className={cx(s.container, STATIC_CUSTOMISATION_CLASSES.summary)}\n data-testid=\"modal-summary\"\n >\n <p className={cx(s.total, STATIC_CUSTOMISATION_CLASSES.scheduleTotal)}>\n <FormattedMessage tagName=\"span\" id=\"installments.total-amount\" defaultMessage=\"Total\" />\n <FormattedNumber value={total || 0} style=\"currency\" currency=\"EUR\" />\n </p>\n <p className={cx(s.fees, STATIC_CUSTOMISATION_CLASSES.scheduleCredit)}>\n {isCredit ? (\n <>\n <FormattedMessage\n id=\"credit-features.total-credit-cost\"\n defaultMessage=\"Dont coût du crédit\"\n />\n <span className={s.creditCost}>\n <FormattedMessage\n id=\"credit-features.credit-cost-display\"\n defaultMessage=\"{creditCost} (TAEG {taegPercentage})\"\n values={{\n creditCost: intl.formatNumber(creditCost, {\n style: 'currency',\n currency: 'EUR',\n }),\n taegPercentage: intl.formatNumber(TAEG, {\n style: 'percent',\n maximumFractionDigits: 2,\n }),\n }}\n />\n </span>\n </>\n ) : (\n <>\n <FormattedMessage\n id=\"installments.total-fees\"\n defaultMessage=\"Dont frais (TTC)\"\n tagName=\"span\"\n />\n <span>\n <FormattedNumber value={customerFees} style=\"currency\" currency=\"EUR\" />\n </span>\n </>\n )}\n </p>\n {isCredit && (\n <div className={s.creditInfoLegalText}>\n <FormattedMessage\n id=\"credit-features.legal-text\"\n defaultMessage=\"Crédit d'un montant de {totalWithoutFirstInstallment} au taux débiteur fixe de {taegPercentage} sur une durée de {installmeentsCountWithoutFirst} mois. Permettant, en complément d'un acompte de {firstInstallmentAmount}, de financer un achat d'un montant de {productPriceWithoutCreditCost}. Sous réserve d'étude et d'acceptation par Alma. Délai légal de rétractation de 14 jours. Simulation présentée par Alma, immatriculée au RCS Nanterre sous le numéro 839 100 575, établissement de paiement et société de financement agréée par l’ACPR sous le n° 17408 (numéro CIB / Code banque).\"\n values={{\n totalWithoutFirstInstallment: intl.formatNumber(totalWithoutFirstInstallment, {\n style: 'currency',\n currency: 'EUR',\n }),\n taegPercentage: intl.formatNumber(TAEG, {\n style: 'percent',\n maximumFractionDigits: 2,\n }),\n installmeentsCountWithoutFirst: currentPlan.installments_count - 1,\n firstInstallmentAmount: intl.formatNumber(firstInstallmentAmount, {\n style: 'currency',\n currency: 'EUR',\n }),\n productPriceWithoutCreditCost: intl.formatNumber(total - creditCost, {\n style: 'currency',\n currency: 'EUR',\n }),\n }}\n />\n </div>\n )}\n </div>\n </>\n )\n}\n\nexport default TotalBlock\n","import React, { FC } from 'react'\n\nimport cx from 'classnames'\nimport { FormattedMessage } from 'react-intl'\n\nimport { EligibilityPlan } from '@/types'\nimport Installment from 'components/Installments/Installment'\nimport TotalBlock from 'components/Installments/TotalBlock'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\nimport s from 'Widgets/EligibilityModal/components/Schedule/Schedule.module.css'\n\nconst Schedule: FC<{ currentPlan: EligibilityPlan; id?: string }> = ({ currentPlan, id }) => (\n <div\n id={id}\n className={s.scheduleContainer}\n role=\"region\"\n aria-labelledby=\"payment-schedule-title\"\n aria-describedby=\"payment-schedule-description\"\n tabIndex={-1}\n >\n <h2 id=\"payment-schedule-title\" className=\"sr-only\">\n <FormattedMessage\n id=\"accessibility.payment-schedule-title\"\n defaultMessage=\"Calendrier de paiement\"\n />\n </h2>\n <div id=\"payment-schedule-description\">\n <ul\n className={cx(s.schedule, STATIC_CUSTOMISATION_CLASSES.scheduleDetails)}\n data-testid=\"modal-installments-element\"\n >\n {(currentPlan?.payment_plan || []).map((installment, index) => (\n <li key={installment.due_date * 1000} className={s.scheduleItem}>\n <Installment installment={installment} index={index} />\n </li>\n ))}\n </ul>\n <TotalBlock currentPlan={currentPlan} />\n </div>\n </div>\n)\n\nexport default Schedule\n","import React, { SVGAttributes } from 'react'\n\nimport { useIntl } from 'react-intl'\n\ntype Props = {\n color?: string\n} & SVGAttributes<SVGElement>\n\nexport const AlmaLogo = ({ className, color = '#fa5022' }: Props) => {\n const intl = useIntl()\n\n return (\n <svg\n width=\"42\"\n height=\"24\"\n viewBox=\"0 0 352 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n aria-label={intl.formatMessage({\n id: 'accessibility.alma-logo.aria-label',\n defaultMessage: 'Logo Alma - Solution de paiement en plusieurs fois',\n })}\n focusable={false}\n aria-hidden\n role=\"img\"\n >\n <path\n d=\"M333.24 28.3462V38.4459C327.504 31.1018 319.176 26.5132 309.288 26.5132C290.208 26.5132 275.424 43.5497 275.424 64.5757C275.424 85.6018 290.208 102.638 309.288 102.638C319.872 102.638 328.668 97.3908 334.416 89.1241V100.817H352.668V28.3462H333.24ZM314.028 84.4876C303.42 84.4876 294.828 75.574 294.828 64.5757C294.828 53.5775 303.42 44.6639 314.028 44.6639C324.636 44.6639 333.228 53.5775 333.228 64.5757C333.228 75.574 324.636 84.4876 314.028 84.4876ZM109.5 8.23073H128.916V100.805H109.5V8.23073ZM151.248 59.7356C151.248 39.8117 163.5 26.5252 180.468 26.5252C191.004 26.5252 199.332 31.1976 204.348 39.1648C209.376 31.1976 217.692 26.5252 228.228 26.5252C245.196 26.5252 257.448 39.8117 257.448 59.7356V100.817H238.032V57.639C238.032 49.8635 232.872 44.7957 226.044 44.7957C219.216 44.7957 214.056 49.8755 214.056 57.639V100.817H194.64V57.639C194.64 49.8635 189.48 44.7957 182.652 44.7957C175.824 44.7957 170.664 49.8755 170.664 57.639V100.817H151.248V59.7356ZM74.34 29.101C69.744 11.9088 60.0241 6.40967 50.772 6.40967C41.5201 6.40967 31.8 11.9088 27.204 29.101L7.24805 100.829H26.916C30.12 88.8485 39.996 82.1753 50.772 82.1753C61.548 82.1753 71.424 88.8605 74.6281 100.829H94.3081L74.34 29.101ZM50.772 65.4623C44.508 65.4623 38.8321 67.8345 34.6441 71.6803L45.924 29.9397C47.0041 25.9501 48.6001 24.6802 50.784 24.6802C52.9681 24.6802 54.5641 25.9501 55.6441 29.9397L66.912 71.6803C62.724 67.8345 57.036 65.4623 50.772 65.4623Z\"\n fill={color}\n />\n </svg>\n )\n}\n","import React, { FC } from 'react'\n\nimport { useIntl } from 'react-intl'\n\nconst AmexCard: FC = () => {\n const intl = useIntl()\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"16\"\n viewBox=\"0 0 24 16\"\n aria-label={intl.formatMessage({\n id: 'accessibility.amex-card.aria-label',\n defaultMessage: 'Carte American Express acceptée',\n })}\n role=\"img\"\n >\n <defs>\n <linearGradient id=\"cardamex\" x1=\"10.914%\" x2=\"87.432%\" y1=\"86.279%\" y2=\"15.035%\">\n <stop offset=\"0%\" stopColor=\"#3FA9F5\" />\n <stop offset=\"100%\" stopColor=\"#0071BC\" />\n </linearGradient>\n </defs>\n <g fill=\"none\" fillRule=\"evenodd\">\n <path\n fill=\"url(#cardamex)\"\n fillRule=\"nonzero\"\n d=\"M22.559 16H1.379C.627 16 0 15.392 0 14.662V1.338C0 .608.627 0 1.379 0H22.62C23.373 0 24 .608 24 1.338v13.324c-.063.73-.627 1.338-1.441 1.338z\"\n />\n <g fill=\"#FFF\">\n <path d=\"M10.115 8.711L8.889 6.044H7.295v3.852L5.517 6.044H4.17l-1.778 4.03h1.103l.368-.889h2.023l.368.89h2.084V7.11l1.349 2.963h.92l1.348-2.904v2.904h.98v-4.03H11.28l-1.165 2.667zm-5.272-.474H4.23l.613-1.422v.06l.613 1.362h-.613z\" />\n <path\n fillRule=\"nonzero\"\n d=\"M19.372 7.94l.735-.77 1.042-1.185h-1.287L18.697 7.23l-1.164-1.245h-3.985v3.97h3.923l1.226-1.303 1.165 1.304h1.287L20.107 8.71l-.735-.77zM16.92 9.186h-2.33v-.77h2.268v-.77H14.59v-.712h2.33L18.084 8 16.92 9.185z\"\n />\n </g>\n </g>\n </svg>\n )\n}\n\nexport default AmexCard\n","import React, { FC } from 'react'\n\nimport { useIntl } from 'react-intl'\n\nconst CbCard: FC = () => {\n const intl = useIntl()\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"16\"\n viewBox=\"0 0 24 16\"\n aria-label={intl.formatMessage({\n id: 'accessibility.cb-card.aria-label',\n defaultMessage: 'Carte Bancaire CB acceptée',\n })}\n role=\"img\"\n >\n <defs>\n <linearGradient id=\"cardcb\" x1=\"5.842%\" x2=\"95.393%\" y1=\"81.753%\" y2=\"17.344%\">\n <stop offset=\"0%\" stopColor=\"#39B54A\" />\n <stop offset=\"100%\" stopColor=\"#0A5296\" />\n </linearGradient>\n </defs>\n <g fill=\"none\" fillRule=\"nonzero\">\n <path\n fill=\"url(#cardcb)\"\n d=\"M22.621 16H1.38C.627 16 0 15.392 0 14.662V1.338C0 .608.627 0 1.379 0H22.62C23.373 0 24 .608 24 1.338v13.324c-.063.73-.627 1.338-1.379 1.338z\"\n />\n <g fill=\"#FFF\">\n <path d=\"M19.094 4.03h-6.437V8h6.498c1.165 0 2.084-.889 2.084-2.015-.06-1.066-.98-1.955-2.145-1.955zM19.094 8.593h-6.437v3.97h6.498c1.165 0 2.084-.889 2.084-2.015-.06-1.067-.98-1.955-2.145-1.955zM7.017 8.06h4.966c-.245-2.371-2.391-4.267-4.966-4.267-2.758 0-5.027 2.074-5.027 4.681s2.269 4.682 5.027 4.682c2.698 0 4.904-2.015 5.027-4.563H7.017v-.534z\" />\n </g>\n </g>\n </svg>\n )\n}\n\nexport default CbCard\n","import React, { FC } from 'react'\n\nimport { useIntl } from 'react-intl'\n\nconst MasterCard: FC = () => {\n const intl = useIntl()\n\n return (\n <svg\n width=\"24px\"\n height=\"16px\"\n viewBox=\"0 0 24 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-label={intl.formatMessage({\n id: 'accessibility.mastercard.aria-label',\n defaultMessage: 'Carte Mastercard acceptée',\n })}\n role=\"img\"\n >\n <g id=\"Parcours-1C-B\" stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <g id=\"mobile-1C-Paiement-V1\" transform=\"translate(-269.000000, -313.000000)\">\n <g id=\"mastercard\" transform=\"translate(269.000000, 313.000000)\">\n <rect id=\"Rectangle\" fill=\"#FFFFFF\" x=\"0\" y=\"0\" width=\"24\" height=\"16\" rx=\"1\" />\n <g id=\"Group-6\" transform=\"translate(4.000000, 3.000000)\">\n <circle\n id=\"Oval-4-Copy\"\n fill=\"#EA001B\"\n cx=\"5.05263158\"\n cy=\"5.05263158\"\n r=\"5.05263158\"\n />\n <circle\n id=\"Oval-4\"\n fillOpacity=\"0.25\"\n fill=\"#F79F1A\"\n cx=\"10.9473684\"\n cy=\"5.05263158\"\n r=\"5.05263158\"\n />\n <circle\n id=\"Oval-4-Copy-2\"\n fillOpacity=\"0.6\"\n fill=\"#F79F1A\"\n cx=\"10.9473684\"\n cy=\"5.05263158\"\n r=\"5.05263158\"\n />\n <circle\n id=\"Oval-4-Copy-3\"\n fillOpacity=\"0.3\"\n fill=\"#EA001B\"\n cx=\"5.05263158\"\n cy=\"5.05263158\"\n r=\"5.05263158\"\n />\n </g>\n </g>\n </g>\n </g>\n </svg>\n )\n}\n\nexport default MasterCard\n","import React, { FC } from 'react'\n\nimport { useIntl } from 'react-intl'\n\nconst VisaCard: FC = () => {\n const intl = useIntl()\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"16\"\n viewBox=\"0 0 24 16\"\n aria-label={intl.formatMessage({\n id: 'accessibility.visa-card.aria-label',\n defaultMessage: 'Carte Visa acceptée',\n })}\n role=\"img\"\n >\n <g fill=\"none\" fillRule=\"nonzero\">\n <path\n fill=\"#FCFCFC\"\n d=\"M22.684 16H1.38C.627 16 0 15.39 0 14.656V1.344C0 .61.627 0 1.379 0H22.62C23.373 0 24 .61 24 1.344v13.374c0 .671-.564 1.282-1.316 1.282z\"\n />\n <path\n fill=\"#005098\"\n d=\"M8.889 10.726l.948-5.393h1.482l-.949 5.393zM15.704 5.452a3.658 3.658 0 0 0-1.304-.237c-1.481 0-2.489.71-2.489 1.778 0 .77.711 1.185 1.304 1.481.592.237.77.415.77.652 0 .355-.474.533-.889.533-.592 0-.889-.059-1.363-.296l-.177-.06-.178 1.186c.355.178 1.007.296 1.659.296 1.54 0 2.548-.71 2.548-1.837 0-.592-.415-1.067-1.244-1.481-.534-.237-.83-.415-.83-.652 0-.237.237-.474.83-.474.474 0 .83.118 1.126.178l.118.059.119-1.126M19.496 5.333H18.37c-.355 0-.592.119-.77.474l-2.193 4.919h1.541s.237-.652.296-.83h1.897c.059.178.178.83.178.83h1.362l-1.185-5.393zM17.66 8.77l.593-1.481s.118-.296.178-.533l.118.474s.296 1.303.356 1.54h-1.245zM7.644 5.333L6.222 9.007l-.178-.77C5.748 7.348 4.92 6.459 4.03 5.985l1.303 4.682h1.541l2.311-5.393h-1.54\"\n />\n <path\n fill=\"#F6A500\"\n d=\"M4.919 5.333h-2.37v.119c1.836.474 3.08 1.54 3.555 2.844L5.57 5.807c-.118-.414-.355-.474-.651-.474\"\n />\n <path\n fill=\"#0A5296\"\n d=\"M23.937 3.23H0V1.316C0 .598.627 0 1.379 0H22.62C23.373 0 24 .598 24 1.316V3.23h-.063z\"\n />\n <path\n fill=\"#F4A428\"\n d=\"M.063 13H24v1.8c0 .655-.625 1.2-1.375 1.2H1.375C.625 16 0 15.455 0 14.8V13h.063z\"\n />\n </g>\n </svg>\n )\n}\n\nexport default VisaCard\n","import React, { FC } from 'react'\n\nimport cx from 'classnames'\n\nimport { Card } from '@/types'\nimport AmexCard from 'assets/cards/amex'\nimport CbCard from 'assets/cards/cb'\nimport MasterCard from 'assets/cards/mastercard'\nimport VisaCard from 'assets/cards/visa'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\nimport s from 'Widgets/EligibilityModal/components/Cards/Cards.module.css'\n\ntype Props = {\n cards: Card[]\n}\n\nconst Cards: FC<Props> = ({ cards }) => {\n // We transform to a Set and back to avoid duplicate values (ex : amex, amex)\n const uniqueCards = Array.from(new Set(cards))\n\n return (\n <div\n data-testid=\"card-logos\"\n className={cx(s.cardContainer, STATIC_CUSTOMISATION_CLASSES.cardContainer)}\n >\n {uniqueCards.map((card: Card) => (\n <div key={card} className={s.card} data-testid={`card-logo-${card}`}>\n {card === 'cb' && <CbCard />}\n {card === 'amex' && <AmexCard />}\n {card === 'mastercard' && <MasterCard />}\n {card === 'visa' && <VisaCard />}\n </div>\n ))}\n </div>\n )\n}\n\nexport default Cards\n","import React, { FC } from 'react'\n\nimport cx from 'classnames'\nimport { FormattedMessage } from 'react-intl'\n\nimport s from 'Widgets//EligibilityModal/components/Info/Info.module.css'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\n\nconst StrongText = (chunks: React.ReactNode) => <strong>{chunks}</strong>\n\nconst Info: FC<{ isCurrentPlanP1X: boolean; id?: string }> = ({ isCurrentPlanP1X, id }) => (\n // TODO: refactor this component into subcomponents to factorize code and make it cleaner\n <div\n id={id}\n className={cx(s.list, STATIC_CUSTOMISATION_CLASSES.info)}\n data-testid=\"modal-info-element\"\n role=\"region\"\n aria-labelledby=\"payment-info-title\"\n aria-describedby=\"payment-info-description\"\n tabIndex={-1}\n >\n <h2 id=\"payment-info-title\" className=\"sr-only\">\n <FormattedMessage\n id=\"eligibility-modal.info-title\"\n defaultMessage=\"Comment procéder au paiement\"\n />\n </h2>{' '}\n <ol className={s.listContainer} id=\"payment-info-description\">\n <li className={s.listItem}>\n <div className={cx(s.bullet, STATIC_CUSTOMISATION_CLASSES.bullet)}>1</div>\n <div className={STATIC_CUSTOMISATION_CLASSES.infoMessage}>\n {isCurrentPlanP1X ? (\n <FormattedMessage\n id=\"eligibility-modal.p1x-bullet-1\"\n defaultMessage=\"Choisissez <strong>Alma - Payer maintenant</strong> au moment du paiement.\"\n values={{ strong: StrongText }}\n />\n ) : (\n <FormattedMessage\n id=\"eligibility-modal.bullet-1\"\n defaultMessage=\"Choisissez <strong>Alma</strong> au moment du paiement.\"\n values={{ strong: StrongText }}\n />\n )}\n </div>\n </li>\n <li className={s.listItem}>\n <div className={cx(s.bullet, STATIC_CUSTOMISATION_CLASSES.bullet)}>2</div>\n <div className={STATIC_CUSTOMISATION_CLASSES.infoMessage}>\n {isCurrentPlanP1X ? (\n <FormattedMessage\n id=\"eligibility-modal.p1x-bullet-2\"\n defaultMessage=\"Renseignez les informations de votre <strong>carte bancaire.</strong>\"\n values={{ strong: StrongText }}\n />\n ) : (\n <FormattedMessage\n id=\"eligibility-modal.bullet-2\"\n defaultMessage=\"Laissez-vous guider et validez votre paiement en <strong>2 minutes.</strong>\"\n values={{ strong: StrongText }}\n />\n )}\n </div>\n </li>\n <li className={s.listItem}>\n <div className={cx(s.bullet, STATIC_CUSTOMISATION_CLASSES.bullet)}>3</div>\n <div className={STATIC_CUSTOMISATION_CLASSES.infoMessage}>\n {isCurrentPlanP1X ? (\n <FormattedMessage\n id=\"eligibility-modal.p1x-bullet-3\"\n defaultMessage=\"<strong>La validation </strong> de votre paiement est instantanée !\"\n values={{ strong: StrongText }}\n />\n ) : (\n <FormattedMessage\n id=\"eligibility-modal.bullet-3\"\n defaultMessage=\"<strong>Gardez le contrôle</strong> en avançant ou reculant vos échéances à votre rythme.\"\n values={{ strong: StrongText }}\n />\n )}\n </div>\n </li>\n </ol>\n </div>\n)\n\nexport default Info\n","import React, { FC } from 'react'\n\nimport cx from 'classnames'\nimport { FormattedMessage } from 'react-intl'\n\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\nimport s from 'Widgets/EligibilityModal/components/Title/Title.module.css'\n\nconst Title: FC<{ isSomePlanDeferred: boolean; isCurrentPlanP1X: boolean }> = ({\n isSomePlanDeferred,\n isCurrentPlanP1X,\n}) => (\n <h2\n id=\"modal-title\"\n className={cx(s.title, STATIC_CUSTOMISATION_CLASSES.title)}\n data-testid=\"modal-title-element\"\n >\n {isSomePlanDeferred && (\n <FormattedMessage\n id=\"eligibility-modal.title-deferred-plan\"\n defaultMessage=\"Payez en plusieurs fois ou plus tard par carte bancaire avec Alma.\"\n />\n )}\n {!isSomePlanDeferred && isCurrentPlanP1X && (\n <FormattedMessage\n id=\"eligibility-modal.title-pay-now\"\n defaultMessage=\"Payez comptant par carte bancaire avec Alma.\"\n />\n )}\n {!isSomePlanDeferred && !isCurrentPlanP1X && (\n <FormattedMessage\n id=\"eligibility-modal.title-normal\"\n defaultMessage=\"Payez en plusieurs fois par carte bancaire avec Alma.\"\n />\n )}\n </h2>\n)\n\nexport default Title\n","import React, { FC, PropsWithChildren } from 'react'\n\nimport cx from 'classnames'\n\nimport { Card } from '@/types'\nimport { AlmaLogo } from 'assets/almaLogo'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\nimport Cards from 'Widgets/EligibilityModal/components/Cards'\nimport Info from 'Widgets/EligibilityModal/components/Info'\nimport Title from 'Widgets/EligibilityModal/components/Title'\nimport s from 'Widgets/EligibilityModal/DesktopModal/DesktopModal.module.css'\n\ntype Props = {\n isCurrentPlanP1X: boolean\n isSomePlanDeferred: boolean\n cards?: Card[]\n} & PropsWithChildren\nconst DesktopModal: FC<Props> = ({ children, isSomePlanDeferred, cards, isCurrentPlanP1X }) => (\n <div\n className={cx(s.container, STATIC_CUSTOMISATION_CLASSES.desktopModal)}\n data-testid=\"modal-container\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"modal-title\"\n >\n <aside className={cx([s.block, s.left, STATIC_CUSTOMISATION_CLASSES.leftSide])}>\n <Title isSomePlanDeferred={isSomePlanDeferred} isCurrentPlanP1X={isCurrentPlanP1X} />\n <Info id=\"payment-info\" isCurrentPlanP1X={isCurrentPlanP1X} />\n {cards && <Cards cards={cards} />}\n <AlmaLogo className={s.logo} width=\"75\" />\n </aside>\n <div className={cx(s.block, STATIC_CUSTOMISATION_CLASSES.rightSide)}>{children}</div>\n </div>\n)\n\nexport default DesktopModal\n","import React, { FC, PropsWithChildren } from 'react'\n\nimport cx from 'classnames'\n\nimport { Card } from '@/types'\nimport { AlmaLogo } from 'assets/almaLogo'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\nimport Cards from 'Widgets/EligibilityModal/components/Cards'\nimport Info from 'Widgets/EligibilityModal/components/Info'\nimport Title from 'Widgets/EligibilityModal/components/Title'\nimport s from 'Widgets/EligibilityModal/MobileModal/MobileModal.module.css'\n\ntype Props = {\n isCurrentPlanP1X: boolean\n isSomePlanDeferred: boolean\n cards?: Card[]\n} & PropsWithChildren\nconst MobileModal: FC<Props> = ({ children, isSomePlanDeferred, cards, isCurrentPlanP1X }) => (\n <div\n className={cx(s.container, STATIC_CUSTOMISATION_CLASSES.mobileModal)}\n data-testid=\"modal-container\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"modal-title\"\n >\n <Title isSomePlanDeferred={isSomePlanDeferred} isCurrentPlanP1X={isCurrentPlanP1X} />\n {children}\n <Info id=\"payment-info\" isCurrentPlanP1X={isCurrentPlanP1X} />\n {cards && <Cards cards={cards} />}\n <AlmaLogo className={s.logo} width=\"75\" />\n </div>\n)\n\nexport default MobileModal\n","import React, { FunctionComponent, useState } from 'react'\n\nimport { FormattedMessage, useIntl } from 'react-intl'\nimport { useMediaQuery } from 'react-responsive'\n\nimport { Card, EligibilityPlan, statusResponse } from '@/types'\nimport { desktopWidth, isP1X } from '@/utils'\nimport { LoadingIndicator } from 'components/LoadingIndicator/LoadingIndicator'\nimport Modal from 'components/Modal'\nimport SkipLinks from 'components/SkipLinks'\nimport EligibilityPlansButtons from 'Widgets/EligibilityModal/components/EligibilityPlansButtons'\nimport Schedule from 'Widgets/EligibilityModal/components/Schedule'\nimport DesktopModal from 'Widgets/EligibilityModal/DesktopModal'\nimport s from 'Widgets/EligibilityModal/EligibilityModal.module.css'\nimport MobileModal from 'Widgets/EligibilityModal/MobileModal'\n\ntype Props = {\n initialPlanIndex?: number\n onClose: (event: React.MouseEvent | React.KeyboardEvent) => void\n eligibilityPlans: EligibilityPlan[]\n status: statusResponse\n cards?: Card[]\n}\n\nconst EligibilityModal: FunctionComponent<Props> = ({\n initialPlanIndex,\n onClose,\n eligibilityPlans,\n status,\n cards,\n}) => {\n const [currentPlanIndex, setCurrentPlanIndex] = useState(initialPlanIndex || 0)\n const isBigScreen = useMediaQuery({ minWidth: desktopWidth })\n const ModalComponent = isBigScreen ? DesktopModal : MobileModal\n const eligiblePlans = eligibilityPlans.filter((plan) => plan.eligible)\n const currentPlan = eligiblePlans[currentPlanIndex]\n const intl = useIntl()\n\n const isSomePlanDeferred = eligibilityPlans.some(\n (plan) => plan.deferred_days > 0 || plan.deferred_months > 0,\n )\n\n // Skip links definition for RGAA accessibility\n // Towards the 3 main sections that users may want to quickly consult\n const skipLinks = [\n {\n href: '#payment-plans',\n labelId: 'skip-links.payment-plans',\n defaultMessage: intl.formatMessage({\n id: 'skip-links.payment-plans',\n defaultMessage: 'Allez aux options de paiements',\n }),\n },\n {\n href: '#payment-info',\n labelId: 'skip-links.payment-info',\n defaultMessage: intl.formatMessage({\n id: 'skip-links.payment-info',\n defaultMessage: 'Allez aux informations de paiement',\n }),\n },\n {\n href: '#payment-schedule',\n labelId: 'skip-links.payment-schedule',\n defaultMessage: intl.formatMessage({\n id: 'skip-links.payment-schedule',\n defaultMessage: 'Allez au calendrier de paiements',\n }),\n },\n ]\n\n return (\n <Modal\n onClose={onClose}\n ariaHideApp={false}\n scrollable\n isOpen\n aria={{\n labelledby: 'modal-title',\n describedby: 'modal-info-element',\n }}\n >\n <SkipLinks skipLinks={skipLinks} />\n <ModalComponent\n isSomePlanDeferred={isSomePlanDeferred}\n cards={cards}\n isCurrentPlanP1X={isP1X(currentPlan)}\n >\n {status === statusResponse.PENDING && (\n <div className={s.loader} role=\"status\" aria-live=\"polite\">\n <LoadingIndicator />\n </div>\n )}\n {status === statusResponse.SUCCESS && eligiblePlans.length === 0 && (\n <div className={s.noEligibility} role=\"alert\">\n <FormattedMessage\n id=\"eligibility-modal.no-eligibility\"\n defaultMessage=\"Oups, il semblerait que la simulation n'ait pas fonctionné.\"\n />\n </div>\n )}\n {status === statusResponse.SUCCESS && eligiblePlans.length >= 1 && (\n <>\n <section aria-labelledby=\"payment-plans-title\">\n <EligibilityPlansButtons\n id=\"payment-plans\"\n eligibilityPlans={eligiblePlans}\n currentPlanIndex={currentPlanIndex}\n setCurrentPlanIndex={setCurrentPlanIndex}\n />\n </section>\n <section className={s.scheduleArea} aria-labelledby=\"payment-schedule-title\">\n <div className={s.verticalLine} />\n <Schedule id=\"payment-schedule\" currentPlan={currentPlan} />\n </section>\n </>\n )}\n </ModalComponent>\n </Modal>\n )\n}\nexport default EligibilityModal\n","import React from 'react'\n\nimport { ApiConfig, Card, ConfigPlan } from '@/types'\nimport useFetchEligibility from 'hooks/useFetchEligibility'\nimport EligibilityModal from 'Widgets/EligibilityModal'\n\ntype Props = {\n purchaseAmount: number\n apiData: ApiConfig\n configPlans?: ConfigPlan[]\n customerBillingCountry?: string\n customerShippingCountry?: string\n onClose: (event: React.MouseEvent | React.KeyboardEvent) => void\n cards?: Card[]\n}\n\n/**\n * This component allows to display only the modal, without PaymentPlans.\n */\nconst ModalContainer: React.FC<Props> = ({\n purchaseAmount,\n apiData,\n configPlans,\n customerBillingCountry,\n customerShippingCountry,\n onClose,\n cards,\n}) => {\n const [eligibilityPlans, status] = useFetchEligibility(\n purchaseAmount,\n apiData,\n configPlans,\n customerBillingCountry,\n customerShippingCountry,\n )\n\n return (\n <EligibilityModal\n initialPlanIndex={0}\n onClose={onClose}\n eligibilityPlans={eligibilityPlans}\n status={status}\n cards={cards}\n />\n )\n}\n\nexport { ModalContainer }\n","import React, { FunctionComponent } from 'react'\n\nimport cx from 'classnames'\n\nimport s from 'components/Loader/Loader.module.css'\n\nconst Loader: FunctionComponent<{ className?: string }> = ({ className }) => (\n <div className={cx(s.loadingIndicator, className)} data-testid=\"loader\">\n <div className={s.line1} />\n <div className={s.line2} />\n </div>\n)\n\nexport default Loader\n","import { useCallback, useEffect, useRef, useState } from 'react'\n\n/**\n * Custom hook for managing announcement text for screen readers\n * Provides functionality to set announcement text and automatically clear it after a delay\n */\nexport const useAnnounceText = () => {\n const [announceText, setAnnounceText] = useState('')\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n /**\n * Announces text to screen readers and clears it after a specified delay\n * @param text - The text to announce\n * @param clearDelay - Time in milliseconds before clearing the text (default: 1000ms)\n */\n const announce = useCallback((text: string, clearDelay: number = 1000) => {\n // Clear any existing timeout to prevent overlapping announcements\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n setAnnounceText(text)\n\n // Set new timeout and store reference for cleanup\n timeoutRef.current = setTimeout(() => {\n setAnnounceText('')\n timeoutRef.current = null\n }, clearDelay)\n }, [])\n\n /**\n * Clears the current announcement text immediately and cancels any pending timeout\n */\n const clearAnnouncement = useCallback(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n timeoutRef.current = null\n }\n setAnnounceText('')\n }, [])\n\n // Cleanup timeout on unmount\n useEffect(\n () => () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n },\n [],\n )\n\n return {\n announceText,\n announce,\n clearAnnouncement,\n }\n}\n","import { useEffect } from 'react'\n\nimport { useIntl } from 'react-intl'\n\nimport { statusResponse } from '@/types'\nimport { useAnnounceText } from 'hooks/useAnnounceText'\n\ntype UseAnimationInstructionsProps = {\n status: statusResponse\n hasUserInteracted: boolean\n eligiblePlansCount: number\n transitionDelay?: number\n}\n\n/**\n * Custom hook for managing accessibility announcements about animation control instructions\n *\n * Announces instructions to screen readers about how to control automatic plan animation\n * when the widget is first loaded and animation is active.\n *\n * @param status - Current API response status\n * @param hasUserInteracted - Whether user has manually interacted with plans\n * @param eligiblePlansCount - Number of eligible payment plans\n * @param transitionDelay - Animation transition delay (-1 means disabled)\n *\n * @returns void - This hook manages side effects only\n */\nexport const useAnimationInstructions = ({\n status,\n hasUserInteracted,\n eligiblePlansCount,\n transitionDelay,\n}: UseAnimationInstructionsProps): void => {\n const intl = useIntl()\n const { announce } = useAnnounceText()\n\n useEffect(() => {\n const shouldAnnounceInstructions =\n status === statusResponse.SUCCESS &&\n !hasUserInteracted &&\n eligiblePlansCount > 1 &&\n // If transitionDelay is -1, animation is disabled, so no need to announce instructions\n transitionDelay !== -1\n\n if (shouldAnnounceInstructions) {\n const instructionText = intl.formatMessage({\n id: 'accessibility.animation-control-instructions',\n defaultMessage:\n \"Animation automatique des plans de paiement active. Survolez ou naviguez avec les flèches pour arrêter l'animation.\",\n })\n\n // Delay the announcement to avoid conflict with initial plan announcements\n const timer = setTimeout(() => {\n announce(instructionText, 2000)\n }, 1500)\n\n return () => clearTimeout(timer)\n }\n\n // Return undefined if condition is not met (no cleanup needed)\n return undefined\n }, [status, hasUserInteracted, eligiblePlansCount, intl, announce, transitionDelay])\n}\n","import { useEffect, useState } from 'react'\n\ntype Props = {\n current: number\n onHover: (current: number) => void\n onLeave: () => void\n}\n\nconst useButtonAnimation = (iterateValues: number[], transitionDelay: number): Props => {\n const [current, setCurrent] = useState(0)\n const [update, setUpdate] = useState(true)\n const [animationIterationCount, setAnimationIterationCount] = useState(1)\n // Respect user's motion preferences with fallback for tests\n const prefersReducedMotion =\n typeof window !== 'undefined' &&\n window.matchMedia &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches\n\n // Set minimum transition delay to 1 second, or -1 to disable animation\n const cappedTransitionDelay = transitionDelay < 0 ? -1 : Math.max(transitionDelay, 1000)\n\n useEffect(() => {\n let timeout: ReturnType<typeof setTimeout>\n let isMounted = true\n\n // Disable animation if user prefers reduced motion or delay is -1\n if (cappedTransitionDelay === -1 || prefersReducedMotion) {\n return\n }\n\n if (iterateValues.length !== 0) {\n // Ensure current is valid\n if (!iterateValues.includes(current) && update) setCurrent(iterateValues[0])\n // Stop the animation after one full cycle through all values\n if (animationIterationCount === iterateValues.length + 1) {\n setUpdate(false)\n }\n // Set up the timeout to change the current value\n timeout = setTimeout(() => {\n if (update && isMounted) {\n // Count iterations to stop after one full cycle\n setAnimationIterationCount((prev) => prev + 1)\n // Move to the next value, or loop back to the start\n setCurrent(\n iterateValues[\n iterateValues.includes(current)\n ? (iterateValues.indexOf(current) + 1) % iterateValues.length\n : 0\n ],\n )\n }\n }, cappedTransitionDelay)\n }\n // eslint-disable-next-line consistent-return\n return () => {\n isMounted = false\n clearTimeout(timeout)\n }\n }, [\n iterateValues,\n current,\n cappedTransitionDelay,\n update,\n prefersReducedMotion,\n animationIterationCount,\n ])\n\n return {\n current,\n onHover: (currentIndex: number) => {\n setCurrent(currentIndex)\n setUpdate(false)\n },\n onLeave: () => {\n setUpdate(true)\n },\n }\n}\nexport default useButtonAnimation\n","import { EligibilityPlan } from '@/types'\n\ntype Args = {\n suggestedPaymentPlan: number | number[]\n eligibilityPlans: EligibilityPlan[]\n}\n\n/**\n * It returns the **index** of the **first eligible plan** that matches the default installments count\n *\n * @param {number | number[]} suggestedPaymentPlan\n * @param {EligibilityPlan[]} eligibilityPlans\n * @returns number (index of the first eligible plan that matches the default installments count)\n */\nexport const getIndexOfActivePlan = ({ suggestedPaymentPlan, eligibilityPlans }: Args): number => {\n const suggestedPaymentPlanArray = Array.isArray(suggestedPaymentPlan)\n ? suggestedPaymentPlan\n : [suggestedPaymentPlan]\n\n let foundIndex = 0\n\n suggestedPaymentPlanArray.some((installmentsCount) => {\n const planFound = eligibilityPlans.findIndex(\n (plan) =>\n plan.installments_count === installmentsCount &&\n plan.eligible &&\n // Remove the PayLater plans from the plan to target, we will code a better solution later\n // To differentiate P1X from PayLater while using the `suggestedPaymentPlan` property.\n !plan.deferred_days &&\n !plan.deferred_months,\n )\n\n if (planFound !== -1) {\n foundIndex = planFound\n return true\n }\n\n return false\n })\n\n return foundIndex\n}\n","/**\n * Prefix classes to avoid name collisions.\n */\nconst prefix = 'alma-payment-plans'\n\n/**\n * Class names for the **payment plans** widget.\n * Those classes are intended to be used by the **merchant developer**.\n */\nconst STATIC_CUSTOMISATION_CLASSES = {\n container: `${prefix}-container`,\n eligibilityLine: `${prefix}-eligibility-line`,\n eligibilityOptions: `${prefix}-eligibility-options`,\n notEligibleOption: `${prefix}-not-eligible-option`,\n paymentInfo: `${prefix}-payment-info`,\n activeOption: `${prefix}-active-option`,\n}\n\nexport default STATIC_CUSTOMISATION_CLASSES\n","import React, { FunctionComponent, useEffect, useMemo, useRef, useState } from 'react'\n\nimport cx from 'classnames'\nimport { useIntl } from 'react-intl'\n\nimport { ApiConfig, Card, ConfigPlan, statusResponse } from '@/types'\nimport { AlmaLogo } from 'assets/almaLogo'\nimport Loader from 'components/Loader'\nimport { useAnimationInstructions } from 'hooks/useAnimationInstructions'\nimport { useAnnounceText } from 'hooks/useAnnounceText'\nimport useButtonAnimation from 'hooks/useButtonAnimation'\nimport useFetchEligibility from 'hooks/useFetchEligibility'\nimport { getIndexOfActivePlan } from 'utils/merchantOrderPreferences'\nimport {\n getPlanDescription,\n paymentPlanInfoText,\n paymentPlanShorthandName,\n} from 'utils/paymentPlanStrings'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets//PaymentPlans/classNames.const'\nimport EligibilityModal from 'Widgets/EligibilityModal'\nimport s from 'Widgets/PaymentPlans/PaymentPlans.module.css'\n\ntype Props = {\n purchaseAmount: number\n apiData: ApiConfig\n configPlans?: ConfigPlan[]\n transitionDelay?: number\n customerBillingCountry?: string\n customerShippingCountry?: string\n hideIfNotEligible?: boolean\n monochrome?: boolean\n suggestedPaymentPlan?: number | number[]\n cards?: Card[]\n hideBorder?: boolean\n onModalClose?: (event: React.MouseEvent | React.KeyboardEvent) => void\n}\n\nconst DEFAULT_TRANSITION_TIME = 5500\n\n/**\n * PaymentPlanWidget - Main widget component that displays Alma payment plan options\n *\n * This component shows eligible payment plans in a compact widget format with:\n * - Automatic plan cycling animation\n * - Keyboard navigation between plans\n * - Screen reader announcements for accessibility\n * - Modal opening for detailed plan information\n */\nconst PaymentPlanWidget: FunctionComponent<Props> = ({\n apiData,\n configPlans,\n hideIfNotEligible,\n monochrome,\n purchaseAmount,\n suggestedPaymentPlan,\n cards,\n customerBillingCountry,\n customerShippingCountry,\n transitionDelay,\n hideBorder = false,\n onModalClose,\n}) => {\n const intl = useIntl()\n\n // Fetch eligibility data for all payment plans\n const [eligibilityPlans, status] = useFetchEligibility(\n purchaseAmount,\n apiData,\n configPlans,\n customerBillingCountry,\n customerShippingCountry,\n )\n\n // Memoized array of only eligible plans to avoid unnecessary re-renders\n const eligiblePlans = useMemo(\n () => eligibilityPlans.filter((plan) => plan.eligible),\n [eligibilityPlans],\n )\n\n // Determine which plan should be active initially based on merchant preferences\n const activePlanIndex = getIndexOfActivePlan({\n eligibilityPlans,\n suggestedPaymentPlan: suggestedPaymentPlan ?? 0,\n })\n\n // Check if merchant has specified a suggested payment plan\n const isSuggestedPaymentPlanSpecified = suggestedPaymentPlan !== undefined // 👈 The merchant decided to focus a tab\n\n // Modal state management\n const [isOpen, setIsOpen] = useState(false)\n const { announceText, announce } = useAnnounceText()\n const openModal = () => setIsOpen(true)\n const closeModal = (event: React.MouseEvent | React.KeyboardEvent) => {\n setIsOpen(false)\n onModalClose?.(event)\n }\n\n // Track if user has manually interacted with plans to stop automatic animation\n const [hasUserInteracted, setHasUserInteracted] = useState(false)\n\n // Memoized array of eligible plan indices for keyboard navigation\n const eligiblePlanKeys = useMemo(\n () =>\n eligibilityPlans.reduce<number[]>(\n (acc, plan, index) => (plan.eligible ? [...acc, index] : acc),\n [],\n ),\n [eligibilityPlans],\n )\n\n /**\n * Calculate the appropriate transition time based on merchant configuration\n * If merchant specify a suggestedPaymentPlan and no transition, we disable animation.\n * Otherwise, we set the transition delay specified by the merchant.\n * If none of those properties are specified, we set a default transition delay.\n * @returns {number} The transition time in milliseconds\n */\n const realTransitionTime = useMemo((): number => {\n if (isSuggestedPaymentPlanSpecified && !transitionDelay) {\n return -1 // Disable animation\n }\n return transitionDelay ?? DEFAULT_TRANSITION_TIME\n }, [transitionDelay, isSuggestedPaymentPlanSpecified])\n\n // Hook for managing plan cycling animation and user interactions\n const { current, onHover, onLeave } = useButtonAnimation(eligiblePlanKeys, realTransitionTime)\n\n // Refs for managing focus on plan buttons during keyboard navigation\n const buttonRefs = useRef<(HTMLButtonElement | null)[]>([])\n\n // Initialize button refs array when eligibility plans change\n useEffect(() => {\n buttonRefs.current = buttonRefs.current.slice(0, eligibilityPlans.length)\n }, [eligibilityPlans.length])\n\n // Announce plan changes to screen readers for accessibility\n useEffect(() => {\n if (eligibilityPlans[current] && status === statusResponse.SUCCESS) {\n const currentPlan = eligibilityPlans[current]\n\n const planDescription = getPlanDescription(currentPlan, intl)\n const announcementText = intl.formatMessage(\n {\n id: 'accessibility.plan-selection-changed',\n defaultMessage: 'Plan sélectionné : {planDescription}',\n },\n { planDescription },\n )\n\n announce(announcementText, 1000)\n }\n // Note: eligibilityPlans is intentionally excluded from dependencies to prevent render loops\n // since it's recreated on every render by useFetchEligibility\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [current, intl, status, announce])\n\n // Set initial active plan when API response is received and merchant has specified a suggestion\n useEffect(() => {\n // When API has given a response AND the merchant set an active plan by default.\n if (status === statusResponse.SUCCESS && isSuggestedPaymentPlanSpecified) {\n onHover(activePlanIndex) // We select the first active plan possible\n onLeave() // We need to call onLeave to reset the animation\n }\n // We intentionally exclude 'activePlanIndex', 'isSuggestedPaymentPlanSpecified', 'onHover', and 'onLeave'\n // because including them would cause the effect to re-run unnecessarily, leading to unwanted behavior.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [status])\n\n // Announce animation control instructions to screen readers on initial load\n useAnimationInstructions({\n status,\n hasUserInteracted,\n eligiblePlansCount: eligiblePlans.length,\n transitionDelay,\n })\n\n /**\n * Handle user hover interaction - stops animation permanently\n * @param index - Plan index to hover\n */\n const handleUserHover = (index: number) => {\n setHasUserInteracted(true)\n onHover(index)\n }\n\n /**\n * Handle user leave interaction - only restart animation if user hasn't interacted manually\n */\n const handleUserLeave = () => {\n if (!hasUserInteracted) {\n onLeave()\n }\n }\n\n /**\n * Navigate to the next or previous eligible plan and focus the corresponding button\n * Used for arrow key navigation between payment plans\n * @param direction - 'next' or 'prev' for navigation direction\n * @param currentIndex - Current plan index\n */\n const navigateToEligiblePlan = (direction: 'next' | 'prev', currentIndex: number) => {\n const currentEligibleIndex = eligiblePlanKeys.indexOf(currentIndex)\n\n if (currentEligibleIndex === -1) return\n\n let newEligibleIndex\n if (direction === 'next') {\n newEligibleIndex = currentEligibleIndex + 1\n if (newEligibleIndex >= eligiblePlanKeys.length) return\n } else {\n newEligibleIndex = currentEligibleIndex - 1\n if (newEligibleIndex < 0) return\n }\n\n const newPlanIndex = eligiblePlanKeys[newEligibleIndex]\n // Mark as user interaction to stop animation permanently\n setHasUserInteracted(true)\n onHover(newPlanIndex)\n\n // Focus the new button for keyboard users\n buttonRefs.current[newPlanIndex]?.focus()\n }\n\n /**\n * Navigate to first or last eligible plan\n * Used for Home/End key navigation\n * @param position - 'first' or 'last'\n */\n const navigateToEdgePlan = (position: 'first' | 'last') => {\n const planIndex =\n position === 'first' ? eligiblePlanKeys[0] : eligiblePlanKeys[eligiblePlanKeys.length - 1]\n // Mark as user interaction to stop animation permanently\n setHasUserInteracted(true)\n onHover(planIndex)\n buttonRefs.current[planIndex]?.focus()\n }\n\n /**\n * Convert a plan index to its position within the eligible plans array\n * Used for modal initialization to show the correct plan\n *\n * @param {number} planIndex - The index of the plan that the user has selected.\n * @returns The index of the planKey in the eligiblePlanKeys array.\n */\n const getIndexWithinEligiblePlans = (planIndex: number) => {\n const index = eligiblePlanKeys.findIndex((planKey) => planKey === planIndex)\n return index === -1 ? 0 : index\n }\n\n // Show loading state while fetching eligibility data\n if (status === statusResponse.PENDING) {\n return (\n <div className={cx(s.widgetButton, s.pending)}>\n <Loader />\n </div>\n )\n }\n\n // Hide widget if no eligible plans and merchant wants to hide it, or if API failed\n if (\n (hideIfNotEligible && eligiblePlans.length === 0) ||\n eligibilityPlans.length === 0 ||\n status === statusResponse.FAILED\n ) {\n return null\n }\n\n /**\n * Handle opening the eligibility modal\n * Prevents default behavior and only opens if there are eligible plans\n */\n const handleOpenModal = (\n e: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>,\n ) => {\n e.preventDefault()\n if (eligiblePlans.length > 0) {\n openModal()\n }\n }\n\n return (\n <>\n {/* Main widget container - clickable to open modal */}\n <div\n onClick={handleOpenModal}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleOpenModal(e)\n }\n }}\n className={cx(\n s.widgetButton,\n {\n [s.clickable]: eligiblePlans.length > 0,\n [s.unClickable]: eligiblePlans.length === 0,\n [s.hideBorder]: hideBorder,\n [s.monochrome]: monochrome,\n },\n STATIC_CUSTOMISATION_CLASSES.container,\n )}\n data-testid=\"widget-button\"\n role=\"button\"\n tabIndex={0}\n aria-label={intl.formatMessage({\n id: 'accessibility.payment-widget.open-button.aria-label',\n defaultMessage: 'Ouvrir les options de paiement Alma',\n })}\n aria-description={\n eligiblePlans.length > 1 && !hasUserInteracted && transitionDelay !== -1\n ? intl.formatMessage({\n id: 'accessibility.payment-widget.animation-control-description',\n defaultMessage:\n \"Animation automatique active. Survolez ou utilisez les flèches pour arrêter l'animation.\",\n })\n : undefined\n }\n >\n {/* Primary content container with logo and payment plans */}\n <div className={cx(s.primaryContainer, STATIC_CUSTOMISATION_CLASSES.eligibilityLine)}>\n <AlmaLogo className={s.logo} color={monochrome ? 'var(--off-black)' : undefined} />\n\n {/* Payment plans radio group for keyboard navigation */}\n <div\n className={cx(s.paymentPlans, STATIC_CUSTOMISATION_CLASSES.eligibilityOptions)}\n role=\"radiogroup\"\n aria-label={intl.formatMessage({\n id: 'accessibility.payment-options.radiogroup.aria-label',\n defaultMessage: 'Options de paiement disponibles',\n })}\n >\n {eligibilityPlans.map((eligibilityPlan, key) => {\n const isCurrent = key === current\n const isEligible = eligibilityPlan.eligible\n\n return (\n <button\n type=\"button\"\n key={`p${eligibilityPlan.installments_count}x-d+${eligibilityPlan.deferred_days}-m+${eligibilityPlan.deferred_months}`}\n // Mouse/touch interactions for plan selection\n onMouseEnter={() => handleUserHover(key)}\n onTouchStart={() => handleUserHover(key)}\n onMouseLeave={handleUserLeave}\n onBlur={handleUserLeave}\n onTouchEnd={handleUserLeave}\n // Focus handling for keyboard users\n onFocus={isEligible ? () => handleUserHover(key) : undefined}\n // Keyboard navigation between eligible plans\n onKeyDown={(e) => {\n if (!isEligible) return\n\n // Arrow navigation between eligible plans only\n if (e.key === 'ArrowLeft') {\n e.preventDefault()\n navigateToEligiblePlan('prev', key)\n } else if (e.key === 'ArrowRight') {\n e.preventDefault()\n navigateToEligiblePlan('next', key)\n } else if (e.key === 'Home') {\n e.preventDefault()\n navigateToEdgePlan('first')\n } else if (e.key === 'End') {\n e.preventDefault()\n navigateToEdgePlan('last')\n }\n }}\n // Click to select plan and open modal\n onClick={(e) => {\n e.stopPropagation()\n if (isEligible) {\n onHover(key)\n // Open modal if clicking on an eligible plan\n if (eligiblePlans.length > 0) {\n openModal()\n }\n }\n }}\n className={cx(s.plan, s.planButton, {\n [cx(s.active, STATIC_CUSTOMISATION_CLASSES.activeOption)]: isCurrent,\n [s.monochrome]: monochrome && isCurrent,\n [cx(s.notEligible, STATIC_CUSTOMISATION_CLASSES.notEligibleOption)]:\n !isEligible,\n })}\n // Accessibility attributes for screen readers\n role=\"radio\"\n aria-checked={isCurrent}\n aria-describedby=\"payment-info-text\"\n aria-current={isCurrent ? 'true' : undefined}\n aria-label={intl.formatMessage(\n {\n id: 'accessibility.payment-plan.option.aria-label',\n defaultMessage: 'Option de paiement {planDescription}',\n },\n {\n planDescription: getPlanDescription(eligibilityPlan, intl),\n },\n )}\n aria-disabled={!isEligible}\n tabIndex={isEligible ? 0 : -1}\n ref={(el) => {\n buttonRefs.current[key] = el\n }} // Assign ref for keyboard navigation focus management\n >\n {paymentPlanShorthandName(eligibilityPlan)}\n </button>\n )\n })}\n </div>\n </div>\n\n {/* Payment plan information text */}\n <div\n className={cx(\n s.info,\n {\n [cx(s.notEligible, STATIC_CUSTOMISATION_CLASSES.notEligibleOption)]:\n eligibilityPlans[current] && !eligibilityPlans[current].eligible,\n },\n STATIC_CUSTOMISATION_CLASSES.paymentInfo,\n )}\n id=\"payment-info-text\"\n >\n {eligibilityPlans.length !== 0 && paymentPlanInfoText(eligibilityPlans[current])}\n </div>\n </div>\n\n {/* Eligibility modal for detailed plan information */}\n {isOpen && (\n <EligibilityModal\n initialPlanIndex={getIndexWithinEligiblePlans(current)}\n onClose={closeModal}\n eligibilityPlans={eligiblePlans}\n status={status}\n cards={cards}\n />\n )}\n\n {/* Screen reader announcement area for accessibility */}\n <div role=\"alert\" aria-live=\"assertive\" className={s.announceText}>\n {announceText}\n </div>\n </>\n )\n}\n\nexport default PaymentPlanWidget\n","import React from 'react'\n\nimport { createRoot, Root } from 'react-dom/client'\n\nimport { ApiMode } from '@/consts'\nimport {\n Locale,\n ModalOptions,\n PaymentPlanWidgetOptions,\n WidgetNames,\n WidgetOptions,\n widgetTypes,\n} from '@/types'\nimport IntlProvider from 'intl/IntlProvider'\nimport { ModalContainer } from 'Widgets/EligibilityModal/ModalContainer'\nimport PaymentPlanWidget from 'Widgets/PaymentPlans'\n\nexport type AddReturnType =\n | {\n open: () => void\n close: (event: React.MouseEvent | React.KeyboardEvent) => void\n }\n | undefined\n\ntype ApiData = { domain: ApiMode; merchantId: string }\n\nconst rootMap: Map<Element, Root> = new Map()\n\nconst addWidget = (\n apiData: ApiData,\n widget: WidgetNames,\n options: WidgetOptions,\n): AddReturnType => {\n const containerDiv = document.querySelector(options.container)\n\n if (containerDiv) {\n const existingRoot = rootMap.get(containerDiv)\n if (existingRoot) {\n existingRoot.unmount()\n rootMap.delete(containerDiv)\n }\n }\n\n if (widget === widgetTypes.PaymentPlans) {\n const {\n purchaseAmount,\n plans,\n transitionDelay,\n hideIfNotEligible,\n hideBorder = false,\n monochrome = true,\n suggestedPaymentPlan,\n customerBillingCountry,\n customerShippingCountry,\n locale = Locale.en,\n cards,\n onModalClose,\n } = options as PaymentPlanWidgetOptions\n\n if (containerDiv) {\n const root = createRoot(containerDiv)\n root.render(\n <IntlProvider locale={locale}>\n <PaymentPlanWidget\n apiData={apiData}\n configPlans={plans}\n hideIfNotEligible={hideIfNotEligible}\n monochrome={monochrome}\n purchaseAmount={purchaseAmount}\n suggestedPaymentPlan={suggestedPaymentPlan}\n cards={cards}\n customerBillingCountry={customerBillingCountry}\n customerShippingCountry={customerShippingCountry}\n transitionDelay={transitionDelay}\n hideBorder={hideBorder}\n onModalClose={onModalClose}\n />\n </IntlProvider>,\n )\n rootMap.set(containerDiv, root)\n }\n }\n\n if (widget === widgetTypes.Modal) {\n const {\n clickableSelector,\n purchaseAmount,\n plans,\n locale = Locale.en,\n customerBillingCountry,\n customerShippingCountry,\n cards,\n onClose,\n } = options as ModalOptions\n\n const close = (event: React.MouseEvent | React.KeyboardEvent) => {\n if (!containerDiv) return\n const root = rootMap.get(containerDiv)\n if (root) {\n root.unmount()\n rootMap.delete(containerDiv)\n }\n onClose?.(event)\n }\n\n const renderModal = () => {\n if (containerDiv) {\n const root = createRoot(containerDiv)\n root.render(\n <IntlProvider locale={locale}>\n <ModalContainer\n purchaseAmount={purchaseAmount}\n apiData={apiData}\n configPlans={plans}\n customerBillingCountry={customerBillingCountry}\n customerShippingCountry={customerShippingCountry}\n onClose={close}\n cards={cards}\n />\n </IntlProvider>,\n )\n rootMap.set(containerDiv, root)\n }\n }\n\n if (clickableSelector) {\n document.querySelector(clickableSelector)?.addEventListener('click', renderModal, false)\n }\n\n return {\n open: renderModal,\n close,\n }\n }\n\n return undefined\n}\n\nexport const WidgetsController = (apiData: ApiData) => ({\n add: (widget: WidgetNames, options: WidgetOptions) => addWidget(apiData, widget, options),\n})\n","export const SANDBOX_API_URL = 'https://api.sandbox.getalma.eu'\nexport const LIVE_API_URL = 'https://api.getalma.eu'\n\nexport enum ApiMode {\n LIVE = 'https://api.getalma.eu',\n TEST = 'https://api.sandbox.getalma.eu',\n}\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { ApiMode } from '@/consts'\nimport { widgetTypes } from '@/types'\nimport '@/main.css'\nimport * as utils from '@/utils'\nimport 'utils/polyfills' // todo Looks like legacy code, needs to be tested on multiple browsers (old ones too)\nimport { WidgetsController } from '@/widgets_controller'\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Widgets {\n export function initialize(merchantId: string, mode: ApiMode) {\n return WidgetsController({ domain: mode, merchantId })\n }\n export const PaymentPlans = widgetTypes.PaymentPlans\n export const Modal = widgetTypes.Modal\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Utils {\n export const priceToCents = utils.priceToCents\n export const priceFromCents = utils.priceFromCents\n export const formatCents = utils.formatCents\n}\n\nexport { ApiMode } from '@/consts'\n"],"names":["widgetTypes","statusResponse","Locale","priceToCents","price","priceFromCents","cents","formatCents","desktopWidth","isP1X","plan","ElementProto","selector","element","elements","index","window","reason","wsRE","wsIndex","checkIfValidClassListEntry","O","V","document","Object","hasOwnProp","defineProperty","allowTokenListConstruction","skipPropChange","DOMTokenList","a","v","argLen","val","ele","proto","i","Len","resStr","is","whenPropChanges","evt","prop","target","protoObjProto","strval","tokens","resTokenList","oldLen","cI","cLen","sub","innerI","polyfillClassList","protoObj","toks","newVal","e","DOMTokenListProto","testClass","NullCheck","n","oldValue","oldToken","newToken","value","f","tArg","that","l","u","r","o","c","s","h","p","y","w","d","g","_","t","m","b","k","x","S","C","M","$","z","I","P","q","A","L","B","H","T","j","F","D","N","E","G","J","K","R","U","W","Z","Y","Q","X","nn","tn","en","rn","un","on","cn","ln","fn","an","sn","hn","vn","dn","pn","mn","yn","_n","bn","Sn","gn","En","Cn","xn","Rn","createRoot","container","children","render","unmountComponentAtNode","extendStatics","__extends","__","__assign","__rest","__spreadArray","to","from","pack","ar","memoize","options","cache","cacheDefault","serializer","serializerDefault","strategy","strategyDefault","isPrimitive","monadic","arg","cacheKey","computedValue","variadic","args","assemble","context","serialize","strategyVariadic","ObjectWithoutPrototypeCache","key","strategies","invariant","condition","message","Err","_a","_i","ErrorKind","TYPE","SKELETON_TYPE","isLiteralElement","el","isArgumentElement","isNumberElement","isDateElement","isTimeElement","isSelectElement","isPluralElement","isPoundElement","isTagElement","isNumberSkeleton","isDateTimeSkeleton","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","result","match","len","WHITE_SPACE_REGEX","parseNumberSkeletonFromString","stringTokens","stringTokens_1","stringToken","stemAndOptions","stem","options_1","option","icuUnitToEcma","unit","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","str","g1","g2","parseSign","parseConciseScientificAndEngineeringStem","signDisplay","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens_1","token","all","g3","g4","g5","conciseScientificAndEngineeringOpts","timeData","getBestPattern","locale","skeletonCopy","patternPos","patternChar","extraLength","hourLen","dayPeriodLen","dayPeriodChar","hourChar","getDefaultHourSymbolFromLocale","hourCycle","languageTag","regionTag","hourCycles","SPACE_SEPARATOR_START_REGEX","SPACE_SEPARATOR_END_REGEX","createLocation","start","end","hasNativeStartsWith","hasNativeFromCodePoint","hasNativeFromEntries","hasNativeCodePointAt","hasTrimStart","hasTrimEnd","hasNativeIsSafeInteger","isSafeInteger","REGEX_SUPPORTS_U_AND_Y","re","RE","startsWith","search","position","fromCodePoint","codePoints","length","code","fromEntries","entries","obj","entries_1","codePointAt","size","first","second","trimStart","trimEnd","flag","matchIdentifierAtIndex","IDENTIFIER_PREFIX_RE_1","_isWhiteSpace","_isPatternSyntax","Parser","nestingLevel","parentArgType","expectingCloseTag","char","_isAlpha","startPosition","tagName","childrenResult","endTagStartPosition","closingTagNameStartPosition","closingTagName","startOffset","_isPotentialElementNameChar","parseQuoteResult","parseUnquotedResult","parseLeftAngleResult","location","_isAlphaOrSlash","ch","openingBracePosition","startingPosition","endOffset","endPosition","typeStartPosition","argType","typeEndPosition","styleAndLocation","styleStartPosition","style","styleLocation","argCloseResult","location_1","dateTimePattern","type","typeEndPosition_1","identifierAndLocation","pluralOffset","optionsResult","location_2","nestedBraces","apostrophePosition","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selectorLocation","fragmentResult","expectNumberError","invalidNumberError","sign","hasDigits","decimal","offset","kind","prefix","pattern","currentOffset","targetOffset","nextCode","codepoint","pruneLocation","els","parse","opts","error","ErrorCode","FormatError","_super","msg","originalMessage","_this","InvalidValueError","variableId","InvalidValueTypeError","MissingValueError","PART_TYPE","mergeLiteral","parts","part","lastPart","isFormatXMLElementFn","formatToParts","locales","formatters","formats","values","currentPluralValue","els_1","varName","value_1","formatFn","chunks","rule","mergeConfig","c1","c2","mergeConfigs","defaultConfig","configs","createFastMemoizeCache","store","createDefaultFormatters","IntlMessageFormat","overrideFormats","parseOpts","supportedLocales","IntlErrorCode","IntlError","exception","err","UnsupportedFormatterError","InvalidConfigError","MissingDataError","IntlFormatError","MessageFormatError","descriptor","MissingTranslationError","filterProps","props","allowlist","defaults","filtered","name","defaultErrorHandler","defaultWarnHandler","warning","DEFAULT_INTL_CONFIG","createIntlCache","createFormatters","RelativeTimeFormat","ListFormat","DisplayNames","getDateTimeFormat","getNumberFormat","getPluralRules","getNamedFormat","onError","formatType","format","setTimeZoneInOptions","timeZone","deepMergeOptions","opts1","opts2","keys","deepMergeFormatsAndSetTimeZone","f1","mfFormats","formatMessage","state","messageDescriptor","messages","defaultLocale","defaultFormats","fallbackOnEmptyString","defaultRichTextElements","msgId","defaultMessage","id","formatter","DATE_TIME_FORMAT_OPTIONS","getFormatter","filteredOptions","formatDate","config","_b","date","formatTime","formatDateTimeRange","formatDateToParts","formatTimeToParts","DISPLAY_NAMES_OPTONS","formatDisplayName","getDisplayNames","LIST_FORMAT_OPTIONS","now","generateToken","formatList","getListFormat","results","formatListToParts","richValues_1","serializedValues","PLURAL_FORMAT_OPTIONS","formatPlural","RELATIVE_TIME_FORMAT_OPTIONS","getRelativeTimeFormat","formatRelativeTime","NUMBER_FORMAT_OPTIONS","formatNumber","formatNumberToParts","messagesContainString","firstMessage","verifyConfigMessages","createIntl","resolvedConfig","invariantIntlContext","intl","CORE_DEFAULT_INTL_CONFIG","React.Fragment","assignUniqueKeysToParts","formatXMLElementFn","React.Children","shallowEqual","objA","objB","aKeys","bKeys","reactIs_production_min","reactIsModule","require$$0","reactIs","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","IntlContext","React.createContext","IntlProvider","Provider","Context","useIntl","React.useContext","DisplayName","DisplayNameParts","createFormattedDateTimePartsComponent","ComponentParts","formatProps","formattedParts","createFormattedComponent","Component","formattedValue","Text","React.createElement","assignUniqueKeysToFormatXMLElementFnArgument","acc","rawValues","rest","coreFormatMessage","rawDefaultRichTextElements","coreIntl","coreCreateIntl","processIntlConfig","prevConfig","React.PureComponent","areEqual","prevProps","nextProps","otherProps","nextValues","nextOtherProps","FormattedMessage","description","ignoreTag","nodes","MemoizedFormattedMessage","React.memo","FormattedDate","FormattedNumber","getTranslationsByLocale","messagesFR","messagesES","messagesIT","messagesDE","messagesPT","messagesNL","messagesEN","React","hashStringForStorage","isMoreThanOneHourAgo","useSessionStorage","timestamp","stringData","params","purchaseAmount","plans","customerBillingCountry","customerShippingCountry","domain","merchantId","stringAmount","stringPlans","buildVersion","define_process_env_default","fetchFromApi","data","headers","url","__async","__spreadValues","isPlanEligible","configPlan","getPaymentPlanBoundaries","purchaseAmountConstraints","filterEligibility","eligibilities","configPlans","eligibilityDeferredDays","relatedConfigPlan","configPlanDeferredDays","__spreadProps","useFetchEligibility","eligibility","setEligibility","useState","status","setStatus","getCache","setCache","createKey","clearCache","currentCache","lastCacheTimestamp","shouldInvalidate","configInstallments","useEffect","billingAddress","shippingAddress","res","cssMediaquery","matchQuery","parseQuery","RE_MEDIA_QUERY","RE_MQ_EXPRESSION","RE_MQ_FEATURE","RE_LENGTH_UNIT","RE_RESOLUTION_UNIT","mediaQuery","query","inverse","typeMatch","expressionsMatch","expression","feature","modifier","expValue","toPx","toDpi","toDecimal","captures","expressions","parsed","ratio","numbers","resolution","units","staticMatch","dynamicMatch","Mql","forceStatic","self","mql","update","addListener","removeListener","dispose","listener","matchMedia","matchmediaquery","uppercasePattern","msPattern","toHyphenLower","hyphenateStyleName","hName","shallowEqualObjects","ReactPropTypesSecret","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","propTypesModule","require$$2","stringOrNumber","PropTypes","types","featureMatchers","__objRest","features","mq","negate","cond","keyVal","realKey","hyphenate","join","conds","toQuery","rules","createContext","makeQuery","settings","hyphenateKeys","useIsUpdate","ref","useRef","useDevice","deviceFromProps","deviceFromContext","useContext","getDevice","device","setDevice","newDevice","useQuery","getQuery","setQuery","newQuery","useMatchMedia","getMatchMedia","setMq","isUpdate","newMq","useMatches","matches","setMatches","updateMatches","ev","useMediaQuery","onChange","deviceSettings","hasOwn","classNames","classes","appendClass","parseValue","newClass","module","LoadingIndicator","className","cx","root","isOn","scrollbarSize","scrollTop","getScrollbarSize","doc","dummyScroller","hasScrollbar","off","toggle","noScroll","exports","findTabbableDescendants","DISPLAY_NONE","DISPLAY_CONTENTS","tabbableNode","isNotOverflowing","hidesContents","zeroSize","displayValue","visible","parentElement","rootNode","focusable","isTabIndexNotNaN","nodeName","tabbable","tabIndex","isTabIndexNaN","descendants","finished","focusManager","resetState","log","handleBlur","handleFocus","markForFocusLater","returnFocus","popWithoutFocus","setupScopedFocus","teardownScopedFocus","_tabbable","_tabbable2","_interopRequireDefault","focusLaterElements","modalElement","needToFocus","preventScroll","toFocus","scopeTab","getActiveElement","node","event","shiftKey","head","tail","activeElement","checkSafari","isSafariDesktop","warning_1","canUseDOM","ExecutionEnvironment","safeHTMLElement","_exenv","_exenv2","EE","SafeHTMLElement","ariaAppHider","ariaAppHider$1","assertNodeList","setElement","validateElement","hide","show","documentNotReadyOrSSRTesting","_warning","_warning2","_safeHTMLElement","require$$1","globalElement","nodeList","useElement","appElement","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","classList","htmlClassList","docBodyClassList","removeClass","at","cls","htmlElement","body","_cls","incrementReference","poll","decrementReference","trackClass","classListRef","untrackClass","classString","portalOpenInstances_1","portalOpenInstances$1","_classCallCheck","instance","Constructor","PortalOpenInstances","openInstance","callback","eventType","subscriber","portalOpenInstances","bodyTrap_1","bodyTrap$1","_portalOpenInstances","_portalOpenInstances2","before","after","instances","_arr","item","_arr2","_i2","check","focusContent","bodyTrap","openInstances","_extends","source","_typeof","_createClass","defineProperties","protoProps","staticProps","_react","_propTypes","_propTypes2","_focusManager","_interopRequireWildcard","_scopeTab","require$$3","_scopeTab2","_ariaAppHider","require$$4","_classList","require$$5","require$$6","_safeHTMLElement2","require$$7","newObj","_possibleConstructorReturn","call","_inherits","subClass","superClass","CLASS_NAMES","isTabKey","isEscKey","ariaHiddenInstances","ModalPortal","_Component","overlay","content","_this$props","ariaHideApp","htmlOpenClassName","bodyOpenClassName","parentSelector","parentDocument","closesAt","which","additional","items","prevState","_props","_props2","overlayClassName","defaultStyles","contentStyles","overlayStyles","overlayProps","contentProps","contentElement","componentWillMount","componentWillReceiveProps","updater","componentWillUpdate","nextState","polyfill","prototype","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","Modal_1","_react2","_reactDom","_reactDom2","_ModalPortal","_ModalPortal2","_reactLifecyclesCompat","portalClassName","isReact16","createHTMLElement","getCreatePortal","getParentElement","Modal","_ref","_temp","_ret","_len","_key","parent","createPortal","portal","prevParent","nextParent","isOpen","Modal$1","contentEl","Modal$2","_Modal","_Modal2","CrossIcon","color","STATIC_CUSTOMISATION_CLASSES","ControlledModal","_c","onClose","contentClassName","scrollable","SkipLinks","skipLinks","handleSkipLinkClick","href","targetId","targetElement","labelId","millisecondsInSecond","constructFromSymbol","constructFrom","toDate","argument","normalizeDates","dates","normalize","startOfDay","_date","constructNow","isSameDay","laterDate","earlierDate","dateLeft_","dateRight_","isToday","secondsToMilliseconds","seconds","paymentPlanShorthandName","payment","deferredDays","deferredMonths","installmentsCount","paymentPlanShorthandText","withNoFee","paymentPlanInfoText","eligible","minAmount","maxAmount","paymentPlan","deferredDaysCount","areInstallmentsOfSameAmount","installment","getPlanDescription","EligibilityPlansButtons","eligibilityPlans","currentPlanIndex","setCurrentPlanIndex","buttonRefs","shouldFocusRef","navigateToPlan","newIndex","eligibilityPlan","Installment","TotalBlock","currentPlan","total","creditCost","TAEG","customerFees","isCredit","firstInstallmentAmount","totalWithoutFirstInstallment","_f","_e","_d","Schedule","AlmaLogo","AmexCard","CbCard","MasterCard","VisaCard","Cards","cards","uniqueCards","card","StrongText","Info","isCurrentPlanP1X","Title","isSomePlanDeferred","DesktopModal","MobileModal","EligibilityModal","initialPlanIndex","ModalComponent","eligiblePlans","ModalContainer","apiData","Loader","useAnnounceText","announceText","setAnnounceText","timeoutRef","announce","useCallback","text","clearDelay","clearAnnouncement","useAnimationInstructions","hasUserInteracted","eligiblePlansCount","transitionDelay","instructionText","timer","useButtonAnimation","iterateValues","current","setCurrent","setUpdate","animationIterationCount","setAnimationIterationCount","prefersReducedMotion","cappedTransitionDelay","timeout","isMounted","prev","currentIndex","getIndexOfActivePlan","suggestedPaymentPlan","suggestedPaymentPlanArray","foundIndex","planFound","DEFAULT_TRANSITION_TIME","PaymentPlanWidget","hideIfNotEligible","monochrome","hideBorder","onModalClose","useMemo","activePlanIndex","isSuggestedPaymentPlanSpecified","setIsOpen","openModal","closeModal","setHasUserInteracted","eligiblePlanKeys","realTransitionTime","onHover","onLeave","planDescription","announcementText","handleUserHover","handleUserLeave","navigateToEligiblePlan","direction","currentEligibleIndex","newEligibleIndex","newPlanIndex","navigateToEdgePlan","planIndex","getIndexWithinEligiblePlans","planKey","handleOpenModal","isCurrent","isEligible","rootMap","addWidget","widget","containerDiv","existingRoot","clickableSelector","close","renderModal","WidgetsController","ApiMode","Widgets","initialize","mode","Utils","utils.priceToCents","utils.priceFromCents","utils.formatCents"],"mappings":"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CO,EAAM,IAAI,EACzFK,IACAnC,EAAStD,EAASA,EAAS,CAAE,EAAEsD,CAAM,EAAGmC,CAAmC,EAEvF,CACI,OAAOnC,CACX,CCzTO,IAAIoC,GAAW,CAClB,MAAO,CACH,IACA,GACH,EACD,IAAO,CACH,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,KACA,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,GACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,KACA,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,SAAU,CACN,IACA,KACA,KACA,GACH,EACD,QAAS,CACL,IACA,IACA,IACH,EACD,SAAU,CACN,IACA,KACA,IACA,IACH,EACD,QAAS,CACL,IACA,KACA,IACA,IACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,QAAS,CACL,IACA,KACA,IACA,IACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,QAAS,CACL,IACA,IACA,IACH,EACD,QAAS,CACL,IACA,IACA,IACH,EACD,QAAS,CACL,KACA,KACA,IACA,GACH,EACD,QAAS,CACL,KACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,IACH,EACD,QAAS,CACL,IACA,IACA,IACH,EACD,QAAS,CACL,KACA,IACA,GACH,EACD,QAAS,CACL,KACA,IACA,GACH,EACD,QAAS,CACL,KAC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,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACNA,IAAM,O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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,51,52,53,54,55,56,57,58,59,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,80,81,82,83,84,85,86,87,88]}
1
+ {"version":3,"file":"widgets.umd.js","sources":["../src/types.ts","../src/utils/index.ts","../src/utils/polyfills.js","../node_modules/preact/dist/preact.module.js","../node_modules/preact/hooks/dist/hooks.module.js","../node_modules/preact/compat/dist/compat.module.js","../node_modules/preact/compat/client.mjs","../node_modules/tslib/tslib.es6.mjs","../node_modules/@formatjs/fast-memoize/lib/index.js","../node_modules/@formatjs/ecma402-abstract/lib/utils.js","../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","../node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../node_modules/intl-messageformat/lib/src/error.js","../node_modules/intl-messageformat/lib/src/formatters.js","../node_modules/intl-messageformat/lib/src/core.js","../node_modules/@formatjs/intl/lib/src/error.js","../node_modules/@formatjs/intl/lib/src/utils.js","../node_modules/@formatjs/intl/lib/src/message.js","../node_modules/@formatjs/intl/lib/src/dateTime.js","../node_modules/@formatjs/intl/lib/src/displayName.js","../node_modules/@formatjs/intl/lib/src/list.js","../node_modules/@formatjs/intl/lib/src/plural.js","../node_modules/@formatjs/intl/lib/src/relativeTime.js","../node_modules/@formatjs/intl/lib/src/number.js","../node_modules/@formatjs/intl/lib/src/create-intl.js","../node_modules/react-intl/lib/src/utils.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/react-intl/lib/src/components/injectIntl.js","../node_modules/react-intl/lib/src/components/useIntl.js","../node_modules/react-intl/lib/src/components/createFormattedComponent.js","../node_modules/react-intl/lib/src/components/createIntl.js","../node_modules/react-intl/lib/src/components/provider.js","../node_modules/react-intl/lib/src/components/message.js","../node_modules/react-intl/lib/index.js","../src/intl/utils.ts","../src/intl/IntlProvider.tsx","../src/utils/utilsForStorage.ts","../src/hooks/useSessionStorage.tsx","../src/utils/fetch.ts","../src/utils/filterEligibility.ts","../src/hooks/useFetchEligibility.ts","../node_modules/css-mediaquery/index.js","../node_modules/matchmediaquery/index.js","../node_modules/hyphenate-style-name/index.js","../node_modules/shallow-equal/dist/index.modern.mjs","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/react-responsive/dist/esm/index.js","../node_modules/classnames/index.js","../src/components/LoadingIndicator/LoadingIndicator.tsx","../node_modules/no-scroll/index.js","../node_modules/react-modal/lib/helpers/tabbable.js","../node_modules/react-modal/lib/helpers/focusManager.js","../node_modules/react-modal/lib/helpers/scopeTab.js","../node_modules/warning/warning.js","../node_modules/exenv/index.js","../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../node_modules/react-modal/lib/helpers/ariaAppHider.js","../node_modules/react-modal/lib/helpers/classList.js","../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../node_modules/react-modal/lib/helpers/bodyTrap.js","../node_modules/react-modal/lib/components/ModalPortal.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-modal/lib/components/Modal.js","../node_modules/react-modal/lib/index.js","../src/assets/Cross.tsx","../src/Widgets/EligibilityModal/classNames.const.ts","../src/components/Modal/index.tsx","../src/components/SkipLinks/index.tsx","../node_modules/date-fns/constants.js","../node_modules/date-fns/constructFrom.js","../node_modules/date-fns/toDate.js","../node_modules/date-fns/_lib/normalizeDates.js","../node_modules/date-fns/startOfDay.js","../node_modules/date-fns/constructNow.js","../node_modules/date-fns/isSameDay.js","../node_modules/date-fns/isToday.js","../node_modules/date-fns/secondsToMilliseconds.js","../src/utils/paymentPlanStrings.tsx","../src/Widgets/EligibilityModal/components/EligibilityPlansButtons/index.tsx","../src/components/Installments/Installment/index.tsx","../src/components/Installments/TotalBlock/index.tsx","../src/Widgets/EligibilityModal/components/Schedule/index.tsx","../src/assets/almaLogo.tsx","../src/assets/cards/amex.tsx","../src/assets/cards/cb.tsx","../src/assets/cards/mastercard.tsx","../src/assets/cards/visa.tsx","../src/Widgets/EligibilityModal/components/Cards/index.tsx","../src/Widgets/EligibilityModal/components/Info/index.tsx","../src/Widgets/EligibilityModal/components/Title/index.tsx","../src/Widgets/EligibilityModal/DesktopModal/index.tsx","../src/Widgets/EligibilityModal/MobileModal/index.tsx","../src/Widgets/EligibilityModal/index.tsx","../src/Widgets/EligibilityModal/ModalContainer.tsx","../src/components/Loader/index.tsx","../src/hooks/useAnnounceText.ts","../src/hooks/useAnimationInstructions.ts","../src/hooks/useButtonAnimation.ts","../src/utils/merchantOrderPreferences.ts","../src/Widgets/PaymentPlans/classNames.const.ts","../src/Widgets/PaymentPlans/index.tsx","../src/widgets_controller.tsx","../src/consts.ts","../src/index.ts"],"sourcesContent":["import React from 'react'\n\nimport { ApiMode } from '@/consts'\n\nexport type ApiConfig = { domain: ApiMode; merchantId: string }\n\nexport enum widgetTypes {\n PaymentPlans = 'PaymentPlans',\n Modal = 'Modal',\n}\nexport enum statusResponse {\n PENDING = 'pending',\n SUCCESS = 'success',\n FAILED = 'failed',\n}\n\nexport type ConfigPlan = {\n installmentsCount: number\n deferredDays?: number\n deferredMonths?: number\n minAmount: number\n maxAmount: number\n}\n\nexport type PaymentPlan = {\n customer_fee: number\n customer_interest: number\n due_date: number\n purchase_amount: number\n total_amount: number\n refunded_interest?: number\n}\nexport type EligibilityPlan = {\n annual_interest_rate?: number\n customer_total_cost_amount: number\n customer_total_cost_bps: number\n deferred_days: number\n deferred_months: number\n eligible: boolean\n reasons?: Record<string, unknown>\n installments_count: number\n payment_plan?: PaymentPlan[]\n purchase_amount: number\n constraints?: {\n purchase_amount?: { minimum: number; maximum: number }\n }\n}\n\nexport type ErrorResponse = {\n message?: string\n error_code?: string\n}\n\nexport type EligibilityPlanToDisplay = EligibilityPlan & {\n minAmount?: number\n maxAmount?: number\n}\n\nexport enum Locale {\n en = 'en',\n 'fr-FR' = 'fr-FR',\n fr = 'fr',\n 'de-DE' = 'de-DE',\n de = 'de',\n it = 'it',\n 'it-IT' = 'it-IT',\n es = 'es',\n 'es-ES' = 'es-ES',\n pt = 'pt',\n 'pt-PT' = 'pt-PT',\n nl = 'nl',\n 'nl-NL' = 'nl-NL',\n 'nl-BE' = 'nl-BE',\n}\n\nexport type Card = 'cb' | 'amex' | 'mastercard' | 'visa'\n\nexport type PaymentPlanWidgetOptions = {\n container: string\n hideIfNotEligible?: boolean\n locale?: Locale\n cards?: Card[]\n monochrome?: boolean\n plans?: ConfigPlan[]\n purchaseAmount: number\n suggestedPaymentPlan?: number | number[]\n transitionDelay?: number\n hideBorder?: boolean\n customerBillingCountry?: string\n customerShippingCountry?: string\n onModalClose?: (event: React.MouseEvent | React.KeyboardEvent) => void\n}\n\nexport type ModalOptions = {\n container: string\n clickableSelector: string\n purchaseAmount: number\n customerBillingCountry?: string\n customerShippingCountry?: string\n plans?: ConfigPlan[]\n locale?: Locale\n cards?: Card[]\n onClose?: (event: React.MouseEvent | React.KeyboardEvent) => void\n}\n\nexport type WidgetNames = keyof typeof widgetTypes\n\nexport type WidgetOptions = PaymentPlanWidgetOptions | ModalOptions\n","import { EligibilityPlan } from '@/types'\n\nexport function priceToCents(price: number): number {\n return Math.round(price * 100)\n}\n\nexport function priceFromCents(cents: number): number {\n return Number((cents / 100).toFixed(2))\n}\n\nexport function formatCents(cents: number): string {\n return String(priceFromCents(cents)).replace('.', ',')\n}\n\nexport const secondsToMilliseconds = (date: number): number => date * 1000\n\nexport const desktopWidth = 800\n\nexport const isP1X = (plan: EligibilityPlan): boolean =>\n plan?.installments_count === 1 && plan?.deferred_days === 0 && plan?.deferred_months === 0\n","/* eslint-disable */\n/*\n * Element.prototype.closest & Element.prototype.matches polyfills\n */\n\n;(function (ElementProto) {\n if (typeof ElementProto.matches !== 'function') {\n ElementProto.matches =\n ElementProto.msMatchesSelector ||\n ElementProto.mozMatchesSelector ||\n ElementProto.webkitMatchesSelector ||\n function matches(selector) {\n const element = this\n const elements = (element.document || element.ownerDocument).querySelectorAll(selector)\n let index = 0\n\n while (elements[index] && elements[index] !== element) {\n ++index\n }\n\n return Boolean(elements[index])\n }\n }\n\n if (typeof ElementProto.closest !== 'function') {\n ElementProto.closest = function closest(selector) {\n let element = this\n\n while (element && element.nodeType === 1) {\n if (element.matches(selector)) {\n return element\n }\n\n element = element.parentNode\n }\n\n return null\n }\n }\n})(window.Element.prototype)\n\n/*\n * Element.prototype.classList polyfill\n */\n\n// 1. String.prototype.trim polyfill\nif (!''.trim)\n String.prototype.trim = function () {\n return this.replace(/^[\\s]+|[\\s]+$/g, '')\n }\n;(function (window) {\n // prevent global namespace pollution\n if (!window.DOMException)\n (DOMException = function (reason) {\n this.message = reason\n }).prototype = new Error()\n const wsRE = /[\\11\\12\\14\\15\\40]/\n let wsIndex = 0\n const checkIfValidClassListEntry = function (O, V) {\n if (V === '')\n throw new DOMException(\n `Failed to execute '${O}' on 'DOMTokenList': The token provided must not be empty.`,\n )\n if ((wsIndex = V.search(wsRE)) !== -1)\n throw new DOMException(\n `Failed to execute '${O}' on 'DOMTokenList': ` +\n `The token provided ('${\n V[wsIndex]\n }') contains HTML space characters, which are not valid in tokens.`,\n )\n }\n // 2. Implement the barebones DOMTokenList livelyness polyfill\n if (typeof DOMTokenList !== 'function')\n (function (window) {\n const document = window.document\n const Object = window.Object\n const hasOwnProp = Object.prototype.hasOwnProperty\n const defineProperty = Object.defineProperty\n let allowTokenListConstruction = 0\n let skipPropChange = 0\n\n const DOMTokenList = function () {\n if (!allowTokenListConstruction) throw TypeError('Illegal constructor') // internally let it through\n }\n\n DOMTokenList.prototype.toString = DOMTokenList.prototype.toLocaleString = function () {\n return this.value\n }\n DOMTokenList.prototype.add = function () {\n a: for (\n var v = 0, argLen = arguments.length, val = '', ele = this[' uCL'], proto = ele[' uCLp'];\n v !== argLen;\n ++v\n ) {\n ;(val = `${arguments[v]}`), checkIfValidClassListEntry('add', val)\n for (var i = 0, Len = proto.length, resStr = val; i !== Len; ++i)\n if (this[i] === val) continue a\n else resStr += ` ${this[i]}`\n ;(this[Len] = val), (proto.length += 1), (proto.value = resStr)\n }\n ;(skipPropChange = 1), (ele.className = proto.value), (skipPropChange = 0)\n }\n DOMTokenList.prototype.remove = function () {\n for (\n var v = 0, argLen = arguments.length, val = '', ele = this[' uCL'], proto = ele[' uCLp'];\n v !== argLen;\n ++v\n ) {\n ;(val = `${arguments[v]}`), checkIfValidClassListEntry('remove', val)\n for (var i = 0, Len = proto.length, resStr = '', is = 0; i !== Len; ++i)\n if (is) {\n this[i - 1] = this[i]\n } else if (this[i] !== val) {\n resStr += `${this[i]} `\n } else {\n is = 1\n }\n if (!is) continue\n delete this[Len], (proto.length -= 1), (proto.value = resStr)\n }\n ;(skipPropChange = 1), (ele.className = proto.value), (skipPropChange = 0)\n }\n window.DOMTokenList = DOMTokenList\n\n function whenPropChanges() {\n const evt = window.event\n const prop = evt.propertyName\n if (\n !skipPropChange &&\n (prop === 'className' || (prop === 'classList' && !defineProperty))\n ) {\n const target = evt.srcElement\n const protoObjProto = target[' uCLp']\n const strval = `${target[prop]}`\n const tokens = strval.trim().split(wsRE)\n const resTokenList = target[prop === 'classList' ? ' uCL' : 'classList']\n const oldLen = protoObjProto.length\n a: for (\n var cI = 0, cLen = (protoObjProto.length = tokens.length), sub = 0;\n cI !== cLen;\n ++cI\n ) {\n for (let innerI = 0; innerI !== cI; ++innerI)\n if (tokens[innerI] === tokens[cI]) {\n sub++\n continue a\n }\n resTokenList[cI - sub] = tokens[cI]\n }\n for (let i = cLen - sub; i < oldLen; ++i) delete resTokenList[i] // remove trailing indexs\n if (prop !== 'classList') return\n ;(skipPropChange = 1), (target.classList = resTokenList), (target.className = strval)\n ;(skipPropChange = 0), (resTokenList.length = tokens.length - sub)\n }\n }\n\n function polyfillClassList(ele) {\n if (!ele || !('innerHTML' in ele)) throw TypeError('Illegal invocation')\n ele.detachEvent('onpropertychange', whenPropChanges) // prevent duplicate handler infinite loop\n allowTokenListConstruction = 1\n try {\n var protoObj = function () {}\n\n protoObj.prototype = new DOMTokenList()\n } finally {\n allowTokenListConstruction = 0\n }\n const protoObjProto = protoObj.prototype\n const resTokenList = new protoObj()\n a: for (\n var toks = ele.className.trim().split(wsRE), cI = 0, cLen = toks.length, sub = 0;\n cI !== cLen;\n ++cI\n ) {\n for (let innerI = 0; innerI !== cI; ++innerI)\n if (toks[innerI] === toks[cI]) {\n sub++\n continue a\n }\n this[cI - sub] = toks[cI]\n }\n ;(protoObjProto.length = cLen - sub),\n (protoObjProto.value = ele.className),\n (protoObjProto[' uCL'] = ele)\n if (defineProperty) {\n defineProperty(ele, 'classList', {\n // IE8 & IE9 allow defineProperty on the DOM\n enumerable: 1,\n get() {\n return resTokenList\n },\n configurable: 0,\n set(newVal) {\n ;(skipPropChange = 1),\n (ele.className = protoObjProto.value = newVal += ''),\n (skipPropChange = 0)\n const toks = newVal.trim().split(wsRE)\n const oldLen = protoObjProto.length\n a: for (\n var cI = 0, cLen = (protoObjProto.length = toks.length), sub = 0;\n cI !== cLen;\n ++cI\n ) {\n for (let innerI = 0; innerI !== cI; ++innerI)\n if (toks[innerI] === toks[cI]) {\n sub++\n continue a\n }\n resTokenList[cI - sub] = toks[cI]\n }\n for (let i = cLen - sub; i < oldLen; ++i) delete resTokenList[i] // remove trailing indexs\n },\n })\n defineProperty(ele, ' uCLp', {\n // for accessing the hidden prototype\n enumerable: 0,\n configurable: 0,\n writeable: 0,\n value: protoObj.prototype,\n })\n defineProperty(protoObjProto, ' uCL', {\n enumerable: 0,\n configurable: 0,\n writeable: 0,\n value: ele,\n })\n } else {\n ;(ele.classList = resTokenList),\n (ele[' uCL'] = resTokenList),\n (ele[' uCLp'] = protoObj.prototype)\n }\n ele.attachEvent('onpropertychange', whenPropChanges)\n }\n\n try {\n // Much faster & cleaner version for IE8 & IE9:\n // Should work in IE8 because Element.prototype instanceof Node is true according to the specs\n window.Object.defineProperty(window.Element.prototype, 'classList', {\n enumerable: 1,\n get(val) {\n if (!hasOwnProp.call(this, 'classList')) polyfillClassList(this)\n return this.classList\n },\n configurable: 0,\n set(val) {\n this.className = val\n },\n })\n } catch (e) {\n // Less performant fallback for older browsers (IE 6-8):\n window[' uCL'] = polyfillClassList\n // the below code ensures polyfillClassList is applied to all current and future elements in the doc.\n document.documentElement.firstChild.appendChild(\n document.createElement('style'),\n ).styleSheet.cssText =\n '_*{x-uCLp:expression(!this.hasOwnProperty(\"classList\")&&window[\" uCL\"](this))}' + // IE6\n '[class]{x-uCLp/**/:expression(!this.hasOwnProperty(\"classList\")&&window[\" uCL\"](this))}' // IE7-8\n }\n })(window)\n // 3. Patch in unsupported methods in DOMTokenList\n ;(function (DOMTokenListProto, testClass) {\n if (!DOMTokenListProto.item)\n DOMTokenListProto.item = function (i) {\n function NullCheck(n) {\n return n === void 0 ? null : n\n }\n\n return NullCheck(this[i])\n }\n if (!DOMTokenListProto.toggle || testClass.toggle('a', 0) !== false)\n DOMTokenListProto.toggle = function (val) {\n if (arguments.length > 1) return this[arguments[1] ? 'add' : 'remove'](val), !!arguments[1]\n const oldValue = this.value\n return (\n this.remove(oldValue), oldValue === this.value && (this.add(val), true)\n ) /* || false */\n }\n if (!DOMTokenListProto.replace || typeof testClass.replace('a', 'b') !== 'boolean')\n DOMTokenListProto.replace = function (oldToken, newToken) {\n checkIfValidClassListEntry('replace', oldToken),\n checkIfValidClassListEntry('replace', newToken)\n const oldValue = this.value\n return this.remove(oldToken), this.value !== oldValue && (this.add(newToken), true)\n }\n if (!DOMTokenListProto.contains)\n DOMTokenListProto.contains = function (value) {\n for (let i = 0, Len = this.length; i !== Len; ++i) if (this[i] === value) return true\n return false\n }\n if (!DOMTokenListProto.forEach)\n DOMTokenListProto.forEach = function (f) {\n if (arguments.length === 1)\n for (var i = 0, Len = this.length; i !== Len; ++i) f(this[i], i, this)\n else\n for (var i = 0, Len = this.length, tArg = arguments[1]; i !== Len; ++i)\n f.call(tArg, this[i], i, this)\n }\n if (!DOMTokenListProto.entries)\n DOMTokenListProto.entries = function () {\n const nextIndex = 0\n const that = this\n return {\n next() {\n return nextIndex < that.length\n ? {\n value: [nextIndex, that[nextIndex]],\n done: false,\n }\n : { done: true }\n },\n }\n }\n if (!DOMTokenListProto.values)\n DOMTokenListProto.values = function () {\n const nextIndex = 0\n const that = this\n return {\n next() {\n return nextIndex < that.length\n ? { value: that[nextIndex], done: false }\n : { done: true }\n },\n }\n }\n if (!DOMTokenListProto.keys)\n DOMTokenListProto.keys = function () {\n const nextIndex = 0\n const that = this\n return {\n next() {\n return nextIndex < that.length ? { value: nextIndex, done: false } : { done: true }\n },\n }\n }\n })(window.DOMTokenList.prototype, window.document.createElement('div').classList)\n})(window)\n","var n,l,u,t,i,r,o,e,f,c,s,a,h,p={},y=[],v=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,w=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function g(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)null==e[o]&&(e[o]=l.defaultProps[o]);return m(l,e,i,r,null)}function m(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function b(){return{current:null}}function k(n){return n.children}function x(n,l){this.props=n,this.context=l}function S(n,l){if(null==l)return n.__?S(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?S(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!$.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)($)}function $(){for(var n,u,t,r,o,f,c,s=1;i.length;)i.length>s&&i.sort(e),n=i.shift(),s=i.length,n.__d&&(t=void 0,o=(r=(u=n).__v).__e,f=[],c=[],u.__P&&((t=d({},r)).__v=r.__v+1,l.vnode&&l.vnode(t),O(u.__P,t,r,u.__n,u.__P.namespaceURI,32&r.__u?[o]:null,f,null==o?S(r):o,!!(32&r.__u),c),t.__v=r.__v,t.__.__k[t.__i]=t,z(f,t,c),t.__e!=o&&C(t)));$.__r=0}function I(n,l,u,t,i,r,o,e,f,c,s){var a,h,v,w,d,g,_=t&&t.__k||y,m=l.length;for(f=P(u,l,_,f,m),a=0;a<m;a++)null!=(v=u.__k[a])&&(h=-1==v.__i?p:_[v.__i]||p,v.__i=a,g=O(n,v,h,i,r,o,e,f,c,s),w=v.__e,v.ref&&h.ref!=v.ref&&(h.ref&&q(h.ref,null,v),s.push(v.ref,v.__c||w,v)),null==d&&null!=w&&(d=w),4&v.__u||h.__k===v.__k?f=A(v,f,n):\"function\"==typeof v.type&&void 0!==g?f=g:w&&(f=w.nextSibling),v.__u&=-7);return u.__e=d,f}function P(n,l,u,t,i){var r,o,e,f,c,s=u.length,a=s,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(f=r+h,(o=n.__k[r]=\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?m(null,o,null,null,null):w(o)?m(k,{children:o},null,null,null):null==o.constructor&&o.__b>0?m(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=L(o,u,f,a))&&(a--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>s?h--:i<s&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(a)for(r=0;r<s;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=S(e)),B(e,e));return t}function A(n,l,u){var t,i;if(\"function\"==typeof n.type){for(t=n.__k,i=0;t&&i<t.length;i++)t[i]&&(t[i].__=n,l=A(t[i],l,u));return l}n.__e!=l&&(l&&n.type&&!u.contains(l)&&(l=S(n)),u.insertBefore(n.__e,l||null),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(w(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i,r,o=n.key,e=n.type,f=l[u];if(null===f&&null==n.key||f&&o==f.key&&e==f.type&&0==(2&f.__u))return u;if(t>(null!=f&&0==(2&f.__u)?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;){if(i>=0){if((f=l[i])&&0==(2&f.__u)&&o==f.key&&e==f.type)return i;i--}if(r<l.length){if((f=l[r])&&0==(2&f.__u)&&o==f.key&&e==f.type)return r;r++}}return-1}function T(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||v.test(l)?u:u+\"px\"}function j(n,l,u,t,i){var r;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||T(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(f,\"$1\")),l=l.toLowerCase()in n||\"onFocusOut\"==l||\"onFocusIn\"==l?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u.u=t.u:(u.u=c,n.addEventListener(l,r?a:s,r)):n.removeEventListener(l,r?a:s,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function F(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=c++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function O(n,u,t,i,r,o,e,f,c,s){var a,h,p,y,v,_,m,b,S,C,M,$,P,A,H,L,T,j=u.type;if(null!=u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof j)try{if(b=u.props,S=\"prototype\"in j&&j.prototype.render,C=(a=j.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,t.__c?m=(h=u.__c=t.__c).__=h.__E:(S?u.__c=h=new j(b,M):(u.__c=h=new x(b,M),h.constructor=j,h.render=D),C&&C.sub(h),h.props=b,h.state||(h.state={}),h.context=M,h.__n=i,p=h.__d=!0,h.__h=[],h._sb=[]),S&&null==h.__s&&(h.__s=h.state),S&&null!=j.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=d({},h.__s)),d(h.__s,j.getDerivedStateFromProps(b,h.__s))),y=h.props,v=h.state,h.__v=u,p)S&&null==j.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),S&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(S&&null==j.getDerivedStateFromProps&&b!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(b,M),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(b,h.__s,M)||u.__v==t.__v){for(u.__v!=t.__v&&(h.props=b,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),$=0;$<h._sb.length;$++)h.__h.push(h._sb[$]);h._sb=[],h.__h.length&&e.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(b,h.__s,M),S&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,v,_)})}if(h.context=M,h.props=b,h.__P=n,h.__e=!1,P=l.__r,A=0,S){for(h.state=h.__s,h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++A<25);h.state=h.__s,null!=h.getChildContext&&(i=d(d({},i),h.getChildContext())),S&&!p&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(y,v)),L=a,null!=a&&a.type===k&&null==a.key&&(L=N(a.props.children)),f=I(n,w(L)?L:[L],u,t,i,r,o,e,f,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&e.push(h),m&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=o)if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;o[o.indexOf(f)]=null,u.__e=f}else for(T=o.length;T--;)g(o[T]);else u.__e=t.__e,u.__k=t.__k;l.__e(n,u,t)}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=V(t.__e,u,t,i,r,o,e,c,s);return(a=l.diffed)&&a(u),128&u.__u?void 0:f}function z(n,u,t){for(var i=0;i<t.length;i++)q(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function N(n){return\"object\"!=typeof n||null==n||n.__b&&n.__b>0?n:w(n)?n.map(N):d({},n)}function V(u,t,i,r,o,e,f,c,s){var a,h,y,v,d,_,m,b=i.props,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(a=0;a<e.length;a++)if((d=e[a])&&\"setAttribute\"in d==!!x&&(x?d.localName==x:3==d.nodeType)){u=d,e[a]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)b===k||c&&u.data==k||(u.data=k);else{if(e=e&&n.call(u.childNodes),b=i.props||p,!c&&null!=e)for(b={},a=0;a<u.attributes.length;a++)b[(d=u.attributes[a]).name]=d.value;for(a in b)if(d=b[a],\"children\"==a);else if(\"dangerouslySetInnerHTML\"==a)y=d;else if(!(a in k)){if(\"value\"==a&&\"defaultValue\"in k||\"checked\"==a&&\"defaultChecked\"in k)continue;j(u,a,null,d,o)}for(a in k)d=k[a],\"children\"==a?v=d:\"dangerouslySetInnerHTML\"==a?h=d:\"value\"==a?_=d:\"checked\"==a?m=d:c&&\"function\"!=typeof d||b[a]===d||j(u,a,d,b[a],o);if(h)c||y&&(h.__html==y.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(y&&(u.innerHTML=\"\"),I(\"template\"==t.type?u.content:u,w(v)?v:[v],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&S(i,0),c,s),null!=e)for(a=e.length;a--;)g(e[a]);c||(a=\"value\",\"progress\"==x&&null==_?u.removeAttribute(\"value\"):null!=_&&(_!==u[a]||\"progress\"==x&&!_||\"option\"==x&&_!=b[a])&&j(u,a,_,b[a],o),a=\"checked\",null!=m&&m!=u[a]&&j(u,a,m,b[a],o))}return u}function q(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function B(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||q(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&B(i[r],u,t||\"function\"!=typeof n.type);t||g(n.__e),n.__c=n.__=n.__e=void 0}function D(n,l,u){return this.constructor(n,u)}function E(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],O(t,u=(!r&&i||t).__k=_(k,null,[u]),o||p,p,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),z(e,u,f)}function G(n,l){E(n,l,G)}function J(l,u,t){var i,r,o,e,f=d({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=null==u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),m(l.type,f,i||l.key,r||l.ref,null)}function K(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+h++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=y.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},x.prototype.render=k,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},$.__r=0,f=/(PointerCapture)$|Capture$/i,c=0,s=F(!1),a=F(!0),h=0;export{x as Component,k as Fragment,J as cloneElement,K as createContext,_ as createElement,b as createRef,_ as h,G as hydrate,t as isValidElement,l as options,E as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function p(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,h(D,n)}function h(n,u,i){var o=p(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=o.__c.props!==n;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c&&c.call(this,n,t,r)||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=p(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=p(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=p(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=p(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=p(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=p(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,h as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as c,createRef as l,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useState as a,useLayoutEffect as s,useEffect as h,useCallback as v,useContext as d,useDebugValue as p,useId as m,useImperativeHandle as y,useMemo as _,useReducer as b,useRef as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function E(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function C(n,t){var e=t(),r=a({t:{__:e,u:t}}),u=r[0].t,o=r[1];return s(function(){u.__=e,u.u=t,x(u)&&o({t:u})},[n,e,t]),h(function(){return x(u)&&o({t:u}),n(function(){x(u)&&o({t:u})})},[n]),e}function x(n){var t,e,r=n.u,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}function R(n){n()}function w(n){return n}function k(){return[!1,R]}var I=s;function N(n,t){this.props=n,this.context=t}function M(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(N.prototype=new n).isPureReactComponent=!0,N.prototype.shouldComponentUpdate=function(n,t){return E(this.props,n)||E(this.state,t)};var T=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),T&&T(n)};var A=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function D(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=A,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var L=function(n,t){return null==n?null:r(r(n).map(t))},O={map:L,forEach:L,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},F=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);F(n,t,e,r)};var U=e.unmount;function V(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c.__e=!0,n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return V(n,t,e)})),n}function W(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return W(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function P(){this.__u=0,this.o=null,this.__b=null}function j(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function z(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function B(){this.i=null,this.l=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),U&&U(n)},(P.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.o&&(r.o=[]),r.o.push(e);var u=j(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(c):c())};e.__R=i;var c=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=W(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},P.prototype.componentWillUnmount=function(){this.o=[]},P.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=V(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__u&=-33),[t(u,null,e.__a?null:n.children),i]};var H=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.i=e=e[2]}};function Z(n){return this.getChildContext=function(){return n.context},n.children}function Y(n){var e=this,r=n.h;e.componentWillUnmount=function(){o(null,e.v),e.v=null,e.h=null},e.h&&e.h!==r&&e.componentWillUnmount(),e.v||(e.h=r,e.v={nodeType:1,parentNode:r,childNodes:[],contains:function(){return!0},appendChild:function(n){this.childNodes.push(n),e.h.appendChild(n)},insertBefore:function(n,t){this.childNodes.push(n),e.h.insertBefore(n,t)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.h.removeChild(n)}}),o(t(Z,{context:e.context},n.__v),e.v)}function $(n,e){var r=t(Y,{__v:n,h:e});return r.containerInfo=e,r}(B.prototype=new n).__a=function(n){var t=this,e=j(t.__v),r=t.l.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),H(t,n,r)):u()};e?e(o):o()}},B.prototype.render=function(n){this.i=null,this.l=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.l.set(t[e],this.i=[1,0,this.i]);return n.children},B.prototype.componentDidUpdate=B.prototype.componentDidMount=function(){var n=this;this.l.forEach(function(t,e){H(n,e,t)})};var q=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,G=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,J=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,K=/[A-Z0-9]/g,Q=\"undefined\"!=typeof document,X=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function nn(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function tn(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var en=e.event;function rn(){}function un(){return this.cancelBubble}function on(){return this.defaultPrevented}e.event=function(n){return en&&(n=en(n)),n.persist=rn,n.isPropagationStopped=un,n.isDefaultPrevented=on,n.nativeEvent=n};var cn,ln={enumerable:!1,configurable:!0,get:function(){return this.class}},fn=e.vnode;e.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={},o=-1===e.indexOf(\"-\");for(var i in t){var c=t[i];if(!(\"value\"===i&&\"defaultValue\"in t&&null==c||Q&&\"children\"===i&&\"noscript\"===e||\"class\"===i||\"className\"===i)){var l=i.toLowerCase();\"defaultValue\"===i&&\"value\"in t&&null==t.value?i=\"value\":\"download\"===i&&!0===c?c=\"\":\"translate\"===l&&\"no\"===c?c=!1:\"o\"===l[0]&&\"n\"===l[1]?\"ondoubleclick\"===l?i=\"ondblclick\":\"onchange\"!==l||\"input\"!==e&&\"textarea\"!==e||X(t.type)?\"onfocus\"===l?i=\"onfocusin\":\"onblur\"===l?i=\"onfocusout\":J.test(i)&&(i=l):l=i=\"oninput\":o&&G.test(i)?i=i.replace(K,\"-$&\").toLowerCase():null===c&&(c=void 0),\"oninput\"===l&&u[i=l]&&(i=\"oninputCapture\"),u[i]=c}}\"select\"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=r(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==e&&null!=u.defaultValue&&(u.value=r(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",ln)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=q,fn&&fn(n)};var an=e.__r;e.__r=function(n){an&&an(n),cn=n.__c};var sn=e.diffed;e.diffed=function(n){sn&&sn(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),cn=null};var hn={ReactCurrentDispatcher:{current:{readContext:function(n){return cn.__n[n.__c].props.value},useCallback:v,useContext:d,useDebugValue:p,useDeferredValue:w,useEffect:h,useId:m,useImperativeHandle:y,useInsertionEffect:I,useLayoutEffect:s,useMemo:_,useReducer:b,useRef:S,useState:a,useSyncExternalStore:C,useTransition:k}}},vn=\"18.3.1\";function dn(n){return t.bind(null,n)}function pn(n){return!!n&&n.$$typeof===q}function mn(n){return pn(n)&&n.type===u}function yn(n){return!!n&&!!n.displayName&&(\"string\"==typeof n.displayName||n.displayName instanceof String)&&n.displayName.startsWith(\"Memo(\")}function _n(n){return pn(n)?f.apply(null,arguments):n}function bn(n){return!!n.__k&&(o(null,n),!0)}function Sn(n){return n&&(n.base||1===n.nodeType&&n)||null}var gn=function(n,t){return n(t)},En=function(n,t){return n(t)},Cn=u,xn=pn,Rn={useState:a,useId:m,useReducer:b,useEffect:h,useLayoutEffect:s,useInsertionEffect:I,useTransition:k,useDeferredValue:w,useSyncExternalStore:C,startTransition:R,useRef:S,useImperativeHandle:y,useMemo:_,useCallback:v,useContext:d,useDebugValue:p,version:\"18.3.1\",Children:O,render:nn,hydrate:tn,unmountComponentAtNode:bn,createPortal:$,createElement:t,createContext:c,createFactory:dn,cloneElement:_n,createRef:l,Fragment:u,isValidElement:pn,isElement:xn,isFragment:mn,isMemo:yn,findDOMNode:Sn,Component:n,PureComponent:N,memo:M,forwardRef:D,flushSync:En,unstable_batchedUpdates:gn,StrictMode:Cn,Suspense:P,SuspenseList:B,lazy:z,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:hn};export{O as Children,N as PureComponent,Cn as StrictMode,P as Suspense,B as SuspenseList,hn as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,_n as cloneElement,dn as createFactory,$ as createPortal,Rn as default,Sn as findDOMNode,En as flushSync,D as forwardRef,tn as hydrate,xn as isElement,mn as isFragment,yn as isMemo,pn as isValidElement,z as lazy,M as memo,nn as render,R as startTransition,bn as unmountComponentAtNode,gn as unstable_batchedUpdates,w as useDeferredValue,I as useInsertionEffect,C as useSyncExternalStore,k as useTransition,vn as version};\n//# sourceMappingURL=compat.module.js.map\n","import { render, hydrate, unmountComponentAtNode } from 'preact/compat';\n\nexport function createRoot(container) {\n\treturn {\n\t\t// eslint-disable-next-line\n\t\trender: function (children) {\n\t\t\trender(children, container);\n\t\t},\n\t\t// eslint-disable-next-line\n\t\tunmount: function () {\n\t\t\tunmountComponentAtNode(container);\n\t\t}\n\t};\n}\n\nexport function hydrateRoot(container, children) {\n\thydrate(children, container);\n\treturn createRoot(container);\n}\n\nexport default {\n\tcreateRoot,\n\thydrateRoot\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","//\n// Main\n//\nexport function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __spreadArray } from \"tslib\";\nimport { memoize, strategies } from '@formatjs/fast-memoize';\n/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n // Cannot count string length via Number.toString because it may use scientific notation\n // for very small or very large numbers.\n return Math.floor(Math.log(x) * Math.LOG10E);\n}\nexport function repeat(s, times) {\n if (typeof s.repeat === 'function') {\n return s.repeat(times);\n }\n var arr = new Array(times);\n for (var i = 0; i < arr.length; i++) {\n arr[i] = s;\n }\n return arr.join('');\n}\nexport function setInternalSlot(map, pl, field, value) {\n if (!map.get(pl)) {\n map.set(pl, Object.create(null));\n }\n var slots = map.get(pl);\n slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var k = _a[_i];\n setInternalSlot(map, pl, k, props[k]);\n }\n}\nexport function getInternalSlot(map, pl, field) {\n return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n var fields = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n fields[_i - 2] = arguments[_i];\n }\n var slots = map.get(pl);\n if (!slots) {\n throw new TypeError(\"\".concat(pl, \" InternalSlot has not been initialized\"));\n }\n return fields.reduce(function (all, f) {\n all[f] = slots[f];\n return all;\n }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n return patternPart.type === 'literal';\n}\n/*\n 17 ECMAScript Standard Built-in Objects:\n Every built-in Function object, including constructors, that is not\n identified as an anonymous function has a name property whose value\n is a String.\n\n Unless otherwise specified, the name property of a built-in Function\n object, if it exists, has the attributes { [[Writable]]: false,\n [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, _a) {\n var value = _a.value;\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value,\n });\n}\n/**\n * 7.3.5 CreateDataProperty\n * @param target\n * @param name\n * @param value\n */\nexport function createDataProperty(target, name, value) {\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value,\n });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\nexport var createMemoizedNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n}, {\n strategy: strategies.variadic,\n});\nexport var createMemoizedDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n}, {\n strategy: strategies.variadic,\n});\nexport var createMemoizedPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n}, {\n strategy: strategies.variadic,\n});\nexport var createMemoizedLocale = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.Locale).bind.apply(_a, __spreadArray([void 0], args, false)))();\n}, {\n strategy: strategies.variadic,\n});\nexport var createMemoizedListFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.ListFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n}, {\n strategy: strategies.variadic,\n});\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `<bold!>foo</bold!>) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo</123>`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `<bold>foo</italic>`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `<bold>foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: milliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n case 'rounding-mode-floor':\n result.roundingMode = 'floor';\n continue;\n case 'rounding-mode-ceiling':\n result.roundingMode = 'ceil';\n continue;\n case 'rounding-mode-down':\n result.roundingMode = 'trunc';\n continue;\n case 'rounding-mode-up':\n result.roundingMode = 'expand';\n continue;\n case 'rounding-mode-half-even':\n result.roundingMode = 'halfEven';\n continue;\n case 'rounding-mode-half-down':\n result.roundingMode = 'halfTrunc';\n continue;\n case 'rounding-mode-half-up':\n result.roundingMode = 'halfExpand';\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore \nexport var timeData = {\n \"001\": [\n \"H\",\n \"h\"\n ],\n \"419\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AD\": [\n \"H\",\n \"hB\"\n ],\n \"AE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"AF\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"AG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AL\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"AM\": [\n \"H\",\n \"hB\"\n ],\n \"AO\": [\n \"H\",\n \"hB\"\n ],\n \"AR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AS\": [\n \"h\",\n \"H\"\n ],\n \"AT\": [\n \"H\",\n \"hB\"\n ],\n \"AU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AW\": [\n \"H\",\n \"hB\"\n ],\n \"AX\": [\n \"H\"\n ],\n \"AZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BD\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"BE\": [\n \"H\",\n \"hB\"\n ],\n \"BF\": [\n \"H\",\n \"hB\"\n ],\n \"BG\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"BI\": [\n \"H\",\n \"h\"\n ],\n \"BJ\": [\n \"H\",\n \"hB\"\n ],\n \"BL\": [\n \"H\",\n \"hB\"\n ],\n \"BM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BN\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"BO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"BQ\": [\n \"H\"\n ],\n \"BR\": [\n \"H\",\n \"hB\"\n ],\n \"BS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BT\": [\n \"h\",\n \"H\"\n ],\n \"BW\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BY\": [\n \"H\",\n \"h\"\n ],\n \"BZ\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CA\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"CC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CD\": [\n \"hB\",\n \"H\"\n ],\n \"CF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CG\": [\n \"H\",\n \"hB\"\n ],\n \"CH\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"CI\": [\n \"H\",\n \"hB\"\n ],\n \"CK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CL\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CN\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"CO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CP\": [\n \"H\"\n ],\n \"CR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CU\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CV\": [\n \"H\",\n \"hB\"\n ],\n \"CW\": [\n \"H\",\n \"hB\"\n ],\n \"CX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CY\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"CZ\": [\n \"H\"\n ],\n \"DE\": [\n \"H\",\n \"hB\"\n ],\n \"DG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"DJ\": [\n \"h\",\n \"H\"\n ],\n \"DK\": [\n \"H\"\n ],\n \"DM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"DO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"DZ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"EC\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"EE\": [\n \"H\",\n \"hB\"\n ],\n \"EG\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ER\": [\n \"h\",\n \"H\"\n ],\n \"ES\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"ET\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"FI\": [\n \"H\"\n ],\n \"FJ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"FM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FO\": [\n \"H\",\n \"h\"\n ],\n \"FR\": [\n \"H\",\n \"hB\"\n ],\n \"GA\": [\n \"H\",\n \"hB\"\n ],\n \"GB\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GD\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GE\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"GF\": [\n \"H\",\n \"hB\"\n ],\n \"GG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GH\": [\n \"h\",\n \"H\"\n ],\n \"GI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GL\": [\n \"H\",\n \"h\"\n ],\n \"GM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GN\": [\n \"H\",\n \"hB\"\n ],\n \"GP\": [\n \"H\",\n \"hB\"\n ],\n \"GQ\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"GR\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"GT\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"GU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GW\": [\n \"H\",\n \"hB\"\n ],\n \"GY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"HK\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"HN\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"HR\": [\n \"H\",\n \"hB\"\n ],\n \"HU\": [\n \"H\",\n \"h\"\n ],\n \"IC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ID\": [\n \"H\"\n ],\n \"IE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IL\": [\n \"H\",\n \"hB\"\n ],\n \"IM\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IN\": [\n \"h\",\n \"H\"\n ],\n \"IO\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IQ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"IR\": [\n \"hB\",\n \"H\"\n ],\n \"IS\": [\n \"H\"\n ],\n \"IT\": [\n \"H\",\n \"hB\"\n ],\n \"JE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"JM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"JO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"JP\": [\n \"H\",\n \"K\",\n \"h\"\n ],\n \"KE\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"KG\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KH\": [\n \"hB\",\n \"h\",\n \"H\",\n \"hb\"\n ],\n \"KI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KM\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KN\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KP\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KW\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"KY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KZ\": [\n \"H\",\n \"hB\"\n ],\n \"LA\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"LB\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LI\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"LK\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"LR\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LS\": [\n \"h\",\n \"H\"\n ],\n \"LT\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"LU\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"LV\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"LY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MC\": [\n \"H\",\n \"hB\"\n ],\n \"MD\": [\n \"H\",\n \"hB\"\n ],\n \"ME\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"MF\": [\n \"H\",\n \"hB\"\n ],\n \"MG\": [\n \"H\",\n \"h\"\n ],\n \"MH\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ML\": [\n \"H\"\n ],\n \"MM\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"MN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MP\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MQ\": [\n \"H\",\n \"hB\"\n ],\n \"MR\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MS\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MT\": [\n \"H\",\n \"h\"\n ],\n \"MU\": [\n \"H\",\n \"h\"\n ],\n \"MV\": [\n \"H\",\n \"h\"\n ],\n \"MW\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MX\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"MY\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"MZ\": [\n \"H\",\n \"hB\"\n ],\n \"NA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NC\": [\n \"H\",\n \"hB\"\n ],\n \"NE\": [\n \"H\"\n ],\n \"NF\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NI\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NL\": [\n \"H\",\n \"hB\"\n ],\n \"NO\": [\n \"H\",\n \"h\"\n ],\n \"NP\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"NR\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NU\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"OM\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"PG\": [\n \"h\",\n \"H\"\n ],\n \"PH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PK\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"PL\": [\n \"H\",\n \"h\"\n ],\n \"PM\": [\n \"H\",\n \"hB\"\n ],\n \"PN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"PR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PS\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PT\": [\n \"H\",\n \"hB\"\n ],\n \"PW\": [\n \"h\",\n \"H\"\n ],\n \"PY\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"QA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"RE\": [\n \"H\",\n \"hB\"\n ],\n \"RO\": [\n \"H\",\n \"hB\"\n ],\n \"RS\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"RU\": [\n \"H\"\n ],\n \"RW\": [\n \"H\",\n \"h\"\n ],\n \"SA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SC\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SD\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SE\": [\n \"H\"\n ],\n \"SG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SH\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SI\": [\n \"H\",\n \"hB\"\n ],\n \"SJ\": [\n \"H\"\n ],\n \"SK\": [\n \"H\"\n ],\n \"SL\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SN\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SO\": [\n \"h\",\n \"H\"\n ],\n \"SR\": [\n \"H\",\n \"hB\"\n ],\n \"SS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ST\": [\n \"H\",\n \"hB\"\n ],\n \"SV\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"SX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"TC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TD\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"TF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"TG\": [\n \"H\",\n \"hB\"\n ],\n \"TH\": [\n \"H\",\n \"h\"\n ],\n \"TJ\": [\n \"H\",\n \"h\"\n ],\n \"TL\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"TM\": [\n \"H\",\n \"h\"\n ],\n \"TN\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"TO\": [\n \"h\",\n \"H\"\n ],\n \"TR\": [\n \"H\",\n \"hB\"\n ],\n \"TT\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TW\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"TZ\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UG\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"US\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"UY\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"UZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"VA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"VC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"VG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VN\": [\n \"H\",\n \"h\"\n ],\n \"VU\": [\n \"h\",\n \"H\"\n ],\n \"WF\": [\n \"H\",\n \"hB\"\n ],\n \"WS\": [\n \"h\",\n \"H\"\n ],\n \"XK\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"YE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"YT\": [\n \"H\",\n \"hB\"\n ],\n \"ZA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ZM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ZW\": [\n \"H\",\n \"h\"\n ],\n \"af-ZA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ar-001\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ca-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"en-001\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-HK\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-IL\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"en-MY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"es-BR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-ES\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-GQ\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"fr-CA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gl-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gu-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"hi-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"it-CH\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-IT\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"kn-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ml-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"mr-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"pa-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"ta-IN\": [\n \"hB\",\n \"h\",\n \"hb\",\n \"H\"\n ],\n \"te-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"zu-ZA\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ]\n};\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n var skeletonCopy = '';\n for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n var patternChar = skeleton.charAt(patternPos);\n if (patternChar === 'j') {\n var extraLength = 0;\n while (patternPos + 1 < skeleton.length &&\n skeleton.charAt(patternPos + 1) === patternChar) {\n extraLength++;\n patternPos++;\n }\n var hourLen = 1 + (extraLength & 1);\n var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n var dayPeriodChar = 'a';\n var hourChar = getDefaultHourSymbolFromLocale(locale);\n if (hourChar == 'H' || hourChar == 'k') {\n dayPeriodLen = 0;\n }\n while (dayPeriodLen-- > 0) {\n skeletonCopy += dayPeriodChar;\n }\n while (hourLen-- > 0) {\n skeletonCopy = hourChar + skeletonCopy;\n }\n }\n else if (patternChar === 'J') {\n skeletonCopy += 'H';\n }\n else {\n skeletonCopy += patternChar;\n }\n }\n return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n var hourCycle = locale.hourCycle;\n if (hourCycle === undefined &&\n // @ts-ignore hourCycle(s) is not identified yet\n locale.hourCycles &&\n // @ts-ignore\n locale.hourCycles.length) {\n // @ts-ignore\n hourCycle = locale.hourCycles[0];\n }\n if (hourCycle) {\n switch (hourCycle) {\n case 'h24':\n return 'k';\n case 'h23':\n return 'H';\n case 'h12':\n return 'h';\n case 'h11':\n return 'K';\n default:\n throw new Error('Invalid hourCycle');\n }\n }\n // TODO: Once hourCycle is fully supported remove the following with data generation\n var languageTag = locale.language;\n var regionTag;\n if (languageTag !== 'root') {\n regionTag = locale.maximize().region;\n }\n var hourCycles = timeData[regionTag || ''] ||\n timeData[languageTag || ''] ||\n timeData[\"\".concat(languageTag, \"-001\")] ||\n timeData['001'];\n return hourCycles[0];\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith && '_a'.startsWith('a', 1);\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.locale = options.locale;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"</\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('</')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var dateTimePattern = skeleton;\n // Get \"best match\" pattern only if locale is passed, if not, let it\n // pass as-is where `parseDateTimeSkeleton()` will throw an error\n // for unsupported patterns.\n if (this.locale) {\n dateTimePattern = getBestPattern(skeleton, this.locale);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: dateTimePattern,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(dateTimePattern)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n// only for testing\nexport var _Parser = Parser;\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : formats.time.medium;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { parse, } from '@formatjs/icu-messageformat-parser';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n var _this = this;\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () {\n var _a;\n return ({\n locale: ((_a = _this.resolvedLocale) === null || _a === void 0 ? void 0 : _a.toString()) ||\n Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n });\n };\n this.getAst = function () { return _this.ast; };\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n var _a = opts || {}, formatters = _a.formatters, parseOpts = __rest(_a, [\"formatters\"]);\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, __assign(__assign({}, parseOpts), { locale: this.resolvedLocale }));\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.resolveLocale = function (locales) {\n if (typeof Intl.Locale === 'undefined') {\n return;\n }\n var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n if (supportedLocales.length > 0) {\n return new Intl.Locale(supportedLocales[0]);\n }\n return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n };\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n __extends(IntlError, _super);\n function IntlError(code, message, exception) {\n var _this = this;\n var err = exception\n ? exception instanceof Error\n ? exception\n : new Error(String(exception))\n : undefined;\n _this = _super.call(this, \"[@formatjs/intl Error \".concat(code, \"] \").concat(message, \"\\n\").concat(err ? \"\\n\".concat(err.message, \"\\n\").concat(err.stack) : '')) || this;\n _this.code = code;\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (typeof Error.captureStackTrace === 'function') {\n // @ts-ignore just so we don't need to declare dep on @types/node\n Error.captureStackTrace(_this, IntlError);\n }\n return _this;\n }\n return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n }\n return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n }\n return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar IntlFormatError = /** @class */ (function (_super) {\n __extends(IntlFormatError, _super);\n function IntlFormatError(message, locale, exception) {\n var _this = _super.call(this, IntlErrorCode.FORMAT_ERROR, \"\".concat(message, \"\\nLocale: \").concat(locale, \"\\n\"), exception) || this;\n _this.locale = locale;\n return _this;\n }\n return IntlFormatError;\n}(IntlError));\nexport { IntlFormatError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, \"\".concat(message, \"\\nMessageID: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, \"\\nDefault Message: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage, \"\\nDescription: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.description, \"\\n\"), locale, exception) || this;\n _this.descriptor = descriptor;\n _this.locale = locale;\n return _this;\n }\n return MessageFormatError;\n}(IntlFormatError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\".concat(descriptor.id, \"\\\" for locale \\\"\").concat(locale, \"\\\", using \").concat(descriptor.defaultMessage\n ? \"default message (\".concat(typeof descriptor.defaultMessage === 'string'\n ? descriptor.defaultMessage\n : descriptor.defaultMessage\n .map(function (e) { var _a; return (_a = e.value) !== null && _a !== void 0 ? _a : JSON.stringify(e); })\n .join(), \")\")\n : 'id', \" as fallback.\")) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","import { __assign, __spreadArray } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, allowlist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return allowlist.reduce(function (filtered, name) {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nvar defaultErrorHandler = function (error) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nvar defaultWarnHandler = function (warning) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n};\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n fallbackOnEmptyString: true,\n onError: defaultErrorHandler,\n onWarn: defaultWarnHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n });\n var getNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n });\n var getPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules,\n } }, (opts || {})));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: strategies.variadic,\n }),\n getRelativeTimeFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: strategies.variadic,\n }),\n getDisplayNames: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: strategies.variadic,\n }),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \".concat(type, \" format named: \").concat(name)));\n}\n","import { __assign } from \"tslib\";\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { IntlMessageFormat, } from 'intl-messageformat';\nimport { MissingTranslationError, MessageFormatError } from './error';\nimport { TYPE } from '@formatjs/icu-messageformat-parser';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce(function (all, k) {\n all[k] = __assign({ timeZone: timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n var keys = Object.keys(__assign(__assign({}, opts1), opts2));\n return keys.reduce(function (all, k) {\n all[k] = __assign(__assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n var mfFormats = IntlMessageFormat.formats;\n return __assign(__assign(__assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport var formatMessage = function (_a, state, messageDescriptor, values, opts) {\n var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, fallbackOnEmptyString = _a.fallbackOnEmptyString, onError = _a.onError, timeZone = _a.timeZone, defaultRichTextElements = _a.defaultRichTextElements;\n if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }\n var msgId = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;\n // `id` is a required field of a Message Descriptor.\n invariant(!!msgId, \"[@formatjs/intl] An `id` must be provided to format a message. You can either:\\n1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin)\\nor [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR\\n2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id)\\nto autofix this issue\");\n var id = String(msgId);\n var message = \n // In case messages is Object.create(null)\n // e.g import('foo.json') from webpack)\n // See https://github.com/formatjs/formatjs/issues/1914\n messages &&\n Object.prototype.hasOwnProperty.call(messages, id) &&\n messages[id];\n // IMPORTANT: Hot path if `message` is AST with a single literal node\n if (Array.isArray(message) &&\n message.length === 1 &&\n message[0].type === TYPE.literal) {\n return message[0].value;\n }\n // IMPORTANT: Hot path straight lookup for performance\n if (!values &&\n message &&\n typeof message === 'string' &&\n !defaultRichTextElements) {\n return message.replace(/'\\{(.*?)\\}'/gi, \"{$1}\");\n }\n values = __assign(__assign({}, defaultRichTextElements), (values || {}));\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n if (!message) {\n if (fallbackOnEmptyString === false && message === '') {\n return message;\n }\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale.\n onError(new MissingTranslationError(messageDescriptor, locale));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting default message for: \\\"\".concat(id, \"\\\", rendering default message verbatim\"), locale, messageDescriptor, e));\n return typeof defaultMessage === 'string' ? defaultMessage : id;\n }\n }\n return id;\n }\n // We have the translated message\n try {\n var formatter = state.getMessageFormat(message, locale, formats, __assign({ formatters: state }, (opts || {})));\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting message: \\\"\".concat(id, \"\\\", using \").concat(defaultMessage ? 'default message' : 'id', \" as fallback.\"), locale, messageDescriptor, e));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting the default message for: \\\"\".concat(id, \"\\\", rendering message verbatim\"), locale, messageDescriptor, e));\n }\n }\n if (typeof message === 'string') {\n return message;\n }\n if (typeof defaultMessage === 'string') {\n return defaultMessage;\n }\n return id;\n};\n","import { __assign } from \"tslib\";\nimport { filterProps, getNamedFormat } from './utils';\nimport { IntlFormatError } from './error';\nvar DATE_TIME_FORMAT_OPTIONS = [\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'hourCycle',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n // 'dayPeriod',\n 'numberingSystem',\n 'fractionalSecondDigits',\n];\nexport function getFormatter(_a, type, getDateTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError, timeZone = _a.timeZone;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second &&\n !filteredOptions.timeStyle &&\n !filteredOptions.dateStyle) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = __assign(__assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting date.', config.locale, e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting time.', config.locale, e));\n }\n return String(date);\n}\nexport function formatDateTimeRange(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var from = _a[0], to = _a[1], _b = _a[2], options = _b === void 0 ? {} : _b;\n var timeZone = config.timeZone, locale = config.locale, onError = config.onError;\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, timeZone ? { timeZone: timeZone } : {});\n try {\n return getDateTimeFormat(locale, filteredOptions).formatRange(from, to);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting date time range.', config.locale, e));\n }\n return String(from);\n}\nexport function formatDateToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting date.', config.locale, e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting time.', config.locale, e));\n }\n return [];\n}\n","import { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar DISPLAY_NAMES_OPTONS = [\n 'style',\n 'type',\n 'fallback',\n 'languageDisplay',\n];\nexport function formatDisplayName(_a, getDisplayNames, value, options) {\n var locale = _a.locale, onError = _a.onError;\n var DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(new FormatError(\"Intl.DisplayNames is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-displaynames\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting display name.', locale, e));\n }\n}\n","import { __assign } from \"tslib\";\nimport { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar LIST_FORMAT_OPTIONS = [\n 'type',\n 'style',\n];\nvar now = Date.now();\nfunction generateToken(i) {\n return \"\".concat(now, \"_\").concat(i, \"_\").concat(now);\n}\nexport function formatList(opts, getListFormat, values, options) {\n if (options === void 0) { options = {}; }\n var results = formatListToParts(opts, getListFormat, values, options).reduce(function (all, el) {\n var val = el.value;\n if (typeof val !== 'string') {\n all.push(val);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n return results.length === 1 ? results[0] : results.length === 0 ? '' : results;\n}\nexport function formatListToParts(_a, getListFormat, values, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n var richValues_1 = {};\n var serializedValues = values.map(function (v, i) {\n if (typeof v === 'object') {\n var id = generateToken(i);\n richValues_1[id] = v;\n return id;\n }\n return String(v);\n });\n return getListFormat(locale, filteredOptions)\n .formatToParts(serializedValues)\n .map(function (part) {\n return part.type === 'literal'\n ? part\n : __assign(__assign({}, part), { value: richValues_1[part.value] || part.value });\n });\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting list.', locale, e));\n }\n // @ts-ignore\n return values;\n}\n","import { filterProps } from './utils';\nimport { IntlFormatError } from './error';\nimport { ErrorCode, FormatError } from 'intl-messageformat';\nvar PLURAL_FORMAT_OPTIONS = ['type'];\nexport function formatPlural(_a, getPluralRules, value, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n if (!Intl.PluralRules) {\n onError(new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting plural.', locale, e));\n }\n return 'other';\n}\n","import { getNamedFormat, filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar RELATIVE_TIME_FORMAT_OPTIONS = ['numeric', 'style'];\nfunction getFormatter(_a, getRelativeTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n var filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options) {\n if (options === void 0) { options = {}; }\n if (!unit) {\n unit = 'second';\n }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(new FormatError(\"Intl.RelativeTimeFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-relativetimeformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting relative time.', config.locale, e));\n }\n return String(value);\n}\n","import { IntlFormatError } from './error';\nimport { filterProps, getNamedFormat } from './utils';\nvar NUMBER_FORMAT_OPTIONS = [\n 'style',\n 'currency',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // ES2020 NumberFormat\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'numberingSystem',\n // ES2023 NumberFormat\n 'trailingZeroDisplay',\n 'roundingPriority',\n 'roundingIncrement',\n 'roundingMode',\n];\nexport function getFormatter(_a, getNumberFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting number.', config.locale, e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting number.', config.locale, e));\n }\n return [];\n}\n","import { __assign } from \"tslib\";\nimport { createFormatters, DEFAULT_INTL_CONFIG } from './utils';\nimport { InvalidConfigError, MissingDataError } from './error';\nimport { formatNumber, formatNumberToParts } from './number';\nimport { formatRelativeTime } from './relativeTime';\nimport { formatDate, formatDateToParts, formatTime, formatTimeToParts, formatDateTimeRange, } from './dateTime';\nimport { formatPlural } from './plural';\nimport { formatMessage } from './message';\nimport { formatList, formatListToParts } from './list';\nimport { formatDisplayName } from './displayName';\nfunction messagesContainString(messages) {\n var firstMessage = messages ? messages[Object.keys(messages)[0]] : undefined;\n return typeof firstMessage === 'string';\n}\nfunction verifyConfigMessages(config) {\n if (config.onWarn &&\n config.defaultRichTextElements &&\n messagesContainString(config.messages || {})) {\n config.onWarn(\"[@formatjs/intl] \\\"defaultRichTextElements\\\" was specified but \\\"message\\\" was not pre-compiled. \\nPlease consider using \\\"@formatjs/cli\\\" to pre-compile your messages for performance.\\nFor more details see https://formatjs.io/docs/getting-started/message-distribution\");\n }\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n var formatters = createFormatters(cache);\n var resolvedConfig = __assign(__assign({}, DEFAULT_INTL_CONFIG), config);\n var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;\n if (!locale) {\n if (onError) {\n onError(new InvalidConfigError(\"\\\"locale\\\" was not configured, using \\\"\".concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details\")));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.NumberFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.DateTimeFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n verifyConfigMessages(resolvedConfig);\n return __assign(__assign({}, resolvedConfig), { formatters: formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), \n // @ts-expect-error TODO: will get to this later\n formatMessage: formatMessage.bind(null, resolvedConfig, formatters), \n // @ts-expect-error TODO: will get to this later\n $t: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG } from '@formatjs/intl';\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n '<IntlProvider> needs to exist in the component ancestry.');\n}\nexport var DEFAULT_INTL_CONFIG = __assign(__assign({}, CORE_DEFAULT_INTL_CONFIG), { textComponent: React.Fragment });\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n return function (parts) {\n // eslint-disable-next-line prefer-rest-params\n return formatXMLElementFn(React.Children.toArray(parts));\n };\n}\nexport function shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key] ||\n !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import { __assign } from \"tslib\";\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// This is primarily dealing with packaging systems where multiple copies of react-intl\n// might exist\nvar IntlContext = typeof window !== 'undefined' && !window.__REACT_INTL_BYPASS_GLOBAL_CONTEXT__\n ? window.__REACT_INTL_CONTEXT__ ||\n (window.__REACT_INTL_CONTEXT__ = React.createContext(null))\n : React.createContext(null);\nvar IntlConsumer = IntlContext.Consumer, IntlProvider = IntlContext.Provider;\nexport var Provider = IntlProvider;\nexport var Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n var _a = options || {}, _b = _a.intlPropName, intlPropName = _b === void 0 ? 'intl' : _b, _c = _a.forwardRef, forwardRef = _c === void 0 ? false : _c, _d = _a.enforceContext, enforceContext = _d === void 0 ? true : _d;\n var WithIntl = function (props) { return (React.createElement(IntlConsumer, null, function (intl) {\n var _a;\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n var intlProp = (_a = {}, _a[intlPropName] = intl, _a);\n return (React.createElement(WrappedComponent, __assign({}, props, intlProp, { ref: forwardRef ? props.forwardedRef : null })));\n })); };\n WithIntl.displayName = \"injectIntl(\".concat(getDisplayName(WrappedComponent), \")\");\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(\n // @ts-expect-error\n React.forwardRef(function (props, ref) { return (React.createElement(WithIntl, __assign({}, props, { forwardedRef: ref }))); }), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","import * as React from 'react';\nimport { invariantIntlContext } from '../utils';\nimport { Context } from './injectIntl';\nexport default function useIntl() {\n var intl = React.useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport useIntl from './useIntl';\nvar DisplayName;\n(function (DisplayName) {\n DisplayName[\"formatDate\"] = \"FormattedDate\";\n DisplayName[\"formatTime\"] = \"FormattedTime\";\n DisplayName[\"formatNumber\"] = \"FormattedNumber\";\n DisplayName[\"formatList\"] = \"FormattedList\";\n // Note that this DisplayName is the locale display name, not to be confused with\n // the name of the enum, which is for React component display name in dev tools.\n DisplayName[\"formatDisplayName\"] = \"FormattedDisplayName\";\n})(DisplayName || (DisplayName = {}));\nvar DisplayNameParts;\n(function (DisplayNameParts) {\n DisplayNameParts[\"formatDate\"] = \"FormattedDateParts\";\n DisplayNameParts[\"formatTime\"] = \"FormattedTimeParts\";\n DisplayNameParts[\"formatNumber\"] = \"FormattedNumberParts\";\n DisplayNameParts[\"formatList\"] = \"FormattedListParts\";\n})(DisplayNameParts || (DisplayNameParts = {}));\nexport var FormattedNumberParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatNumberToParts(value, formatProps));\n};\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport var FormattedListParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatListToParts(value, formatProps));\n};\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport function createFormattedDateTimePartsComponent(name) {\n var ComponentParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n var formattedParts = name === 'formatDate'\n ? intl.formatDateToParts(date, formatProps)\n : intl.formatTimeToParts(date, formatProps);\n return children(formattedParts);\n };\n ComponentParts.displayName = DisplayNameParts[name];\n return ComponentParts;\n}\nexport function createFormattedComponent(name) {\n var Component = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props\n // TODO: fix TS type definition for localeMatcher upstream\n , [\"value\", \"children\"]);\n // TODO: fix TS type definition for localeMatcher upstream\n var formattedValue = intl[name](value, formatProps);\n if (typeof children === 'function') {\n return children(formattedValue);\n }\n var Text = intl.textComponent || React.Fragment;\n return React.createElement(Text, null, formattedValue);\n };\n Component.displayName = DisplayName[name];\n return Component;\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { createIntl as coreCreateIntl, formatMessage as coreFormatMessage, } from '@formatjs/intl';\nimport * as React from 'react';\nimport { DEFAULT_INTL_CONFIG, assignUniqueKeysToParts } from '../utils';\nimport { isFormatXMLElementFn, } from 'intl-messageformat';\nfunction assignUniqueKeysToFormatXMLElementFnArgument(values) {\n if (!values) {\n return values;\n }\n return Object.keys(values).reduce(function (acc, k) {\n var v = values[k];\n acc[k] = isFormatXMLElementFn(v)\n ? assignUniqueKeysToParts(v)\n : v;\n return acc;\n }, {});\n}\nvar formatMessage = function (config, formatters, descriptor, rawValues) {\n var rest = [];\n for (var _i = 4; _i < arguments.length; _i++) {\n rest[_i - 4] = arguments[_i];\n }\n var values = assignUniqueKeysToFormatXMLElementFnArgument(rawValues);\n var chunks = coreFormatMessage.apply(void 0, __spreadArray([config,\n formatters,\n descriptor,\n values], rest, false));\n if (Array.isArray(chunks)) {\n return React.Children.toArray(chunks);\n }\n return chunks;\n};\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport var createIntl = function (_a, cache) {\n var rawDefaultRichTextElements = _a.defaultRichTextElements, config = __rest(_a, [\"defaultRichTextElements\"]);\n var defaultRichTextElements = assignUniqueKeysToFormatXMLElementFnArgument(rawDefaultRichTextElements);\n var coreIntl = coreCreateIntl(__assign(__assign(__assign({}, DEFAULT_INTL_CONFIG), config), { defaultRichTextElements: defaultRichTextElements }), cache);\n var resolvedConfig = {\n locale: coreIntl.locale,\n timeZone: coreIntl.timeZone,\n fallbackOnEmptyString: coreIntl.fallbackOnEmptyString,\n formats: coreIntl.formats,\n defaultLocale: coreIntl.defaultLocale,\n defaultFormats: coreIntl.defaultFormats,\n messages: coreIntl.messages,\n onError: coreIntl.onError,\n defaultRichTextElements: defaultRichTextElements,\n };\n return __assign(__assign({}, coreIntl), { formatMessage: formatMessage.bind(null, resolvedConfig, \n // @ts-expect-error fix this\n coreIntl.formatters), \n // @ts-expect-error fix this\n $t: formatMessage.bind(null, resolvedConfig, coreIntl.formatters) });\n};\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __extends } from \"tslib\";\nimport { createIntlCache } from '@formatjs/intl';\nimport * as React from 'react';\nimport { DEFAULT_INTL_CONFIG, invariantIntlContext, shallowEqual } from '../utils';\nimport { Provider } from './injectIntl';\nimport { createIntl } from './createIntl';\nfunction processIntlConfig(config) {\n return {\n locale: config.locale,\n timeZone: config.timeZone,\n fallbackOnEmptyString: config.fallbackOnEmptyString,\n formats: config.formats,\n textComponent: config.textComponent,\n messages: config.messages,\n defaultLocale: config.defaultLocale,\n defaultFormats: config.defaultFormats,\n onError: config.onError,\n onWarn: config.onWarn,\n wrapRichTextChunksInFragment: config.wrapRichTextChunksInFragment,\n defaultRichTextElements: config.defaultRichTextElements,\n };\n}\nvar IntlProvider = /** @class */ (function (_super) {\n __extends(IntlProvider, _super);\n function IntlProvider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cache = createIntlCache();\n _this.state = {\n cache: _this.cache,\n intl: createIntl(processIntlConfig(_this.props), _this.cache),\n prevConfig: processIntlConfig(_this.props),\n };\n return _this;\n }\n IntlProvider.getDerivedStateFromProps = function (props, _a) {\n var prevConfig = _a.prevConfig, cache = _a.cache;\n var config = processIntlConfig(props);\n if (!shallowEqual(prevConfig, config)) {\n return {\n intl: createIntl(config, cache),\n prevConfig: config,\n };\n }\n return null;\n };\n IntlProvider.prototype.render = function () {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n };\n IntlProvider.displayName = 'IntlProvider';\n IntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n return IntlProvider;\n}(React.PureComponent));\nexport default IntlProvider;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __rest } from \"tslib\";\nimport * as React from 'react';\nimport useIntl from './useIntl';\nimport { shallowEqual } from '../utils';\nfunction areEqual(prevProps, nextProps) {\n var values = prevProps.values, otherProps = __rest(prevProps, [\"values\"]);\n var nextValues = nextProps.values, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (shallowEqual(nextValues, values) &&\n shallowEqual(otherProps, nextOtherProps));\n}\nfunction FormattedMessage(props) {\n var intl = useIntl();\n var formatMessage = intl.formatMessage, _a = intl.textComponent, Text = _a === void 0 ? React.Fragment : _a;\n var id = props.id, description = props.description, defaultMessage = props.defaultMessage, values = props.values, children = props.children, _b = props.tagName, Component = _b === void 0 ? Text : _b, ignoreTag = props.ignoreTag;\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var nodes = formatMessage(descriptor, values, {\n ignoreTag: ignoreTag,\n });\n if (typeof children === 'function') {\n return children(Array.isArray(nodes) ? nodes : [nodes]);\n }\n if (Component) {\n return React.createElement(Component, null, React.Children.toArray(nodes));\n }\n return React.createElement(React.Fragment, null, nodes);\n}\nFormattedMessage.displayName = 'FormattedMessage';\nvar MemoizedFormattedMessage = React.memo(FormattedMessage, areEqual);\nMemoizedFormattedMessage.displayName = 'MemoizedFormattedMessage';\nexport default MemoizedFormattedMessage;\n","import { createFormattedComponent, createFormattedDateTimePartsComponent, } from './src/components/createFormattedComponent';\nimport injectIntl, { Provider as RawIntlProvider, Context as IntlContext, } from './src/components/injectIntl';\nimport useIntl from './src/components/useIntl';\nimport IntlProvider from './src/components/provider';\nimport { createIntl } from './src/components/createIntl';\nimport FormattedRelativeTime from './src/components/relative';\nimport FormattedPlural from './src/components/plural';\nimport FormattedMessage from './src/components/message';\nimport FormattedDateTimeRange from './src/components/dateTimeRange';\nexport { FormattedDateTimeRange, FormattedMessage, FormattedPlural, FormattedRelativeTime, IntlContext, IntlProvider, RawIntlProvider, createIntl, injectIntl, useIntl, };\nexport { createIntlCache, UnsupportedFormatterError, InvalidConfigError, MissingDataError, MessageFormatError, MissingTranslationError, IntlErrorCode as ReactIntlErrorCode, IntlError as ReactIntlError, } from '@formatjs/intl';\nexport function defineMessages(msgs) {\n return msgs;\n}\nexport function defineMessage(msg) {\n return msg;\n}\n// IMPORTANT: Explicit here to prevent api-extractor from outputing `import('./src/types').CustomFormatConfig`\nexport var FormattedDate = createFormattedComponent('formatDate');\nexport var FormattedTime = createFormattedComponent('formatTime');\nexport var FormattedNumber = createFormattedComponent('formatNumber');\nexport var FormattedList = createFormattedComponent('formatList');\nexport var FormattedDisplayName = createFormattedComponent('formatDisplayName');\nexport var FormattedDateParts = createFormattedDateTimePartsComponent('formatDate');\nexport var FormattedTimeParts = createFormattedDateTimePartsComponent('formatTime');\nexport { FormattedNumberParts, FormattedListParts, } from './src/components/createFormattedComponent';\n","import { Locale } from '@/types'\nimport messagesDE from 'intl/messages/messages.de.json'\nimport messagesEN from 'intl/messages/messages.en.json'\nimport messagesES from 'intl/messages/messages.es.json'\nimport messagesFR from 'intl/messages/messages.fr.json'\nimport messagesIT from 'intl/messages/messages.it.json'\nimport messagesNL from 'intl/messages/messages.nl.json'\nimport messagesPT from 'intl/messages/messages.pt.json'\n\nexport const getTranslationsByLocale = (locale: Locale): Record<string, string> => {\n // A CMS plugin can add LCID format like : 'fr-FR' instead of 'fr'.\n // Instead of specifying all possibilities we just remove the last part of the string.\n const merchantLocale = locale.slice(0, 2)\n switch (merchantLocale) {\n case Locale.fr:\n return messagesFR\n case Locale.es:\n return messagesES\n case Locale.it:\n return messagesIT\n case Locale.de:\n return messagesDE\n case Locale.pt:\n return messagesPT\n case Locale.nl:\n return messagesNL\n case Locale.en:\n default:\n return messagesEN\n }\n}\n","import React, { FC, ReactNode } from 'react'\n\nimport { IntlProvider } from 'react-intl'\n\nimport { Locale } from '@/types'\nimport { getTranslationsByLocale } from 'intl/utils'\n\ntype Props = { children: ReactNode; locale: Locale }\n\nconst Provider: FC<Props> = ({ children, locale }) => (\n <IntlProvider messages={getTranslationsByLocale(locale)} locale={locale} defaultLocale=\"en\">\n {children}\n </IntlProvider>\n)\n\nexport default Provider\n","/* eslint-disable */\n// Function to hash a string\n// https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript\nexport const hashStringForStorage = (str: string): string =>\n str\n // The input string is split into an array of characters.\n .split('')\n // The reduce function is used to apply a function against an accumulator and each element in the array (from left to right) to reduce it to a single output value.\n .reduce(\n (a, b) =>\n // The accumulator (a) is shifted left by 5 bits (multiplied by 32), then subtracted by itself and added to the ASCII value of the current character (b).\n // The bitwise OR operation with 0 is used to ensure the result is a 32-bit integer.\n // eslint-disable-next-line no-bitwise\n ((a << 5) - a + b.charCodeAt(0)) | 0,\n 0,\n ) // The initial value of the accumulator is 0.\n .toString() // The result is then converted to a string.\n .replace('-', 'A') // If the hash is negative (which is represented by a leading '-'), it's replaced with 'A' to ensure the hash is alphanumeric.\n\nexport const isMoreThanOneHourAgo = (date: number): boolean => {\n const ONE_HOUR_IN_MILLISECONDS = 1000 * 60 * 60\n const currentTime = Date.now()\n const difference = currentTime - date\n\n return difference >= ONE_HOUR_IN_MILLISECONDS\n}\n","import { ConfigPlan, EligibilityPlan } from '@/types'\nimport { hashStringForStorage } from 'utils/utilsForStorage'\n\ntype CreateKeyType = {\n purchaseAmount: number\n plans?: ConfigPlan[]\n customerBillingCountry?: string\n customerShippingCountry?: string\n domain?: string\n merchantId?: string\n}\n\ntype StorageType = {\n value: EligibilityPlan[]\n timestamp: number\n}\n\ntype UseSessionStorageType = {\n getCache: (key: string) => StorageType | null\n setCache: (key: string, value: EligibilityPlan[]) => void\n clearCache: () => void\n deleteCache: (key: string) => void\n createKey: (params: CreateKeyType) => string\n}\n\nexport const useSessionStorage: () => UseSessionStorageType = () => {\n const setCache = (key: string, value: EligibilityPlan[]) => {\n // Save data to sessionStorage and create timestamp\n const timestamp = Date.now()\n sessionStorage.setItem(key, JSON.stringify({ value, timestamp }))\n }\n\n const getCache = (key: string): StorageType | null => {\n // Get saved data from sessionStorage\n const stringData = sessionStorage.getItem(key) || ''\n // Parse cached data to use it directly as an array of EligibilityPlan\n return stringData ? JSON.parse(stringData) : null\n }\n\n const deleteCache = (key: string) => {\n // Remove saved data from sessionStorage\n sessionStorage.removeItem(key)\n }\n\n const clearCache = () => {\n // Remove all saved data from sessionStorage\n sessionStorage.clear()\n }\n\n const createKey = (params: CreateKeyType): string => {\n const {\n purchaseAmount,\n plans,\n customerBillingCountry,\n customerShippingCountry,\n domain,\n merchantId,\n } = params\n\n const stringAmount = purchaseAmount.toString()\n const stringPlans = JSON.stringify(plans)\n // Using build version into the key to invalidate cache when the widget is updated\n const buildVersion = process.env.BUILD_VERSION ?? 'local-build'\n return hashStringForStorage(\n `${domain}${merchantId}${stringAmount}${stringPlans}${customerBillingCountry}${customerShippingCountry}${buildVersion}`,\n )\n }\n\n return {\n setCache,\n getCache,\n clearCache,\n deleteCache,\n createKey,\n }\n}\n","import { EligibilityPlan, ErrorResponse } from '@/types'\n\nexport async function fetchFromApi(\n data: { [key: string]: unknown },\n headers?: { [key: string]: unknown },\n url = '',\n): Promise<EligibilityPlan[] | ErrorResponse> {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n cache: 'force-cache',\n body: JSON.stringify(data),\n })\n return response.json()\n}\n","import { ConfigPlan, EligibilityPlan, EligibilityPlanToDisplay } from '@/types'\n\nconst isPlanEligible = (plan: EligibilityPlan, configPlan?: ConfigPlan) => {\n if (!plan.eligible) {\n return false\n }\n return configPlan\n ? plan.purchase_amount >= configPlan?.minAmount && plan.purchase_amount <= configPlan?.maxAmount\n : false\n}\n\nconst getPaymentPlanBoundaries = (plan: EligibilityPlan, configPlan?: ConfigPlan) => {\n // When the plan is not eligible, the purchase amount constraints is given from the merchant config\n const purchaseAmountConstraints = plan.constraints?.purchase_amount\n if (purchaseAmountConstraints && configPlan) {\n return {\n minAmount: Math.max(configPlan.minAmount, purchaseAmountConstraints?.minimum),\n maxAmount: Math.min(configPlan.maxAmount, purchaseAmountConstraints?.maximum),\n }\n }\n return configPlan ?? {}\n}\n\nconst filterEligibility = (\n eligibilities: EligibilityPlan[],\n configPlans?: ConfigPlan[],\n): EligibilityPlanToDisplay[] => {\n // Remove P1X if no configuration is provided\n if (!configPlans) {\n return eligibilities.filter(\n (plan) =>\n !(plan.installments_count === 1 && plan.deferred_days === 0 && plan.deferred_months === 0),\n )\n }\n\n // Else check if the plan is eligible regarding the related configPlan\n return eligibilities.map((plan) => {\n const eligibilityDeferredDays =\n (plan.deferred_months ? plan.deferred_months : 0) * 30 +\n (plan.deferred_days ? plan.deferred_days : 0)\n\n // find the related configPlan\n const relatedConfigPlan = configPlans.find((configPlan) => {\n const configPlanDeferredDays =\n (configPlan.deferredMonths ? configPlan.deferredMonths : 0) * 30 +\n (configPlan.deferredDays ? configPlan.deferredDays : 0)\n return (\n plan.installments_count === configPlan.installmentsCount &&\n eligibilityDeferredDays === configPlanDeferredDays\n )\n })\n\n return {\n ...plan,\n eligible: isPlanEligible(plan, relatedConfigPlan),\n ...getPaymentPlanBoundaries(plan, relatedConfigPlan),\n }\n })\n}\n\nexport default filterEligibility\n","import { useEffect, useState } from 'react'\n\nimport { ApiConfig, ConfigPlan, EligibilityPlan, statusResponse } from '@/types'\nimport { useSessionStorage } from 'hooks/useSessionStorage'\nimport { fetchFromApi } from 'utils/fetch'\nimport filterEligibility from 'utils/filterEligibility'\nimport { isMoreThanOneHourAgo } from 'utils/utilsForStorage'\n\nconst useFetchEligibility = (\n purchaseAmount: number,\n { domain, merchantId }: ApiConfig,\n plans?: ConfigPlan[],\n customerBillingCountry?: string,\n customerShippingCountry?: string,\n): [EligibilityPlan[], statusResponse] => {\n const [eligibility, setEligibility] = useState([] as EligibilityPlan[])\n const [status, setStatus] = useState(statusResponse.PENDING)\n\n // caching\n const { getCache, setCache, createKey, clearCache } = useSessionStorage()\n const key = createKey({\n purchaseAmount,\n plans,\n customerBillingCountry,\n customerShippingCountry,\n domain,\n merchantId,\n })\n const currentCache = getCache(key)?.value\n const lastCacheTimestamp = getCache(key)?.timestamp\n // If the stored date is more than an hour ago, we should invalidate the cache\n const shouldInvalidate = lastCacheTimestamp && isMoreThanOneHourAgo(lastCacheTimestamp)\n\n const configInstallments = plans?.map((plan) => ({\n installments_count: plan.installmentsCount,\n deferred_days: plan?.deferredDays,\n deferred_months: plan?.deferredMonths,\n }))\n useEffect(() => {\n if (status === statusResponse.PENDING) {\n let billingAddress = null\n if (customerBillingCountry) {\n billingAddress = {\n country: customerBillingCountry,\n }\n }\n\n let shippingAddress = null\n if (customerShippingCountry) {\n shippingAddress = {\n country: customerShippingCountry,\n }\n }\n if (currentCache && !shouldInvalidate) {\n setEligibility(currentCache)\n setStatus(statusResponse.SUCCESS)\n }\n if (shouldInvalidate) {\n // If we should invalidate, we clear all cache\n clearCache()\n }\n if (!currentCache) {\n // Fetch eligibility from API\n fetchFromApi(\n {\n purchase_amount: purchaseAmount,\n queries: configInstallments,\n billing_address: billingAddress,\n shipping_address: shippingAddress,\n },\n {\n Authorization: `Alma-Merchant-Auth ${merchantId}`,\n 'X-Alma-Agent': `Alma Widget/${process.env.BUILD_VERSION}`,\n },\n `${domain}/v2/payments/eligibility`,\n )\n .then((res) => {\n // If the response contains an error_code, we set the status to failed - for example if code is 403 unauthorized\n // When purchase amount & plans are not compatible, the API returns an error {\"running\": {\"message\": \"'purchase_amount'\"}} which does not contain the key `error_code`\n // And the widget keeps loading if we don't handle it, so we need to cover this case and returns a FAILED status\n if ('error_code' in res || 'errors' in res) {\n setStatus(statusResponse.FAILED)\n } else {\n setEligibility(res as EligibilityPlan[])\n setCache(key, res as EligibilityPlan[])\n setStatus(statusResponse.SUCCESS)\n }\n })\n .catch(() => {\n setStatus(statusResponse.FAILED)\n })\n }\n }\n }, [\n status,\n purchaseAmount,\n key,\n customerBillingCountry,\n customerShippingCountry,\n currentCache,\n shouldInvalidate,\n configInstallments,\n merchantId,\n domain,\n setCache,\n clearCache,\n ])\n return [filterEligibility(eligibility, plans), status]\n}\nexport default useFetchEligibility\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n'use strict';\n\nexports.match = matchQuery;\nexports.parse = parseQuery;\n\n// -----------------------------------------------------------------------------\n\nvar RE_MEDIA_QUERY = /(?:(only|not)?\\s*([^\\s\\(\\)]+)(?:\\s*and)?\\s*)?(.+)?/i,\n RE_MQ_EXPRESSION = /\\(\\s*([^\\s\\:\\)]+)\\s*(?:\\:\\s*([^\\s\\)]+))?\\s*\\)/,\n RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/,\n RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/,\n RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;\n\nfunction matchQuery(mediaQuery, values) {\n return parseQuery(mediaQuery).some(function (query) {\n var inverse = query.inverse;\n\n // Either the parsed or specified `type` is \"all\", or the types must be\n // equal for a match.\n var typeMatch = query.type === 'all' || values.type === query.type;\n\n // Quit early when `type` doesn't match, but take \"not\" into account.\n if ((typeMatch && inverse) || !(typeMatch || inverse)) {\n return false;\n }\n\n var expressionsMatch = query.expressions.every(function (expression) {\n var feature = expression.feature,\n modifier = expression.modifier,\n expValue = expression.value,\n value = values[feature];\n\n // Missing or falsy values don't match.\n if (!value) { return false; }\n\n switch (feature) {\n case 'orientation':\n case 'scan':\n return value.toLowerCase() === expValue.toLowerCase();\n\n case 'width':\n case 'height':\n case 'device-width':\n case 'device-height':\n expValue = toPx(expValue);\n value = toPx(value);\n break;\n\n case 'resolution':\n expValue = toDpi(expValue);\n value = toDpi(value);\n break;\n\n case 'aspect-ratio':\n case 'device-aspect-ratio':\n case /* Deprecated */ 'device-pixel-ratio':\n expValue = toDecimal(expValue);\n value = toDecimal(value);\n break;\n\n case 'grid':\n case 'color':\n case 'color-index':\n case 'monochrome':\n expValue = parseInt(expValue, 10) || 1;\n value = parseInt(value, 10) || 0;\n break;\n }\n\n switch (modifier) {\n case 'min': return value >= expValue;\n case 'max': return value <= expValue;\n default : return value === expValue;\n }\n });\n\n return (expressionsMatch && !inverse) || (!expressionsMatch && inverse);\n });\n}\n\nfunction parseQuery(mediaQuery) {\n return mediaQuery.split(',').map(function (query) {\n query = query.trim();\n\n var captures = query.match(RE_MEDIA_QUERY),\n modifier = captures[1],\n type = captures[2],\n expressions = captures[3] || '',\n parsed = {};\n\n parsed.inverse = !!modifier && modifier.toLowerCase() === 'not';\n parsed.type = type ? type.toLowerCase() : 'all';\n\n // Split expressions into a list.\n expressions = expressions.match(/\\([^\\)]+\\)/g) || [];\n\n parsed.expressions = expressions.map(function (expression) {\n var captures = expression.match(RE_MQ_EXPRESSION),\n feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n\n return {\n modifier: feature[1],\n feature : feature[2],\n value : captures[2]\n };\n });\n\n return parsed;\n });\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction toDecimal(ratio) {\n var decimal = Number(ratio),\n numbers;\n\n if (!decimal) {\n numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/);\n decimal = numbers[1] / numbers[2];\n }\n\n return decimal;\n}\n\nfunction toDpi(resolution) {\n var value = parseFloat(resolution),\n units = String(resolution).match(RE_RESOLUTION_UNIT)[1];\n\n switch (units) {\n case 'dpcm': return value / 2.54;\n case 'dppx': return value * 96;\n default : return value;\n }\n}\n\nfunction toPx(length) {\n var value = parseFloat(length),\n units = String(length).match(RE_LENGTH_UNIT)[1];\n\n switch (units) {\n case 'em' : return value * 16;\n case 'rem': return value * 16;\n case 'cm' : return value * 96 / 2.54;\n case 'mm' : return value * 96 / 2.54 / 10;\n case 'in' : return value * 96;\n case 'pt' : return value * 72;\n case 'pc' : return value * 72 / 12;\n default : return value;\n }\n}\n","'use strict';\n\nvar staticMatch = require('css-mediaquery').match;\nvar dynamicMatch = typeof window !== 'undefined' ? window.matchMedia : null;\n\n// our fake MediaQueryList\nfunction Mql(query, values, forceStatic){\n var self = this;\n var mql;\n\n // matchMedia will return null in FF when it's called in a hidden iframe\n // ref: https://stackoverflow.com/a/12330568\n if(dynamicMatch && !forceStatic) mql = dynamicMatch.call(window, query);\n\n if (mql) {\n this.matches = mql.matches;\n this.media = mql.media;\n // TODO: is there a time it makes sense to remove this listener?\n mql.addListener(update);\n } else {\n this.matches = staticMatch(query, values);\n this.media = query;\n }\n\n this.addListener = addListener;\n this.removeListener = removeListener;\n this.dispose = dispose;\n\n function addListener(listener){\n if(mql){\n mql.addListener(listener);\n }\n }\n\n function removeListener(listener){\n if(mql){\n mql.removeListener(listener);\n }\n }\n\n // update ourselves!\n function update(evt){\n self.matches = evt.matches;\n self.media = evt.media;\n }\n\n function dispose(){\n if(mql){\n mql.removeListener(update);\n }\n }\n}\n\nfunction matchMedia(query, values, forceStatic){\n return new Mql(query, values, forceStatic);\n}\n\nmodule.exports = matchMedia;\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","function shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n if (!arrA || !arrB) {\n return false;\n }\n const len = arrA.length;\n if (arrB.length !== len) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n const aKeys = Object.keys(objA);\n const bKeys = Object.keys(objB);\n const len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n const key = aKeys[i];\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction shallowEqual(a, b) {\n const aIsArr = Array.isArray(a);\n const bIsArr = Array.isArray(b);\n if (aIsArr !== bIsArr) {\n return false;\n }\n if (aIsArr && bIsArr) {\n return shallowEqualArrays(a, b);\n }\n return shallowEqualObjects(a, b);\n}\n\nexport { shallowEqual, shallowEqualArrays, shallowEqualObjects };\n//# sourceMappingURL=index.modern.mjs.map\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import { createContext, useRef, useEffect, useContext, useState } from 'react';\nimport matchMedia from 'matchmediaquery';\nimport hyphenate from 'hyphenate-style-name';\nimport { shallowEqualObjects } from 'shallow-equal';\nimport PropTypes from 'prop-types';\n\nconst stringOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.number]);\n// media types\nconst types = {\n all: PropTypes.bool,\n grid: PropTypes.bool,\n aural: PropTypes.bool,\n braille: PropTypes.bool,\n handheld: PropTypes.bool,\n print: PropTypes.bool,\n projection: PropTypes.bool,\n screen: PropTypes.bool,\n tty: PropTypes.bool,\n tv: PropTypes.bool,\n embossed: PropTypes.bool\n};\n// properties that match media queries\nconst matchers = {\n orientation: PropTypes.oneOf(['portrait', 'landscape']),\n scan: PropTypes.oneOf(['progressive', 'interlace']),\n aspectRatio: PropTypes.string,\n deviceAspectRatio: PropTypes.string,\n height: stringOrNumber,\n deviceHeight: stringOrNumber,\n width: stringOrNumber,\n deviceWidth: stringOrNumber,\n color: PropTypes.bool,\n colorIndex: PropTypes.bool,\n monochrome: PropTypes.bool,\n resolution: stringOrNumber,\n type: Object.keys(types)\n};\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst { type, ...featureMatchers } = matchers;\n// media features\nconst features = {\n minAspectRatio: PropTypes.string,\n maxAspectRatio: PropTypes.string,\n minDeviceAspectRatio: PropTypes.string,\n maxDeviceAspectRatio: PropTypes.string,\n minHeight: stringOrNumber,\n maxHeight: stringOrNumber,\n minDeviceHeight: stringOrNumber,\n maxDeviceHeight: stringOrNumber,\n minWidth: stringOrNumber,\n maxWidth: stringOrNumber,\n minDeviceWidth: stringOrNumber,\n maxDeviceWidth: stringOrNumber,\n minColor: PropTypes.number,\n maxColor: PropTypes.number,\n minColorIndex: PropTypes.number,\n maxColorIndex: PropTypes.number,\n minMonochrome: PropTypes.number,\n maxMonochrome: PropTypes.number,\n minResolution: stringOrNumber,\n maxResolution: stringOrNumber,\n ...featureMatchers\n};\nconst all = { ...types, ...features };\nvar mq = {\n all: all,\n types: types,\n matchers: matchers,\n features: features\n};\n\nconst negate = (cond) => `not ${cond}`;\nconst keyVal = (k, v) => {\n const realKey = hyphenate(k);\n // px shorthand\n if (typeof v === 'number') {\n v = `${v}px`;\n }\n if (v === true) {\n return realKey;\n }\n if (v === false) {\n return negate(realKey);\n }\n return `(${realKey}: ${v})`;\n};\nconst join = (conds) => conds.join(' and ');\nconst toQuery = (obj) => {\n const rules = [];\n Object.keys(mq.all).forEach((k) => {\n const v = obj[k];\n if (v != null) {\n rules.push(keyVal(k, v));\n }\n });\n return join(rules);\n};\n\nconst Context = createContext(undefined);\n\nconst makeQuery = (settings) => settings.query || toQuery(settings);\nconst hyphenateKeys = (obj) => {\n if (!obj)\n return undefined;\n const keys = Object.keys(obj);\n return keys.reduce((result, key) => {\n result[hyphenate(key)] = obj[key];\n return result;\n }, {});\n};\nconst useIsUpdate = () => {\n const ref = useRef(false);\n useEffect(() => {\n ref.current = true;\n }, []);\n return ref.current;\n};\nconst useDevice = (deviceFromProps) => {\n const deviceFromContext = useContext(Context);\n const getDevice = () => hyphenateKeys(deviceFromProps) || hyphenateKeys(deviceFromContext);\n const [device, setDevice] = useState(getDevice);\n useEffect(() => {\n const newDevice = getDevice();\n if (!shallowEqualObjects(device, newDevice)) {\n setDevice(newDevice);\n }\n }, [deviceFromProps, deviceFromContext]);\n return device;\n};\nconst useQuery = (settings) => {\n const getQuery = () => makeQuery(settings);\n const [query, setQuery] = useState(getQuery);\n useEffect(() => {\n const newQuery = getQuery();\n if (query !== newQuery) {\n setQuery(newQuery);\n }\n }, [settings]);\n return query;\n};\nconst useMatchMedia = (query, device) => {\n const getMatchMedia = () => matchMedia(query, device || {}, !!device);\n const [mq, setMq] = useState(getMatchMedia);\n const isUpdate = useIsUpdate();\n useEffect(() => {\n if (isUpdate) {\n // skip on mounting, it has already been set\n const newMq = getMatchMedia();\n setMq(newMq);\n return () => {\n if (newMq) {\n newMq.dispose();\n }\n };\n }\n }, [query, device]);\n return mq;\n};\nconst useMatches = (mediaQuery) => {\n const [matches, setMatches] = useState(mediaQuery.matches);\n useEffect(() => {\n const updateMatches = (ev) => {\n setMatches(ev.matches);\n };\n mediaQuery.addListener(updateMatches);\n setMatches(mediaQuery.matches);\n return () => {\n mediaQuery.removeListener(updateMatches);\n };\n }, [mediaQuery]);\n return matches;\n};\nconst useMediaQuery = (settings, device, onChange) => {\n const deviceSettings = useDevice(device);\n const query = useQuery(settings);\n if (!query)\n throw new Error('Invalid or missing MediaQuery!');\n const mq = useMatchMedia(query, deviceSettings);\n const matches = useMatches(mq);\n const isUpdate = useIsUpdate();\n useEffect(() => {\n if (isUpdate && onChange) {\n onChange(matches);\n }\n }, [matches]);\n useEffect(() => () => {\n if (mq) {\n mq.dispose();\n }\n }, []);\n return matches;\n};\n\n// ReactNode and ReactElement typings are a little funky for functional components, so the ReactElement cast is needed on the return\nconst MediaQuery = ({ children, device, onChange, ...settings }) => {\n const matches = useMediaQuery(settings, device, onChange);\n if (typeof children === 'function') {\n return children(matches);\n }\n return matches ? children : null;\n};\n\nexport { Context, MediaQuery as default, toQuery, useMediaQuery };\n//# sourceMappingURL=index.js.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React, { FunctionComponent } from 'react'\n\nimport cx from 'classnames'\n\nimport s from 'components/LoadingIndicator/LoadingIndicator.module.css'\n\nexport const LoadingIndicator: FunctionComponent<{ className?: string }> = ({ className }) => (\n <div className={cx(s.loadingIndicator, className)} data-testid=\"loader\">\n <svg\n width=\"120\"\n height=\"134\"\n viewBox=\"0 0 120 134\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M83.8164 41.0325C79.1708 22.8241 69.3458 17 59.9939 17C50.642 17 40.8171 22.8241 36.1715 41.0325L16 117H35.8804C39.119 104.311 49.1016 97.2436 59.9939 97.2436C70.8863 97.2436 80.8689 104.324 84.1075 117H104L83.8164 41.0325ZM59.9939 79.5428C53.6623 79.5428 47.925 82.0552 43.6918 86.1283L55.0936 41.9207C56.1853 37.6953 57.7985 36.3503 60.0061 36.3503C62.2136 36.3503 63.8269 37.6953 64.9185 41.9207L76.3082 86.1283C72.075 82.0552 66.3256 79.5428 59.9939 79.5428Z\"\n fill=\"#FA5022\"\n />\n </svg>\n </div>\n)\n","(function(root) {\n var isOn = false;\n var scrollbarSize;\n var scrollTop;\n\n function getScrollbarSize() {\n if (typeof scrollbarSize !== 'undefined') return scrollbarSize;\n\n var doc = document.documentElement;\n var dummyScroller = document.createElement('div');\n dummyScroller.setAttribute('style', 'width:99px;height:99px;' + 'position:absolute;top:-9999px;overflow:scroll;');\n doc.appendChild(dummyScroller);\n scrollbarSize = dummyScroller.offsetWidth - dummyScroller.clientWidth;\n doc.removeChild(dummyScroller);\n return scrollbarSize;\n }\n\n function hasScrollbar() {\n return document.documentElement.scrollHeight > window.innerHeight;\n }\n\n function on(options) {\n if (typeof document === 'undefined' || isOn) return;\n var doc = document.documentElement;\n scrollTop = window.pageYOffset;\n if (hasScrollbar()) {\n doc.style.width = 'calc(100% - '+ getScrollbarSize() +'px)';\n } else {\n doc.style.width = '100%';\n }\n doc.style.position = 'fixed';\n doc.style.top = -scrollTop + 'px';\n doc.style.overflow = 'hidden';\n isOn = true;\n }\n\n function off() {\n if (typeof document === 'undefined' || !isOn) return;\n var doc = document.documentElement;\n doc.style.width = '';\n doc.style.position = '';\n doc.style.top = '';\n doc.style.overflow = '';\n window.scroll(0, scrollTop);\n isOn = false;\n }\n\n function toggle() {\n if (isOn) {\n off();\n return;\n }\n on();\n }\n\n var noScroll = {\n on: on,\n off: off,\n toggle: toggle,\n };\n\n if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = noScroll;\n } else {\n root.noScroll = noScroll;\n }\n})(this);\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar DISPLAY_NONE = \"none\";\nvar DISPLAY_CONTENTS = \"contents\";\n\nvar tabbableNode = /input|select|textarea|button|object|iframe/;\n\nfunction isNotOverflowing(element, style) {\n return style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0;\n}\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n try {\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n var displayValue = style.getPropertyValue(\"display\");\n return zeroSize ? displayValue !== DISPLAY_CONTENTS && isNotOverflowing(element, style) : displayValue === DISPLAY_NONE;\n } catch (exception) {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inspect element style\");\n return false;\n }\n}\n\nfunction visible(element) {\n var parentElement = element;\n var rootNode = element.getRootNode && element.getRootNode();\n while (parentElement) {\n if (parentElement === document.body) break;\n\n // if we are not hidden yet, skip to checking outside the Web Component\n if (rootNode && parentElement === rootNode) parentElement = rootNode.host.parentNode;\n\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n var descendants = [].slice.call(element.querySelectorAll(\"*\"), 0).reduce(function (finished, el) {\n return finished.concat(!el.shadowRoot ? [el] : findTabbableDescendants(el.shadowRoot));\n }, []);\n return descendants.filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n focusLaterElements = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"focusManager ----------\");\n focusLaterElements.forEach(function (f) {\n var check = f || {};\n console.log(check.nodeName, check.className, check.id);\n });\n console.log(\"end focusManager ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({ preventScroll: preventScroll });\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getActiveElement() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n return el.activeElement.shadowRoot ? getActiveElement(el.activeElement.shadowRoot) : el.activeElement;\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n var activeElement = getActiveElement();\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n if (globalElement) {\n if (globalElement.removeAttribute) {\n globalElement.removeAttribute(\"aria-hidden\");\n } else if (globalElement.length != null) {\n globalElement.forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n } else {\n document.querySelectorAll(globalElement).forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n }\n }\n globalElement = null;\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var check = globalElement || {};\n console.log(\"ariaAppHider ----------\");\n console.log(check.nodeName, check.className, check.id);\n console.log(\"end ariaAppHider ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n var el = appElement || globalElement;\n if (el) {\n return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];\n } else {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return [];\n }\n}\n\nfunction hide(appElement) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var el = _step.value;\n\n el.setAttribute(\"aria-hidden\", \"true\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\nfunction show(appElement) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var el = _step2.value;\n\n el.removeAttribute(\"aria-hidden\");\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction removeClass(at, cls) {\n at.classList.remove(cls);\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n var htmlElement = document.getElementsByTagName(\"html\")[0];\n for (var cls in htmlClassList) {\n removeClass(htmlElement, htmlClassList[cls]);\n }\n\n var body = document.body;\n for (var _cls in docBodyClassList) {\n removeClass(body, docBodyClassList[_cls]);\n }\n\n htmlClassList = {};\n docBodyClassList = {};\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \"<html /> (\" + classes + \"):\\n \";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n \";\n }\n\n classes = document.body.className;\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n \";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n \";\n }\n\n buffer += \"\\n\";\n\n console.log(buffer);\n }\n}\n/* eslint-enable no-console */\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.log = log;\nexports.resetState = resetState;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction log() {\n console.log(\"portalOpenInstances ----------\");\n console.log(portalOpenInstances.openInstances.length);\n portalOpenInstances.openInstances.forEach(function (p) {\n return console.log(p);\n });\n console.log(\"end portalOpenInstances ----------\");\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n portalOpenInstances = new PortalOpenInstances();\n}\n/* eslint-enable no-console */\n\nexports.default = portalOpenInstances;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n var _arr = [before, after];\n\n for (var _i = 0; _i < _arr.length; _i++) {\n var item = _arr[_i];\n if (!item) continue;\n item.parentNode && item.parentNode.removeChild(item);\n }\n before = after = null;\n instances = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n console.log(\"bodyTrap ----------\");\n console.log(instances.length);\n var _arr2 = [before, after];\n for (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var item = _arr2[_i2];\n var check = item || {};\n console.log(check.nodeName, check.className, check.id);\n }\n console.log(\"edn bodyTrap ----------\");\n}\n/* eslint-enable no-console */\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before && !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\n\n/**\n * We need to support the deprecated `KeyboardEvent.keyCode` in addition to\n * `KeyboardEvent.code` for apps that still support IE11. Can be removed when\n * `react-modal` only supports React >18 (which dropped IE support).\n */\nvar isTabKey = function isTabKey(event) {\n return event.code === \"Tab\" || event.keyCode === 9;\n};\nvar isEscKey = function isEscKey(event) {\n return event.code === \"Escape\" || event.keyCode === 27;\n};\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName,\n parentSelector = _this$props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Remove classes.\n bodyOpenClassName && classList.remove(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.openAnimationFrame = requestAnimationFrame(function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (isTabKey(event)) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && isEscKey(event)) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n cancelAnimationFrame(this.openAnimationFrame);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName,\n parentSelector = _props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Add classes.\n bodyOpenClassName && classList.add(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n parentSelector: _propTypes2.default.func,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _safeHTMLElement.canUseDOM && _reactDom2.default.createPortal !== undefined;\n\nvar createHTMLElement = function createHTMLElement(name) {\n return document.createElement(name);\n};\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n if (parent && parent.contains(_this.node)) {\n parent.removeChild(_this.node);\n } else {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n }\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n this.node.className = this.props.portalClassName;\n\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return { prevParent: prevParent, nextParent: nextParent };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n }\n\n // Stop unnecessary renders if modal is remaining closed\n if (!prevProps.isOpen && !isOpen) return;\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n preventScroll: false,\n parentSelector: function parentSelector() {\n return document.body;\n },\n overlayElement: function overlayElement(props, contentEl) {\n return _react2.default.createElement(\n \"div\",\n props,\n contentEl\n );\n },\n contentElement: function contentElement(props, children) {\n return _react2.default.createElement(\n \"div\",\n props,\n children\n );\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n\n\n(0, _reactLifecyclesCompat.polyfill)(Modal);\n\nif (process.env.NODE_ENV !== \"production\") {\n Modal.setCreateHTMLElement = function (fn) {\n return createHTMLElement = fn;\n };\n}\n\nexports.default = Modal;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","import React from 'react'\n\n/**\n * Cross/Close Icon Component\n *\n * ACCESSIBILITY NOTE (RGAA):\n * This icon is marked as decorative (aria-hidden=\"true\") because it should NOT provide\n * semantic meaning on its own. When used in close buttons, the parent button element\n * MUST provide proper accessible text via aria-label or visible text content.\n *\n * Example of correct usage:\n * <button aria-label=\"Close modal\"><CrossIcon /></button>\n *\n * This differs from informational icons (like payment cards) which need their own\n * accessible labels since they convey meaningful information to users.\n */\n\ntype Props = {\n color?: string\n className?: string\n}\n\nfunction CrossIcon({ color = '#fff', className }: Props): React.JSX.Element {\n return (\n <svg\n className={className}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M12.5964 11.404L9.41445 8.22205L12.5964 5.04007C12.7732 4.86329 12.7732 4.50974 12.5964 4.33296L11.8893 3.62585C11.6904 3.42698 11.359 3.44908 11.1822 3.62585L8.00023 6.80783L4.81825 3.62585C4.61938 3.42698 4.28792 3.44908 4.11114 3.62585L3.40404 4.33296C3.20516 4.53183 3.20516 4.84119 3.40404 5.04007L6.58602 8.22205L3.40404 11.404C3.20516 11.6029 3.20517 11.9123 3.40404 12.1111L4.11115 12.8182C4.28792 12.995 4.61938 13.0171 4.81825 12.8182L8.00023 9.63626L11.1822 12.8182C11.359 12.995 11.6904 13.0171 11.8893 12.8182L12.5964 12.1111C12.7732 11.9344 12.7732 11.5808 12.5964 11.404Z\"\n fill={color}\n />\n </svg>\n )\n}\n\nexport default CrossIcon\n","/**\n * Prefix classes to avoid name collisions.\n */\nconst prefix = 'alma-eligibility-modal'\n\n/**\n * Class names for the **eligibility modale** widget.\n * Those classes are intended to be used by the **merchant developer**.\n */\nconst STATIC_CUSTOMISATION_CLASSES = {\n desktopModal: `${prefix}-desktop-modal`,\n mobileModal: `${prefix}-mobile-modal`,\n leftSide: `${prefix}-left-side`,\n bullet: `${prefix}-bullet`,\n rightSide: `${prefix}-right-side`,\n title: `${prefix}-title`,\n info: `${prefix}-info`,\n infoMessage: `${prefix}-info-message`,\n eligibilityOptions: `${prefix}-eligibility-options`,\n activeOption: `${prefix}-active-option`,\n closeButton: `${prefix}-close-button`,\n scheduleDetails: `${prefix}-schedule-details`,\n scheduleTotal: `${prefix}-schedule-total`,\n scheduleCredit: `${prefix}-schedule-credit`,\n cardContainer: `${prefix}-card-logos`,\n summary: `${prefix}-summary`,\n}\n\nexport default STATIC_CUSTOMISATION_CLASSES\n","import React, { FunctionComponent, ReactNode } from 'react'\n\nimport cx from 'classnames'\nimport noScroll from 'no-scroll'\nimport { useIntl } from 'react-intl'\nimport Modal from 'react-modal'\n\nimport CrossIcon from 'assets/Cross'\nimport s from 'components/Modal/Modal.module.css'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\n\nexport type Props = Modal.Props & {\n children: ReactNode\n isOpen: boolean\n onClose: (event: React.MouseEvent | React.KeyboardEvent) => void\n className?: string\n contentClassName?: string\n scrollable?: boolean\n}\n\nconst ControlledModal: FunctionComponent<Props> = ({\n children,\n isOpen,\n onClose,\n className,\n contentClassName,\n scrollable = false,\n ...props\n}) => {\n const intl = useIntl()\n\n Modal.setAppElement('body')\n\n return (\n <Modal\n className={cx(s.modal, className)}\n overlayClassName={s.overlay}\n onAfterOpen={() => {\n noScroll.on()\n }}\n onAfterClose={() => {\n noScroll.off()\n }}\n onRequestClose={onClose}\n isOpen={isOpen}\n shouldCloseOnOverlayClick\n shouldCloseOnEsc\n role=\"dialog\"\n aria-modal=\"true\"\n {...props}\n >\n <div className={s.header}>\n <button\n type=\"button\"\n onClick={onClose}\n className={cx(s.closeButton, STATIC_CUSTOMISATION_CLASSES.closeButton)}\n data-testid=\"modal-close-button\"\n aria-label={intl.formatMessage({\n id: 'accessibility.close-button.aria-label',\n defaultMessage: 'Fermer la fenêtre',\n })}\n >\n <CrossIcon aria-hidden=\"true\" />\n </button>\n </div>\n <div className={cx(s.content, contentClassName, { [s.contentScrollable]: scrollable })}>\n {children}\n </div>\n </Modal>\n )\n}\n\nexport default ControlledModal\n","import React, { FC } from 'react'\n\nimport cx from 'classnames'\nimport { FormattedMessage, useIntl } from 'react-intl'\n\nimport s from 'components/SkipLinks/SkipLinks.module.css'\n\ntype Props = {\n skipLinks: Array<{\n href: string\n labelId: string\n defaultMessage: string\n }>\n className?: string\n}\n\nconst SkipLinks: FC<Props> = ({ skipLinks, className }) => {\n const intl = useIntl()\n\n const handleSkipLinkClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n const href = event.currentTarget.getAttribute('href')\n if (href && href.startsWith('#')) {\n const targetId = href.substring(1)\n const targetElement = document.getElementById(targetId)\n\n if (targetElement) {\n // Small delay to allow browser to scroll first\n setTimeout(() => {\n targetElement.focus()\n }, 0)\n }\n }\n }\n\n return (\n <nav\n className={cx(s.skipLinks, className)}\n role=\"navigation\"\n aria-label={intl.formatMessage({\n id: 'accessibility.skip-links.navigation.aria-label',\n defaultMessage: 'Navigation rapide',\n })}\n >\n <ul className={s.skipLinksList}>\n {skipLinks.map(({ href, labelId, defaultMessage }) => (\n <li key={href} className={s.skipLinkItem}>\n <a href={href} className={s.skipLink} onClick={handleSkipLinkClick}>\n <FormattedMessage id={labelId} defaultMessage={defaultMessage} />\n </a>\n </li>\n ))}\n </ul>\n </nav>\n )\n}\n\nexport default SkipLinks\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name constructNow\n * @category Generic Helpers\n * @summary Constructs a new current date using the passed value constructor.\n * @pure false\n *\n * @description\n * The function constructs a new current date using the constructor from\n * the reference date. It helps to build generic functions that accept date\n * extensions and use the current date.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @param date - The reference date to take constructor from\n *\n * @returns Current date initialized using the given date constructor\n *\n * @example\n * import { constructNow, isSameDay } from 'date-fns'\n *\n * function isToday<DateType extends Date>(\n * date: DateArg<DateType>,\n * ): boolean {\n * // If we were to use `new Date()` directly, the function would behave\n * // differently in different timezones and return false for the same date.\n * return isSameDay(date, constructNow(date));\n * }\n */\nexport function constructNow(date) {\n return constructFrom(date, Date.now());\n}\n\n// Fallback for modularized imports:\nexport default constructNow;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link isSameDay} function options.\n */\n\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same day (and year and month)\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport function isSameDay(laterDate, earlierDate, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return +startOfDay(dateLeft_) === +startOfDay(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameDay;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { constructNow } from \"./constructNow.js\";\nimport { isSameDay } from \"./isSameDay.js\";\n\n/**\n * The {@link isToday} function options.\n */\n\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * @param date - The date to check\n * @param options - An object with options\n *\n * @returns The date is today\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * const result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\nexport function isToday(date, options) {\n return isSameDay(\n constructFrom(options?.in || date, date),\n constructNow(options?.in || date),\n );\n}\n\n// Fallback for modularized imports:\nexport default isToday;\n","import { millisecondsInSecond } from \"./constants.js\";\n\n/**\n * @name secondsToMilliseconds\n * @category Conversion Helpers\n * @summary Convert seconds to milliseconds.\n *\n * @description\n * Convert a number of seconds to a full number of milliseconds.\n *\n * @param seconds - The number of seconds to be converted\n *\n * @returns The number of seconds converted in milliseconds\n *\n * @example\n * // Convert 2 seconds into milliseconds\n * const result = secondsToMilliseconds(2)\n * //=> 2000\n */\nexport function secondsToMilliseconds(seconds) {\n return seconds * millisecondsInSecond;\n}\n\n// Fallback for modularized imports:\nexport default secondsToMilliseconds;\n","import React, { ReactNode } from 'react'\n\nimport { secondsToMilliseconds } from 'date-fns'\nimport { FormattedDate, FormattedMessage, FormattedNumber, IntlShape } from 'react-intl'\n\nimport { EligibilityPlan, EligibilityPlanToDisplay } from '@/types'\nimport { isP1X, priceFromCents } from '@/utils'\nimport s from '@/utils/paymentPlanStrings.module.css'\n\nexport const paymentPlanShorthandName = (payment: EligibilityPlan): ReactNode => {\n const {\n deferred_days: deferredDays,\n deferred_months: deferredMonths,\n installments_count: installmentsCount,\n } = payment\n\n if (installmentsCount === 1 && !deferredDays && !deferredMonths) {\n return (\n <FormattedMessage\n id=\"payment-plan-strings.pay.now.button\"\n defaultMessage=\"Payer maintenant\"\n />\n )\n }\n if (installmentsCount === 1 && deferredDays) {\n return (\n <FormattedMessage\n id=\"payment-plan-strings.day-abbreviation\"\n defaultMessage=\"J{deferredDays}\"\n values={{\n deferredDays: `+${deferredDays}`,\n }}\n />\n )\n }\n if (installmentsCount === 1 && deferredMonths) {\n return (\n <FormattedMessage\n id=\"payment-plan-strings.month-abbreviation\"\n defaultMessage=\"M{deferredMonths}\"\n values={{\n deferredMonths: `+${deferredMonths}`,\n }}\n />\n )\n }\n return `${installmentsCount}x`\n}\n\n/**\n * String version of paymentPlanShorthandName that returns a translated string\n * instead of a ReactNode for use in aria-label attributes for example\n */\nexport const paymentPlanShorthandText = (payment: EligibilityPlan, intl: IntlShape): string => {\n const {\n deferred_days: deferredDays,\n deferred_months: deferredMonths,\n installments_count: installmentsCount,\n } = payment\n\n if (installmentsCount === 1 && !deferredDays && !deferredMonths) {\n return intl.formatMessage({\n id: 'payment-plan-strings.pay.now.button',\n defaultMessage: 'Payer maintenant',\n })\n }\n if (installmentsCount === 1 && deferredDays) {\n return intl.formatMessage(\n {\n id: 'payment-plan-strings.day-abbreviation',\n defaultMessage: 'J{deferredDays}',\n },\n {\n deferredDays: `+${deferredDays}`,\n },\n )\n }\n if (installmentsCount === 1 && deferredMonths) {\n return intl.formatMessage(\n {\n id: 'payment-plan-strings.month-abbreviation',\n defaultMessage: 'M{deferredMonths}',\n },\n {\n deferredMonths: `+${deferredMonths}`,\n },\n )\n }\n return `${installmentsCount}x`\n}\n\n// eslint-disable-next-line consistent-return\nconst withNoFee = (payment: EligibilityPlanToDisplay) => {\n if (\n payment.payment_plan?.every((plan) => plan.customer_fee === 0 && plan.customer_interest === 0)\n ) {\n return (\n <>\n {' '}\n <FormattedMessage id=\"payment-plan-strings.no-fee\" defaultMessage=\"(sans frais)\" />\n </>\n )\n }\n}\n\nexport const paymentPlanInfoText = (payment: EligibilityPlanToDisplay): ReactNode => {\n const {\n deferred_days: deferredDays,\n deferred_months: deferredMonths,\n installments_count: installmentsCount,\n eligible,\n purchase_amount: purchaseAmount,\n minAmount = 0,\n maxAmount = 0,\n payment_plan: paymentPlan,\n } = payment\n const deferredDaysCount = deferredDays + deferredMonths * 30\n\n if (!eligible) {\n return (\n <p>\n {purchaseAmount > maxAmount ? (\n <FormattedMessage\n id=\"payment-plan-strings.ineligible-greater-than-max\"\n defaultMessage=\"Jusqu'à {maxAmount}\"\n values={{\n maxAmount: (\n <FormattedNumber\n value={priceFromCents(maxAmount)}\n style=\"currency\"\n currency=\"EUR\"\n />\n ),\n }}\n />\n ) : (\n <FormattedMessage\n id=\"payment-plan-strings.ineligible-lower-than-min\"\n defaultMessage=\"À partir de {minAmount}\"\n values={{\n minAmount: (\n <FormattedNumber\n value={priceFromCents(minAmount)}\n style=\"currency\"\n currency=\"EUR\"\n />\n ),\n }}\n />\n )}\n </p>\n )\n }\n if (!paymentPlan) {\n /* This error should never happen. We added this condition to avoid a typescript warning on\n payment_plan possibly undefined. As far as we know, it only happens when the plan is not\n eligible, which is checked above. */\n throw Error(\n `No payment plan provided for payment in ${installmentsCount} installments. Please contact us if you see this error.`,\n )\n } else if (deferredDaysCount !== 0 && installmentsCount === 1) {\n return (\n <p>\n <FormattedMessage\n id=\"payment-plan-strings.deferred\"\n defaultMessage=\"{totalAmount} à payer le {dueDate}\"\n values={{\n totalAmount: (\n <FormattedNumber\n value={priceFromCents(paymentPlan[0].total_amount)}\n style=\"currency\"\n currency=\"EUR\"\n />\n ),\n dueDate: (\n <FormattedDate\n value={secondsToMilliseconds(paymentPlan[0].due_date)}\n day=\"numeric\"\n month=\"long\"\n year=\"numeric\"\n />\n ),\n }}\n />\n {withNoFee(payment)}\n </p>\n )\n } else if (installmentsCount > 0) {\n const areInstallmentsOfSameAmount = paymentPlan?.every(\n (installment, index) =>\n index === 0 || installment.total_amount === paymentPlan[0].total_amount,\n )\n\n if (installmentsCount > 4) {\n return (\n <p className={s.openModalInfo}>\n <FormattedMessage\n id=\"payment-plan-strings.credit\"\n defaultMessage=\"Cliquez pour en savoir plus\"\n description=\"Link to credit details\"\n />\n </p>\n )\n }\n\n if (isP1X(payment)) {\n return (\n <p>\n <FormattedMessage\n id=\"payment-plan-strings.pay-now\"\n defaultMessage=\"Payer maintenant {totalAmount}\"\n values={{\n totalAmount: (\n <FormattedNumber\n value={priceFromCents(paymentPlan[0].total_amount)}\n style=\"currency\"\n currency=\"EUR\"\n />\n ),\n installmentsCount,\n }}\n />\n {withNoFee(payment)}\n </p>\n )\n }\n\n if (areInstallmentsOfSameAmount) {\n return (\n <p>\n <FormattedMessage\n id=\"payment-plan-strings.multiple-installments-same-amount\"\n defaultMessage=\"{installmentsCount} x {totalAmount}\"\n values={{\n totalAmount: (\n <FormattedNumber\n value={priceFromCents(paymentPlan[0].total_amount)}\n style=\"currency\"\n currency=\"EUR\"\n />\n ),\n installmentsCount,\n }}\n />\n {withNoFee(payment)}\n </p>\n )\n }\n\n return (\n <p>\n <FormattedMessage\n id=\"payment-plan-strings.multiple-installments\"\n defaultMessage=\"{numberOfRemainingInstallments, plural, one {{firstInstallmentAmount} puis {numberOfRemainingInstallments} x {othersInstallmentAmount}} other {{firstInstallmentAmount} puis {numberOfRemainingInstallments} x {othersInstallmentAmount}}}\"\n values={{\n firstInstallmentAmount: (\n <FormattedNumber\n value={priceFromCents(paymentPlan[0].total_amount)}\n style=\"currency\"\n currency=\"EUR\"\n />\n ),\n numberOfRemainingInstallments: installmentsCount - 1,\n othersInstallmentAmount: (\n <FormattedNumber\n value={priceFromCents(paymentPlan[1].total_amount)}\n style=\"currency\"\n currency=\"EUR\"\n />\n ),\n }}\n />\n {withNoFee(payment)}\n </p>\n )\n }\n return (\n <p>\n <FormattedMessage\n id=\"payment-plan-strings.default-message\"\n defaultMessage=\"Payez en plusieurs fois avec Alma\"\n />\n </p>\n )\n}\n\nexport const getPlanDescription = (plan: EligibilityPlan, intl: IntlShape) => {\n if (plan.installments_count === 1 && plan.deferred_days === 0 && plan.deferred_months === 0) {\n return intl.formatMessage({\n id: 'payment-plan-strings.pay.now.button',\n defaultMessage: 'Payer maintenant',\n })\n }\n if (plan.installments_count === 1 && (plan.deferred_days > 0 || plan.deferred_months > 0)) {\n return intl.formatMessage(\n {\n id: 'payment-plan-strings.pay.deferred.button',\n defaultMessage: 'Payer en différé : {deferredTime}',\n },\n {\n deferredTime:\n plan.deferred_months > 0\n ? intl.formatMessage(\n {\n id: 'payment-plan-strings.deferred.months',\n defaultMessage: '{months, number} {months, plural, one {mois} other {mois}}',\n },\n { months: plan.deferred_months },\n )\n : intl.formatMessage(\n {\n id: 'payment-plan-strings.deferred.days',\n defaultMessage: '{days, number} {days, plural, one {jour} other {jours}}',\n },\n { days: plan.deferred_days },\n ),\n },\n )\n }\n\n return `${plan.installments_count}x`\n}\n","import React, { FC, useEffect, useRef } from 'react'\n\nimport cx from 'classnames'\nimport { FormattedMessage, useIntl } from 'react-intl'\n\nimport { EligibilityPlan } from '@/types'\nimport { paymentPlanShorthandName, paymentPlanShorthandText } from 'utils/paymentPlanStrings'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\nimport s from 'Widgets/EligibilityModal/components/EligibilityPlansButtons/EligibilityPlansButtons.module.css'\n\nconst EligibilityPlansButtons: FC<{\n eligibilityPlans: EligibilityPlan[]\n currentPlanIndex: number\n // eslint-disable-next-line no-unused-vars\n setCurrentPlanIndex: (index: number) => void\n id?: string\n}> = ({ eligibilityPlans, currentPlanIndex, setCurrentPlanIndex, id }) => {\n const intl = useIntl()\n const buttonRefs = useRef<(HTMLButtonElement | null)[]>([])\n const shouldFocusRef = useRef(false)\n\n // Initialize button refs array\n useEffect(() => {\n buttonRefs.current = buttonRefs.current.slice(0, eligibilityPlans.length)\n }, [eligibilityPlans.length])\n\n // Handle focus when currentPlanIndex changes via keyboard navigation\n useEffect(() => {\n if (shouldFocusRef.current && buttonRefs.current[currentPlanIndex]) {\n buttonRefs.current[currentPlanIndex]?.focus()\n shouldFocusRef.current = false\n }\n }, [currentPlanIndex])\n\n /**\n * Navigate to plan and focus the corresponding button\n * @param newIndex - Target plan index\n */\n const navigateToPlan = (newIndex: number) => {\n if (newIndex >= 0 && newIndex < eligibilityPlans.length) {\n shouldFocusRef.current = true\n setCurrentPlanIndex(newIndex)\n }\n }\n\n return (\n <div>\n <h2 id=\"payment-plans-title\" className=\"sr-only\">\n <FormattedMessage\n id=\"accessibility.payment-plans-title\"\n defaultMessage=\"Options de paiement disponibles\"\n />\n </h2>\n <div\n id={id}\n className={cx(s.buttons, STATIC_CUSTOMISATION_CLASSES.eligibilityOptions)}\n role=\"group\"\n aria-labelledby=\"payment-plans-title\"\n >\n {eligibilityPlans.map((eligibilityPlan, key) => (\n <button\n type=\"button\"\n key={`p${eligibilityPlan.installments_count}x-d+${eligibilityPlan.deferred_days}-m+${eligibilityPlan.deferred_months}`}\n className={cx({\n [cx(s.active, STATIC_CUSTOMISATION_CLASSES.activeOption)]: key === currentPlanIndex,\n })}\n onClick={() => setCurrentPlanIndex(key)}\n onKeyDown={(e) => {\n // Arrow navigation between plans\n if (e.key === 'ArrowLeft') {\n e.preventDefault()\n navigateToPlan(key - 1)\n } else if (e.key === 'ArrowRight') {\n e.preventDefault()\n navigateToPlan(key + 1)\n } else if (e.key === 'Home') {\n e.preventDefault()\n navigateToPlan(0)\n } else if (e.key === 'End') {\n e.preventDefault()\n navigateToPlan(eligibilityPlans.length - 1)\n }\n }}\n aria-pressed={key === currentPlanIndex}\n aria-describedby=\"payment-info\"\n aria-current={key === currentPlanIndex ? 'true' : undefined}\n aria-label={intl.formatMessage(\n {\n id: 'accessibility.payment-plan-button.aria-label',\n defaultMessage: 'Sélectionner le plan de paiement {planName}',\n },\n { planName: paymentPlanShorthandText(eligibilityPlan, intl) },\n )}\n ref={(el) => {\n buttonRefs.current[key] = el\n }}\n >\n <span className={s.textButton}>{paymentPlanShorthandName(eligibilityPlan)}</span>\n </button>\n ))}\n </div>\n </div>\n )\n}\n\nexport default EligibilityPlansButtons\n","import React, { FC } from 'react'\n\nimport cx from 'classnames'\nimport { isToday } from 'date-fns'\nimport { FormattedDate, FormattedMessage, FormattedNumber } from 'react-intl'\n\nimport { PaymentPlan } from '@/types'\nimport s from 'components/Installments/Installment/Installment.module.css'\n\ntype Props = {\n installment: PaymentPlan\n index: number\n}\n\nconst Installment: FC<Props> = ({ installment, index }) => (\n <div className={s.installment} data-testid={`installment-${index}`}>\n <div className={s.date}>\n <div className={cx(s.dot, { [s.isCurrent]: index === 0 })} />\n {isToday(installment.due_date * 1000) ? (\n <FormattedMessage id=\"installments.today\" defaultMessage=\"Aujourd'hui\" tagName=\"strong\" />\n ) : (\n <FormattedDate\n value={installment.due_date * 1000}\n day=\"numeric\"\n month=\"long\"\n year=\"numeric\"\n />\n )}\n </div>\n <div className={cx({ [s.bold]: index === 0 })}>\n <FormattedNumber value={installment.total_amount / 100} style=\"currency\" currency=\"EUR\" />\n </div>\n </div>\n)\n\nexport default Installment\n","import React, { FunctionComponent } from 'react'\n\nimport cx from 'classnames'\nimport { FormattedMessage, FormattedNumber, useIntl } from 'react-intl'\n\nimport { EligibilityPlan } from '@/types'\nimport { priceFromCents } from '@/utils'\nimport s from 'components/Installments/TotalBlock/TotalBlock.module.css'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\n\nconst TotalBlock: FunctionComponent<{ currentPlan: EligibilityPlan }> = ({ currentPlan }) => {\n const intl = useIntl()\n const total = priceFromCents(currentPlan.purchase_amount + currentPlan.customer_total_cost_amount)\n const creditCost = priceFromCents(currentPlan.customer_total_cost_amount)\n const TAEG = (currentPlan?.annual_interest_rate && currentPlan.annual_interest_rate / 10000) || 0\n const customerFees = priceFromCents(currentPlan.customer_total_cost_amount)\n const isCredit = currentPlan.installments_count > 4\n const firstInstallmentAmount = priceFromCents(currentPlan.payment_plan?.[0]?.total_amount ?? 0)\n // For totalWithoutFirstInstallment, we need to get the total price and add the credit cost, before removing the first installment, to get the rest of the amount to pay.\n const totalWithoutFirstInstallment = priceFromCents(\n currentPlan.purchase_amount +\n currentPlan.customer_total_cost_amount -\n (currentPlan.payment_plan?.[0]?.total_amount ?? 0),\n )\n\n return (\n <>\n {isCredit && (\n <div className={s.creditInfo}>\n <span className={s.creditInfoTitle}>\n <FormattedMessage\n id=\"credit-features.information.title\"\n defaultMessage=\"Un crédit vous engage et doit être remboursé.\"\n />\n </span>\n <br />\n <FormattedMessage\n id=\"credit-features.information\"\n defaultMessage=\"Vérifiez vos capacités de remboursement avant de vous engager.\"\n />\n </div>\n )}\n <div\n className={cx(s.container, STATIC_CUSTOMISATION_CLASSES.summary)}\n data-testid=\"modal-summary\"\n >\n <p className={cx(s.total, STATIC_CUSTOMISATION_CLASSES.scheduleTotal)}>\n <FormattedMessage tagName=\"span\" id=\"installments.total-amount\" defaultMessage=\"Total\" />\n <FormattedNumber value={total || 0} style=\"currency\" currency=\"EUR\" />\n </p>\n <p className={cx(s.fees, STATIC_CUSTOMISATION_CLASSES.scheduleCredit)}>\n {isCredit ? (\n <>\n <FormattedMessage\n id=\"credit-features.total-credit-cost\"\n defaultMessage=\"Dont coût du crédit\"\n />\n <span className={s.creditCost}>\n <FormattedMessage\n id=\"credit-features.credit-cost-display\"\n defaultMessage=\"{creditCost} (TAEG {taegPercentage})\"\n values={{\n creditCost: intl.formatNumber(creditCost, {\n style: 'currency',\n currency: 'EUR',\n }),\n taegPercentage: intl.formatNumber(TAEG, {\n style: 'percent',\n maximumFractionDigits: 2,\n }),\n }}\n />\n </span>\n </>\n ) : (\n <>\n <FormattedMessage\n id=\"installments.total-fees\"\n defaultMessage=\"Dont frais (TTC)\"\n tagName=\"span\"\n />\n <span>\n <FormattedNumber value={customerFees} style=\"currency\" currency=\"EUR\" />\n </span>\n </>\n )}\n </p>\n {isCredit && (\n <div className={s.creditInfoLegalText}>\n <FormattedMessage\n id=\"credit-features.legal-text\"\n defaultMessage=\"Crédit d'un montant de {totalWithoutFirstInstallment} au taux débiteur fixe de {taegPercentage} sur une durée de {installmeentsCountWithoutFirst} mois. Permettant, en complément d'un acompte de {firstInstallmentAmount}, de financer un achat d'un montant de {productPriceWithoutCreditCost}. Sous réserve d'étude et d'acceptation par Alma. Délai légal de rétractation de 14 jours. Simulation présentée par Alma, immatriculée au RCS Nanterre sous le numéro 839 100 575, établissement de paiement et société de financement agréée par l’ACPR sous le n° 17408 (numéro CIB / Code banque).\"\n values={{\n totalWithoutFirstInstallment: intl.formatNumber(totalWithoutFirstInstallment, {\n style: 'currency',\n currency: 'EUR',\n }),\n taegPercentage: intl.formatNumber(TAEG, {\n style: 'percent',\n maximumFractionDigits: 2,\n }),\n installmeentsCountWithoutFirst: currentPlan.installments_count - 1,\n firstInstallmentAmount: intl.formatNumber(firstInstallmentAmount, {\n style: 'currency',\n currency: 'EUR',\n }),\n productPriceWithoutCreditCost: intl.formatNumber(total - creditCost, {\n style: 'currency',\n currency: 'EUR',\n }),\n }}\n />\n </div>\n )}\n </div>\n </>\n )\n}\n\nexport default TotalBlock\n","import React, { FC } from 'react'\n\nimport cx from 'classnames'\nimport { FormattedMessage } from 'react-intl'\n\nimport { EligibilityPlan } from '@/types'\nimport Installment from 'components/Installments/Installment'\nimport TotalBlock from 'components/Installments/TotalBlock'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\nimport s from 'Widgets/EligibilityModal/components/Schedule/Schedule.module.css'\n\nconst Schedule: FC<{ currentPlan: EligibilityPlan; id?: string }> = ({ currentPlan, id }) => (\n <div\n id={id}\n className={s.scheduleContainer}\n role=\"region\"\n aria-labelledby=\"payment-schedule-title\"\n aria-describedby=\"payment-schedule-description\"\n tabIndex={-1}\n >\n <h2 id=\"payment-schedule-title\" className=\"sr-only\">\n <FormattedMessage\n id=\"accessibility.payment-schedule-title\"\n defaultMessage=\"Calendrier de paiement\"\n />\n </h2>\n <div id=\"payment-schedule-description\">\n <ul\n className={cx(s.schedule, STATIC_CUSTOMISATION_CLASSES.scheduleDetails)}\n data-testid=\"modal-installments-element\"\n >\n {(currentPlan?.payment_plan || []).map((installment, index) => (\n <li key={installment.due_date * 1000} className={s.scheduleItem}>\n <Installment installment={installment} index={index} />\n </li>\n ))}\n </ul>\n <TotalBlock currentPlan={currentPlan} />\n </div>\n </div>\n)\n\nexport default Schedule\n","import React, { SVGAttributes } from 'react'\n\n/**\n * Alma Logo Component\n *\n * ACCESSIBILITY NOTE (RGAA):\n * This logo is marked as decorative (aria-hidden=\"true\") because it typically serves\n * as a visual brand identifier rather than conveying essential information.\n * When used in contexts where the logo needs to be accessible (e.g., main navigation,\n * payment method selection), the parent element MUST provide proper accessible text.\n *\n * Example of correct usage:\n * <button aria-label=\"Pay with Alma\"><AlmaLogo /></button>\n * or\n * <a href=\"/alma-info\" aria-label=\"Learn more about Alma\"><AlmaLogo /></a>\n *\n * This differs from informational icons which convey specific meaning to users.\n */\n\ntype Props = {\n color?: string\n} & SVGAttributes<SVGElement>\n\nexport const AlmaLogo = ({ className, color = '#fa5022', ...props }: Props) => (\n <svg\n width=\"42\"\n height=\"24\"\n viewBox=\"0 0 352 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n aria-hidden=\"true\"\n focusable=\"false\"\n {...props}\n >\n <path\n d=\"M333.24 28.3462V38.4459C327.504 31.1018 319.176 26.5132 309.288 26.5132C290.208 26.5132 275.424 43.5497 275.424 64.5757C275.424 85.6018 290.208 102.638 309.288 102.638C319.872 102.638 328.668 97.3908 334.416 89.1241V100.817H352.668V28.3462H333.24ZM314.028 84.4876C303.42 84.4876 294.828 75.574 294.828 64.5757C294.828 53.5775 303.42 44.6639 314.028 44.6639C324.636 44.6639 333.228 53.5775 333.228 64.5757C333.228 75.574 324.636 84.4876 314.028 84.4876ZM109.5 8.23073H128.916V100.805H109.5V8.23073ZM151.248 59.7356C151.248 39.8117 163.5 26.5252 180.468 26.5252C191.004 26.5252 199.332 31.1976 204.348 39.1648C209.376 31.1976 217.692 26.5252 228.228 26.5252C245.196 26.5252 257.448 39.8117 257.448 59.7356V100.817H238.032V57.639C238.032 49.8635 232.872 44.7957 226.044 44.7957C219.216 44.7957 214.056 49.8755 214.056 57.639V100.817H194.64V57.639C194.64 49.8635 189.48 44.7957 182.652 44.7957C175.824 44.7957 170.664 49.8755 170.664 57.639V100.817H151.248V59.7356ZM74.34 29.101C69.744 11.9088 60.0241 6.40967 50.772 6.40967C41.5201 6.40967 31.8 11.9088 27.204 29.101L7.24805 100.829H26.916C30.12 88.8485 39.996 82.1753 50.772 82.1753C61.548 82.1753 71.424 88.8605 74.6281 100.829H94.3081L74.34 29.101ZM50.772 65.4623C44.508 65.4623 38.8321 67.8345 34.6441 71.6803L45.924 29.9397C47.0041 25.9501 48.6001 24.6802 50.784 24.6802C52.9681 24.6802 54.5641 25.9501 55.6441 29.9397L66.912 71.6803C62.724 67.8345 57.036 65.4623 50.772 65.4623Z\"\n fill={color}\n />\n </svg>\n)\n","import React, { FC } from 'react'\n\nimport { useIntl } from 'react-intl'\n\nconst AmexCard: FC = () => {\n const intl = useIntl()\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"16\"\n viewBox=\"0 0 24 16\"\n aria-label={intl.formatMessage({\n id: 'accessibility.amex-card.aria-label',\n defaultMessage: 'Carte American Express acceptée',\n })}\n role=\"img\"\n >\n <defs>\n <linearGradient id=\"cardamex\" x1=\"10.914%\" x2=\"87.432%\" y1=\"86.279%\" y2=\"15.035%\">\n <stop offset=\"0%\" stopColor=\"#3FA9F5\" />\n <stop offset=\"100%\" stopColor=\"#0071BC\" />\n </linearGradient>\n </defs>\n <g fill=\"none\" fillRule=\"evenodd\">\n <path\n fill=\"url(#cardamex)\"\n fillRule=\"nonzero\"\n d=\"M22.559 16H1.379C.627 16 0 15.392 0 14.662V1.338C0 .608.627 0 1.379 0H22.62C23.373 0 24 .608 24 1.338v13.324c-.063.73-.627 1.338-1.441 1.338z\"\n />\n <g fill=\"#FFF\">\n <path d=\"M10.115 8.711L8.889 6.044H7.295v3.852L5.517 6.044H4.17l-1.778 4.03h1.103l.368-.889h2.023l.368.89h2.084V7.11l1.349 2.963h.92l1.348-2.904v2.904h.98v-4.03H11.28l-1.165 2.667zm-5.272-.474H4.23l.613-1.422v.06l.613 1.362h-.613z\" />\n <path\n fillRule=\"nonzero\"\n d=\"M19.372 7.94l.735-.77 1.042-1.185h-1.287L18.697 7.23l-1.164-1.245h-3.985v3.97h3.923l1.226-1.303 1.165 1.304h1.287L20.107 8.71l-.735-.77zM16.92 9.186h-2.33v-.77h2.268v-.77H14.59v-.712h2.33L18.084 8 16.92 9.185z\"\n />\n </g>\n </g>\n </svg>\n )\n}\n\nexport default AmexCard\n","import React, { FC } from 'react'\n\nimport { useIntl } from 'react-intl'\n\nconst CbCard: FC = () => {\n const intl = useIntl()\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"16\"\n viewBox=\"0 0 24 16\"\n aria-label={intl.formatMessage({\n id: 'accessibility.cb-card.aria-label',\n defaultMessage: 'Carte Bancaire CB acceptée',\n })}\n role=\"img\"\n >\n <defs>\n <linearGradient id=\"cardcb\" x1=\"5.842%\" x2=\"95.393%\" y1=\"81.753%\" y2=\"17.344%\">\n <stop offset=\"0%\" stopColor=\"#39B54A\" />\n <stop offset=\"100%\" stopColor=\"#0A5296\" />\n </linearGradient>\n </defs>\n <g fill=\"none\" fillRule=\"nonzero\">\n <path\n fill=\"url(#cardcb)\"\n d=\"M22.621 16H1.38C.627 16 0 15.392 0 14.662V1.338C0 .608.627 0 1.379 0H22.62C23.373 0 24 .608 24 1.338v13.324c-.063.73-.627 1.338-1.379 1.338z\"\n />\n <g fill=\"#FFF\">\n <path d=\"M19.094 4.03h-6.437V8h6.498c1.165 0 2.084-.889 2.084-2.015-.06-1.066-.98-1.955-2.145-1.955zM19.094 8.593h-6.437v3.97h6.498c1.165 0 2.084-.889 2.084-2.015-.06-1.067-.98-1.955-2.145-1.955zM7.017 8.06h4.966c-.245-2.371-2.391-4.267-4.966-4.267-2.758 0-5.027 2.074-5.027 4.681s2.269 4.682 5.027 4.682c2.698 0 4.904-2.015 5.027-4.563H7.017v-.534z\" />\n </g>\n </g>\n </svg>\n )\n}\n\nexport default CbCard\n","import React, { FC } from 'react'\n\nimport { useIntl } from 'react-intl'\n\nconst MasterCard: FC = () => {\n const intl = useIntl()\n\n return (\n <svg\n width=\"24\"\n height=\"16\"\n viewBox=\"0 0 24 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-label={intl.formatMessage({\n id: 'accessibility.mastercard.aria-label',\n defaultMessage: 'Carte Mastercard acceptée',\n })}\n role=\"img\"\n >\n <g id=\"Parcours-1C-B\" stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <g id=\"mobile-1C-Paiement-V1\" transform=\"translate(-269.000000, -313.000000)\">\n <g id=\"mastercard\" transform=\"translate(269.000000, 313.000000)\">\n <rect id=\"Rectangle\" fill=\"#FFFFFF\" x=\"0\" y=\"0\" width=\"24\" height=\"16\" rx=\"1\" />\n <g id=\"Group-6\" transform=\"translate(4.000000, 3.000000)\">\n <circle\n id=\"Oval-4-Copy\"\n fill=\"#EA001B\"\n cx=\"5.05263158\"\n cy=\"5.05263158\"\n r=\"5.05263158\"\n />\n <circle\n id=\"Oval-4\"\n fillOpacity=\"0.25\"\n fill=\"#F79F1A\"\n cx=\"10.9473684\"\n cy=\"5.05263158\"\n r=\"5.05263158\"\n />\n <circle\n id=\"Oval-4-Copy-2\"\n fillOpacity=\"0.6\"\n fill=\"#F79F1A\"\n cx=\"10.9473684\"\n cy=\"5.05263158\"\n r=\"5.05263158\"\n />\n <circle\n id=\"Oval-4-Copy-3\"\n fillOpacity=\"0.3\"\n fill=\"#EA001B\"\n cx=\"5.05263158\"\n cy=\"5.05263158\"\n r=\"5.05263158\"\n />\n </g>\n </g>\n </g>\n </g>\n </svg>\n )\n}\n\nexport default MasterCard\n","import React, { FC } from 'react'\n\nimport { useIntl } from 'react-intl'\n\nconst VisaCard: FC = () => {\n const intl = useIntl()\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"16\"\n viewBox=\"0 0 24 16\"\n aria-label={intl.formatMessage({\n id: 'accessibility.visa-card.aria-label',\n defaultMessage: 'Carte Visa acceptée',\n })}\n role=\"img\"\n >\n <g fill=\"none\" fillRule=\"nonzero\">\n <path\n fill=\"#FCFCFC\"\n d=\"M22.684 16H1.38C.627 16 0 15.39 0 14.656V1.344C0 .61.627 0 1.379 0H22.62C23.373 0 24 .61 24 1.344v13.374c0 .671-.564 1.282-1.316 1.282z\"\n />\n <path\n fill=\"#005098\"\n d=\"M8.889 10.726l.948-5.393h1.482l-.949 5.393zM15.704 5.452a3.658 3.658 0 0 0-1.304-.237c-1.481 0-2.489.71-2.489 1.778 0 .77.711 1.185 1.304 1.481.592.237.77.415.77.652 0 .355-.474.533-.889.533-.592 0-.889-.059-1.363-.296l-.177-.06-.178 1.186c.355.178 1.007.296 1.659.296 1.54 0 2.548-.71 2.548-1.837 0-.592-.415-1.067-1.244-1.481-.534-.237-.83-.415-.83-.652 0-.237.237-.474.83-.474.474 0 .83.118 1.126.178l.118.059.119-1.126M19.496 5.333H18.37c-.355 0-.592.119-.77.474l-2.193 4.919h1.541s.237-.652.296-.83h1.897c.059.178.178.83.178.83h1.362l-1.185-5.393zM17.66 8.77l.593-1.481s.118-.296.178-.533l.118.474s.296 1.303.356 1.54h-1.245zM7.644 5.333L6.222 9.007l-.178-.77C5.748 7.348 4.92 6.459 4.03 5.985l1.303 4.682h1.541l2.311-5.393h-1.54\"\n />\n <path\n fill=\"#F6A500\"\n d=\"M4.919 5.333h-2.37v.119c1.836.474 3.08 1.54 3.555 2.844L5.57 5.807c-.118-.414-.355-.474-.651-.474\"\n />\n <path\n fill=\"#0A5296\"\n d=\"M23.937 3.23H0V1.316C0 .598.627 0 1.379 0H22.62C23.373 0 24 .598 24 1.316V3.23h-.063z\"\n />\n <path\n fill=\"#F4A428\"\n d=\"M.063 13H24v1.8c0 .655-.625 1.2-1.375 1.2H1.375C.625 16 0 15.455 0 14.8V13h.063z\"\n />\n </g>\n </svg>\n )\n}\n\nexport default VisaCard\n","import React, { FC } from 'react'\n\nimport cx from 'classnames'\n\nimport { Card } from '@/types'\nimport AmexCard from 'assets/cards/amex'\nimport CbCard from 'assets/cards/cb'\nimport MasterCard from 'assets/cards/mastercard'\nimport VisaCard from 'assets/cards/visa'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\nimport s from 'Widgets/EligibilityModal/components/Cards/Cards.module.css'\n\ntype Props = {\n cards: Card[]\n}\n\nconst Cards: FC<Props> = ({ cards }) => {\n // We transform to a Set and back to avoid duplicate values (ex : amex, amex)\n const uniqueCards = Array.from(new Set(cards))\n\n return (\n <div\n data-testid=\"card-logos\"\n className={cx(s.cardContainer, STATIC_CUSTOMISATION_CLASSES.cardContainer)}\n >\n {uniqueCards.map((card: Card) => (\n <div key={card} className={s.card} data-testid={`card-logo-${card}`}>\n {card === 'cb' && <CbCard />}\n {card === 'amex' && <AmexCard />}\n {card === 'mastercard' && <MasterCard />}\n {card === 'visa' && <VisaCard />}\n </div>\n ))}\n </div>\n )\n}\n\nexport default Cards\n","import React, { FC } from 'react'\n\nimport cx from 'classnames'\nimport { FormattedMessage } from 'react-intl'\n\nimport s from 'Widgets//EligibilityModal/components/Info/Info.module.css'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\n\nconst StrongText = (chunks: React.ReactNode) => <strong>{chunks}</strong>\n\nconst Info: FC<{ isCurrentPlanP1X: boolean; id?: string }> = ({ isCurrentPlanP1X, id }) => (\n // TODO: refactor this component into subcomponents to factorize code and make it cleaner\n <div\n id={id}\n className={cx(s.list, STATIC_CUSTOMISATION_CLASSES.info)}\n data-testid=\"modal-info-element\"\n role=\"region\"\n aria-labelledby=\"payment-info-title\"\n aria-describedby=\"payment-info-description\"\n tabIndex={-1}\n >\n <h2 id=\"payment-info-title\" className=\"sr-only\">\n <FormattedMessage\n id=\"eligibility-modal.info-title\"\n defaultMessage=\"Comment procéder au paiement\"\n />\n </h2>{' '}\n <ol className={s.listContainer} id=\"payment-info-description\">\n <li className={s.listItem}>\n <div className={cx(s.bullet, STATIC_CUSTOMISATION_CLASSES.bullet)}>1</div>\n <div className={STATIC_CUSTOMISATION_CLASSES.infoMessage}>\n {isCurrentPlanP1X ? (\n <FormattedMessage\n id=\"eligibility-modal.p1x-bullet-1\"\n defaultMessage=\"Choisissez <strong>Alma - Payer maintenant</strong> au moment du paiement.\"\n values={{ strong: StrongText }}\n />\n ) : (\n <FormattedMessage\n id=\"eligibility-modal.bullet-1\"\n defaultMessage=\"Choisissez <strong>Alma</strong> au moment du paiement.\"\n values={{ strong: StrongText }}\n />\n )}\n </div>\n </li>\n <li className={s.listItem}>\n <div className={cx(s.bullet, STATIC_CUSTOMISATION_CLASSES.bullet)}>2</div>\n <div className={STATIC_CUSTOMISATION_CLASSES.infoMessage}>\n {isCurrentPlanP1X ? (\n <FormattedMessage\n id=\"eligibility-modal.p1x-bullet-2\"\n defaultMessage=\"Renseignez les informations de votre <strong>carte bancaire.</strong>\"\n values={{ strong: StrongText }}\n />\n ) : (\n <FormattedMessage\n id=\"eligibility-modal.bullet-2\"\n defaultMessage=\"Laissez-vous guider et validez votre paiement en <strong>2 minutes.</strong>\"\n values={{ strong: StrongText }}\n />\n )}\n </div>\n </li>\n <li className={s.listItem}>\n <div className={cx(s.bullet, STATIC_CUSTOMISATION_CLASSES.bullet)}>3</div>\n <div className={STATIC_CUSTOMISATION_CLASSES.infoMessage}>\n {isCurrentPlanP1X ? (\n <FormattedMessage\n id=\"eligibility-modal.p1x-bullet-3\"\n defaultMessage=\"<strong>La validation </strong> de votre paiement est instantanée !\"\n values={{ strong: StrongText }}\n />\n ) : (\n <FormattedMessage\n id=\"eligibility-modal.bullet-3\"\n defaultMessage=\"<strong>Gardez le contrôle</strong> en avançant ou reculant vos échéances à votre rythme.\"\n values={{ strong: StrongText }}\n />\n )}\n </div>\n </li>\n </ol>\n </div>\n)\n\nexport default Info\n","import React, { FC } from 'react'\n\nimport cx from 'classnames'\nimport { FormattedMessage } from 'react-intl'\n\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\nimport s from 'Widgets/EligibilityModal/components/Title/Title.module.css'\n\nconst Title: FC<{ isSomePlanDeferred: boolean; isCurrentPlanP1X: boolean }> = ({\n isSomePlanDeferred,\n isCurrentPlanP1X,\n}) => (\n <h2\n id=\"modal-title\"\n className={cx(s.title, STATIC_CUSTOMISATION_CLASSES.title)}\n data-testid=\"modal-title-element\"\n >\n {isSomePlanDeferred && (\n <FormattedMessage\n id=\"eligibility-modal.title-deferred-plan\"\n defaultMessage=\"Payez en plusieurs fois ou plus tard par carte bancaire avec Alma.\"\n />\n )}\n {!isSomePlanDeferred && isCurrentPlanP1X && (\n <FormattedMessage\n id=\"eligibility-modal.title-pay-now\"\n defaultMessage=\"Payez comptant par carte bancaire avec Alma.\"\n />\n )}\n {!isSomePlanDeferred && !isCurrentPlanP1X && (\n <FormattedMessage\n id=\"eligibility-modal.title-normal\"\n defaultMessage=\"Payez en plusieurs fois par carte bancaire avec Alma.\"\n />\n )}\n </h2>\n)\n\nexport default Title\n","import React, { FC, PropsWithChildren } from 'react'\n\nimport cx from 'classnames'\n\nimport { Card } from '@/types'\nimport { AlmaLogo } from 'assets/almaLogo'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\nimport Cards from 'Widgets/EligibilityModal/components/Cards'\nimport Info from 'Widgets/EligibilityModal/components/Info'\nimport Title from 'Widgets/EligibilityModal/components/Title'\nimport s from 'Widgets/EligibilityModal/DesktopModal/DesktopModal.module.css'\n\ntype Props = {\n isCurrentPlanP1X: boolean\n isSomePlanDeferred: boolean\n cards?: Card[]\n} & PropsWithChildren\nconst DesktopModal: FC<Props> = ({ children, isSomePlanDeferred, cards, isCurrentPlanP1X }) => (\n <div\n className={cx(s.container, STATIC_CUSTOMISATION_CLASSES.desktopModal)}\n data-testid=\"modal-container\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"modal-title\"\n >\n <aside className={cx([s.block, s.left, STATIC_CUSTOMISATION_CLASSES.leftSide])}>\n <Title isSomePlanDeferred={isSomePlanDeferred} isCurrentPlanP1X={isCurrentPlanP1X} />\n <Info id=\"payment-info\" isCurrentPlanP1X={isCurrentPlanP1X} />\n {cards && <Cards cards={cards} />}\n <AlmaLogo className={s.logo} width=\"75\" />\n </aside>\n <div className={cx(s.block, STATIC_CUSTOMISATION_CLASSES.rightSide)}>{children}</div>\n </div>\n)\n\nexport default DesktopModal\n","import React, { FC, PropsWithChildren } from 'react'\n\nimport cx from 'classnames'\n\nimport { Card } from '@/types'\nimport { AlmaLogo } from 'assets/almaLogo'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets/EligibilityModal/classNames.const'\nimport Cards from 'Widgets/EligibilityModal/components/Cards'\nimport Info from 'Widgets/EligibilityModal/components/Info'\nimport Title from 'Widgets/EligibilityModal/components/Title'\nimport s from 'Widgets/EligibilityModal/MobileModal/MobileModal.module.css'\n\ntype Props = {\n isCurrentPlanP1X: boolean\n isSomePlanDeferred: boolean\n cards?: Card[]\n} & PropsWithChildren\nconst MobileModal: FC<Props> = ({ children, isSomePlanDeferred, cards, isCurrentPlanP1X }) => (\n <div\n className={cx(s.container, STATIC_CUSTOMISATION_CLASSES.mobileModal)}\n data-testid=\"modal-container\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"modal-title\"\n >\n <Title isSomePlanDeferred={isSomePlanDeferred} isCurrentPlanP1X={isCurrentPlanP1X} />\n {children}\n <Info id=\"payment-info\" isCurrentPlanP1X={isCurrentPlanP1X} />\n {cards && <Cards cards={cards} />}\n <AlmaLogo className={s.logo} width=\"75\" />\n </div>\n)\n\nexport default MobileModal\n","import React, { FunctionComponent, useState } from 'react'\n\nimport { FormattedMessage, useIntl } from 'react-intl'\nimport { useMediaQuery } from 'react-responsive'\n\nimport { Card, EligibilityPlan, statusResponse } from '@/types'\nimport { desktopWidth, isP1X } from '@/utils'\nimport { LoadingIndicator } from 'components/LoadingIndicator/LoadingIndicator'\nimport Modal from 'components/Modal'\nimport SkipLinks from 'components/SkipLinks'\nimport EligibilityPlansButtons from 'Widgets/EligibilityModal/components/EligibilityPlansButtons'\nimport Schedule from 'Widgets/EligibilityModal/components/Schedule'\nimport DesktopModal from 'Widgets/EligibilityModal/DesktopModal'\nimport s from 'Widgets/EligibilityModal/EligibilityModal.module.css'\nimport MobileModal from 'Widgets/EligibilityModal/MobileModal'\n\ntype Props = {\n initialPlanIndex?: number\n onClose: (event: React.MouseEvent | React.KeyboardEvent) => void\n eligibilityPlans: EligibilityPlan[]\n status: statusResponse\n cards?: Card[]\n}\n\nconst EligibilityModal: FunctionComponent<Props> = ({\n initialPlanIndex,\n onClose,\n eligibilityPlans,\n status,\n cards,\n}) => {\n const [currentPlanIndex, setCurrentPlanIndex] = useState(initialPlanIndex || 0)\n const isBigScreen = useMediaQuery({ minWidth: desktopWidth })\n const ModalComponent = isBigScreen ? DesktopModal : MobileModal\n const eligiblePlans = eligibilityPlans.filter((plan) => plan.eligible)\n const currentPlan = eligiblePlans[currentPlanIndex]\n const intl = useIntl()\n\n const isSomePlanDeferred = eligibilityPlans.some(\n (plan) => plan.deferred_days > 0 || plan.deferred_months > 0,\n )\n\n // Skip links definition for RGAA accessibility\n // Towards the 3 main sections that users may want to quickly consult\n const skipLinks = [\n {\n href: '#payment-plans',\n labelId: 'skip-links.payment-plans',\n defaultMessage: intl.formatMessage({\n id: 'skip-links.payment-plans',\n defaultMessage: 'Aller aux options de paiement',\n }),\n },\n {\n href: '#payment-info',\n labelId: 'skip-links.payment-info',\n defaultMessage: intl.formatMessage({\n id: 'skip-links.payment-info',\n defaultMessage: 'Aller aux informations de paiement',\n }),\n },\n {\n href: '#payment-schedule',\n labelId: 'skip-links.payment-schedule',\n defaultMessage: intl.formatMessage({\n id: 'skip-links.payment-schedule',\n defaultMessage: 'Aller au calendrier de paiement',\n }),\n },\n ]\n\n return (\n <Modal\n onClose={onClose}\n ariaHideApp={false}\n scrollable\n isOpen\n aria={{\n labelledby: 'modal-title',\n describedby: 'modal-info-element',\n }}\n >\n <SkipLinks skipLinks={skipLinks} />\n <ModalComponent\n isSomePlanDeferred={isSomePlanDeferred}\n cards={cards}\n isCurrentPlanP1X={isP1X(currentPlan)}\n >\n {status === statusResponse.PENDING && (\n <div className={s.loader} role=\"status\" aria-live=\"polite\">\n <LoadingIndicator />\n </div>\n )}\n {status === statusResponse.SUCCESS && eligiblePlans.length === 0 && (\n <div className={s.noEligibility} role=\"alert\">\n <FormattedMessage\n id=\"eligibility-modal.no-eligibility\"\n defaultMessage=\"Oups, il semblerait que la simulation n'ait pas fonctionné.\"\n />\n </div>\n )}\n {status === statusResponse.SUCCESS && eligiblePlans.length >= 1 && (\n <>\n <section aria-labelledby=\"payment-plans-title\">\n <EligibilityPlansButtons\n id=\"payment-plans\"\n eligibilityPlans={eligiblePlans}\n currentPlanIndex={currentPlanIndex}\n setCurrentPlanIndex={setCurrentPlanIndex}\n />\n </section>\n <section className={s.scheduleArea} aria-labelledby=\"payment-schedule-title\">\n <div className={s.verticalLine} />\n <Schedule id=\"payment-schedule\" currentPlan={currentPlan} />\n </section>\n </>\n )}\n </ModalComponent>\n </Modal>\n )\n}\nexport default EligibilityModal\n","import React from 'react'\n\nimport { ApiConfig, Card, ConfigPlan } from '@/types'\nimport useFetchEligibility from 'hooks/useFetchEligibility'\nimport EligibilityModal from 'Widgets/EligibilityModal'\n\ntype Props = {\n purchaseAmount: number\n apiData: ApiConfig\n configPlans?: ConfigPlan[]\n customerBillingCountry?: string\n customerShippingCountry?: string\n onClose: (event: React.MouseEvent | React.KeyboardEvent) => void\n cards?: Card[]\n}\n\n/**\n * This component allows to display only the modal, without PaymentPlans.\n */\nconst ModalContainer: React.FC<Props> = ({\n purchaseAmount,\n apiData,\n configPlans,\n customerBillingCountry,\n customerShippingCountry,\n onClose,\n cards,\n}) => {\n const [eligibilityPlans, status] = useFetchEligibility(\n purchaseAmount,\n apiData,\n configPlans,\n customerBillingCountry,\n customerShippingCountry,\n )\n\n return (\n <EligibilityModal\n initialPlanIndex={0}\n onClose={onClose}\n eligibilityPlans={eligibilityPlans}\n status={status}\n cards={cards}\n />\n )\n}\n\nexport { ModalContainer }\n","import React, { FunctionComponent } from 'react'\n\nimport cx from 'classnames'\n\nimport s from 'components/Loader/Loader.module.css'\n\nconst Loader: FunctionComponent<{ className?: string }> = ({ className }) => (\n <div className={cx(s.loadingIndicator, className)} data-testid=\"loader\">\n <div className={s.line1} />\n <div className={s.line2} />\n </div>\n)\n\nexport default Loader\n","import { useCallback, useEffect, useRef, useState } from 'react'\n\n/**\n * Custom hook for managing announcement text for screen readers\n * Provides functionality to set announcement text and automatically clear it after a delay\n */\nexport const useAnnounceText = () => {\n const [announceText, setAnnounceText] = useState('')\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n /**\n * Announces text to screen readers and clears it after a specified delay\n * @param text - The text to announce\n * @param clearDelay - Time in milliseconds before clearing the text (default: 1000ms)\n */\n const announce = useCallback((text: string, clearDelay: number = 1000) => {\n // Clear any existing timeout to prevent overlapping announcements\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n setAnnounceText(text)\n\n // Set new timeout and store reference for cleanup\n timeoutRef.current = setTimeout(() => {\n setAnnounceText('')\n timeoutRef.current = null\n }, clearDelay)\n }, [])\n\n /**\n * Clears the current announcement text immediately and cancels any pending timeout\n */\n const clearAnnouncement = useCallback(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n timeoutRef.current = null\n }\n setAnnounceText('')\n }, [])\n\n // Cleanup timeout on unmount\n useEffect(\n () => () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n },\n [],\n )\n\n return {\n announceText,\n announce,\n clearAnnouncement,\n }\n}\n","import { useEffect } from 'react'\n\nimport { useIntl } from 'react-intl'\n\nimport { statusResponse } from '@/types'\nimport { useAnnounceText } from 'hooks/useAnnounceText'\n\ntype UseAnimationInstructionsProps = {\n status: statusResponse\n hasUserInteracted: boolean\n eligiblePlansCount: number\n transitionDelay?: number\n}\n\n/**\n * Custom hook for managing accessibility announcements about animation control instructions\n *\n * Announces instructions to screen readers about how to control automatic plan animation\n * when the widget is first loaded and animation is active.\n *\n * @param status - Current API response status\n * @param hasUserInteracted - Whether user has manually interacted with plans\n * @param eligiblePlansCount - Number of eligible payment plans\n * @param transitionDelay - Animation transition delay (-1 means disabled)\n *\n * @returns void - This hook manages side effects only\n */\nexport const useAnimationInstructions = ({\n status,\n hasUserInteracted,\n eligiblePlansCount,\n transitionDelay,\n}: UseAnimationInstructionsProps): void => {\n const intl = useIntl()\n const { announce } = useAnnounceText()\n\n useEffect(() => {\n const shouldAnnounceInstructions =\n status === statusResponse.SUCCESS &&\n !hasUserInteracted &&\n eligiblePlansCount > 1 &&\n // If transitionDelay is -1, animation is disabled, so no need to announce instructions\n transitionDelay !== -1\n\n if (shouldAnnounceInstructions) {\n const instructionText = intl.formatMessage({\n id: 'accessibility.animation-control-instructions',\n defaultMessage:\n \"Animation automatique des plans de paiement active. Survolez ou naviguez avec les flèches pour arrêter l'animation.\",\n })\n\n // Delay the announcement to avoid conflict with initial plan announcements\n const timer = setTimeout(() => {\n announce(instructionText, 2000)\n }, 1500)\n\n return () => clearTimeout(timer)\n }\n\n // Return undefined if condition is not met (no cleanup needed)\n return undefined\n }, [status, hasUserInteracted, eligiblePlansCount, intl, announce, transitionDelay])\n}\n","import { useEffect, useState } from 'react'\n\ntype Props = {\n current: number\n onHover: (current: number) => void\n onLeave: () => void\n}\n\nconst useButtonAnimation = (iterateValues: number[], transitionDelay: number): Props => {\n const [current, setCurrent] = useState(0)\n const [update, setUpdate] = useState(true)\n const [animationIterationCount, setAnimationIterationCount] = useState(1)\n // Respect user's motion preferences with fallback for tests\n const prefersReducedMotion =\n typeof window !== 'undefined' &&\n window.matchMedia &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches\n\n // Set minimum transition delay to 1 second, or -1 to disable animation\n const cappedTransitionDelay = transitionDelay < 0 ? -1 : Math.max(transitionDelay, 1000)\n\n useEffect(() => {\n let timeout: ReturnType<typeof setTimeout>\n let isMounted = true\n\n // Disable animation if user prefers reduced motion or delay is -1\n if (cappedTransitionDelay === -1 || prefersReducedMotion) {\n return\n }\n\n if (iterateValues.length !== 0) {\n // Ensure current is valid\n if (!iterateValues.includes(current) && update) setCurrent(iterateValues[0])\n // Stop the animation after one full cycle through all values\n if (animationIterationCount === iterateValues.length + 1) {\n setUpdate(false)\n }\n // Set up the timeout to change the current value\n timeout = setTimeout(() => {\n if (update && isMounted) {\n // Count iterations to stop after one full cycle\n setAnimationIterationCount((prev) => prev + 1)\n // Move to the next value, or loop back to the start\n setCurrent(\n iterateValues[\n iterateValues.includes(current)\n ? (iterateValues.indexOf(current) + 1) % iterateValues.length\n : 0\n ],\n )\n }\n }, cappedTransitionDelay)\n }\n // eslint-disable-next-line consistent-return\n return () => {\n isMounted = false\n clearTimeout(timeout)\n }\n }, [\n iterateValues,\n current,\n cappedTransitionDelay,\n update,\n prefersReducedMotion,\n animationIterationCount,\n ])\n\n return {\n current,\n onHover: (currentIndex: number) => {\n setCurrent(currentIndex)\n setUpdate(false)\n },\n onLeave: () => {\n setUpdate(true)\n },\n }\n}\nexport default useButtonAnimation\n","import { EligibilityPlan } from '@/types'\n\ntype Args = {\n suggestedPaymentPlan: number | number[]\n eligibilityPlans: EligibilityPlan[]\n}\n\n/**\n * It returns the **index** of the **first eligible plan** that matches the default installments count\n *\n * @param {number | number[]} suggestedPaymentPlan\n * @param {EligibilityPlan[]} eligibilityPlans\n * @returns number (index of the first eligible plan that matches the default installments count)\n */\nexport const getIndexOfActivePlan = ({ suggestedPaymentPlan, eligibilityPlans }: Args): number => {\n const suggestedPaymentPlanArray = Array.isArray(suggestedPaymentPlan)\n ? suggestedPaymentPlan\n : [suggestedPaymentPlan]\n\n let foundIndex = 0\n\n suggestedPaymentPlanArray.some((installmentsCount) => {\n const planFound = eligibilityPlans.findIndex(\n (plan) =>\n plan.installments_count === installmentsCount &&\n plan.eligible &&\n // Remove the PayLater plans from the plan to target, we will code a better solution later\n // To differentiate P1X from PayLater while using the `suggestedPaymentPlan` property.\n !plan.deferred_days &&\n !plan.deferred_months,\n )\n\n if (planFound !== -1) {\n foundIndex = planFound\n return true\n }\n\n return false\n })\n\n return foundIndex\n}\n","/**\n * Prefix classes to avoid name collisions.\n */\nconst prefix = 'alma-payment-plans'\n\n/**\n * Class names for the **payment plans** widget.\n * Those classes are intended to be used by the **merchant developer**.\n */\nconst STATIC_CUSTOMISATION_CLASSES = {\n container: `${prefix}-container`,\n eligibilityLine: `${prefix}-eligibility-line`,\n eligibilityOptions: `${prefix}-eligibility-options`,\n notEligibleOption: `${prefix}-not-eligible-option`,\n paymentInfo: `${prefix}-payment-info`,\n activeOption: `${prefix}-active-option`,\n knowMoreAction: `${prefix}-know-more-action`,\n}\n\nexport default STATIC_CUSTOMISATION_CLASSES\n","import React, { FunctionComponent, useEffect, useMemo, useRef, useState } from 'react'\n\nimport cx from 'classnames'\nimport { useIntl } from 'react-intl'\n\nimport { ApiConfig, Card, ConfigPlan, statusResponse } from '@/types'\nimport { AlmaLogo } from 'assets/almaLogo'\nimport Loader from 'components/Loader'\nimport { useAnimationInstructions } from 'hooks/useAnimationInstructions'\nimport { useAnnounceText } from 'hooks/useAnnounceText'\nimport useButtonAnimation from 'hooks/useButtonAnimation'\nimport useFetchEligibility from 'hooks/useFetchEligibility'\nimport { getIndexOfActivePlan } from 'utils/merchantOrderPreferences'\nimport {\n getPlanDescription,\n paymentPlanInfoText,\n paymentPlanShorthandName,\n} from 'utils/paymentPlanStrings'\nimport STATIC_CUSTOMISATION_CLASSES from 'Widgets//PaymentPlans/classNames.const'\nimport EligibilityModal from 'Widgets/EligibilityModal'\nimport s from 'Widgets/PaymentPlans/PaymentPlans.module.css'\n\ntype Props = {\n purchaseAmount: number\n apiData: ApiConfig\n configPlans?: ConfigPlan[]\n transitionDelay?: number\n customerBillingCountry?: string\n customerShippingCountry?: string\n hideIfNotEligible?: boolean\n monochrome?: boolean\n suggestedPaymentPlan?: number | number[]\n cards?: Card[]\n hideBorder?: boolean\n onModalClose?: (event: React.MouseEvent | React.KeyboardEvent) => void\n}\n\nconst DEFAULT_TRANSITION_TIME = 5500\n\n/**\n * PaymentPlanWidget - Main widget component that displays Alma payment plan options\n *\n * This component shows eligible payment plans in a compact widget format with:\n * - Automatic plan cycling animation\n * - Keyboard navigation between plans\n * - Screen reader announcements for accessibility\n * - Modal opening for detailed plan information\n */\nconst PaymentPlanWidget: FunctionComponent<Props> = ({\n apiData,\n configPlans,\n hideIfNotEligible,\n monochrome,\n purchaseAmount,\n suggestedPaymentPlan,\n cards,\n customerBillingCountry,\n customerShippingCountry,\n transitionDelay,\n hideBorder = false,\n onModalClose,\n}) => {\n const intl = useIntl()\n\n // Fetch eligibility data for all payment plans\n const [eligibilityPlans, status] = useFetchEligibility(\n purchaseAmount,\n apiData,\n configPlans,\n customerBillingCountry,\n customerShippingCountry,\n )\n\n // Memoized array of only eligible plans to avoid unnecessary re-renders\n const eligiblePlans = useMemo(\n () => eligibilityPlans.filter((plan) => plan.eligible),\n [eligibilityPlans],\n )\n\n // Determine which plan should be active initially based on merchant preferences\n const activePlanIndex = getIndexOfActivePlan({\n eligibilityPlans,\n suggestedPaymentPlan: suggestedPaymentPlan ?? 0,\n })\n\n // Check if merchant has specified a suggested payment plan\n const isSuggestedPaymentPlanSpecified = suggestedPaymentPlan !== undefined // 👈 The merchant decided to focus a tab\n\n // Modal state management\n const [isOpen, setIsOpen] = useState(false)\n const { announceText, announce } = useAnnounceText()\n const openModal = () => setIsOpen(true)\n const closeModal = (event: React.MouseEvent | React.KeyboardEvent) => {\n setIsOpen(false)\n onModalClose?.(event)\n }\n\n // Track if user has manually interacted with plans to stop automatic animation\n const [hasUserInteracted, setHasUserInteracted] = useState(false)\n\n // Memoized array of eligible plan indices for keyboard navigation\n const eligiblePlanKeys = useMemo(\n () =>\n eligibilityPlans.reduce<number[]>(\n (acc, plan, index) => (plan.eligible ? [...acc, index] : acc),\n [],\n ),\n [eligibilityPlans],\n )\n\n /**\n * Calculate the appropriate transition time based on merchant configuration\n * If merchant specify a suggestedPaymentPlan and no transition, we disable animation.\n * Otherwise, we set the transition delay specified by the merchant.\n * If none of those properties are specified, we set a default transition delay.\n * @returns {number} The transition time in milliseconds\n */\n const realTransitionTime = useMemo((): number => {\n if (isSuggestedPaymentPlanSpecified && !transitionDelay) {\n return -1 // Disable animation\n }\n return transitionDelay ?? DEFAULT_TRANSITION_TIME\n }, [transitionDelay, isSuggestedPaymentPlanSpecified])\n\n // Hook for managing plan cycling animation and user interactions\n const { current, onHover, onLeave } = useButtonAnimation(eligiblePlanKeys, realTransitionTime)\n\n // Refs for managing focus on plan buttons during keyboard navigation\n const buttonRefs = useRef<(HTMLButtonElement | null)[]>([])\n\n // Initialize button refs array when eligibility plans change\n useEffect(() => {\n buttonRefs.current = buttonRefs.current.slice(0, eligibilityPlans.length)\n }, [eligibilityPlans.length])\n\n // Announce plan changes to screen readers for accessibility\n useEffect(() => {\n if (eligibilityPlans[current] && status === statusResponse.SUCCESS) {\n const currentPlan = eligibilityPlans[current]\n\n const planDescription = getPlanDescription(currentPlan, intl)\n const announcementText = intl.formatMessage(\n {\n id: 'accessibility.plan-selection-changed',\n defaultMessage: 'Plan sélectionné : {planDescription}',\n },\n { planDescription },\n )\n\n announce(announcementText, 1000)\n }\n // Note: eligibilityPlans is intentionally excluded from dependencies to prevent render loops\n // since it's recreated on every render by useFetchEligibility\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [current, intl, status, announce])\n\n // Set initial active plan when API response is received and merchant has specified a suggestion\n useEffect(() => {\n // When API has given a response AND the merchant set an active plan by default.\n if (status === statusResponse.SUCCESS && isSuggestedPaymentPlanSpecified) {\n onHover(activePlanIndex) // We select the first active plan possible\n onLeave() // We need to call onLeave to reset the animation\n }\n // We intentionally exclude 'activePlanIndex', 'isSuggestedPaymentPlanSpecified', 'onHover', and 'onLeave'\n // because including them would cause the effect to re-run unnecessarily, leading to unwanted behavior.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [status])\n\n // Announce animation control instructions to screen readers on initial load\n useAnimationInstructions({\n status,\n hasUserInteracted,\n eligiblePlansCount: eligiblePlans.length,\n transitionDelay,\n })\n\n /**\n * Handle user hover interaction - stops animation permanently\n * @param index - Plan index to hover\n */\n const handleUserHover = (index: number) => {\n setHasUserInteracted(true)\n onHover(index)\n }\n\n /**\n * Handle user leave interaction - only restart animation if user hasn't interacted manually\n */\n const handleUserLeave = () => {\n if (!hasUserInteracted) {\n onLeave()\n }\n }\n\n /**\n * Navigate to the next or previous eligible plan and focus the corresponding button\n * Used for arrow key navigation between payment plans\n * @param direction - 'next' or 'prev' for navigation direction\n * @param currentIndex - Current plan index\n */\n const navigateToEligiblePlan = (direction: 'next' | 'prev', currentIndex: number) => {\n const currentEligibleIndex = eligiblePlanKeys.indexOf(currentIndex)\n\n if (currentEligibleIndex === -1) return\n\n let newEligibleIndex\n if (direction === 'next') {\n newEligibleIndex = currentEligibleIndex + 1\n if (newEligibleIndex >= eligiblePlanKeys.length) return\n } else {\n newEligibleIndex = currentEligibleIndex - 1\n if (newEligibleIndex < 0) return\n }\n\n const newPlanIndex = eligiblePlanKeys[newEligibleIndex]\n // Mark as user interaction to stop animation permanently\n setHasUserInteracted(true)\n onHover(newPlanIndex)\n\n // Focus the new button for keyboard users\n buttonRefs.current[newPlanIndex]?.focus()\n }\n\n /**\n * Navigate to first or last eligible plan\n * Used for Home/End key navigation\n * @param position - 'first' or 'last'\n */\n const navigateToEdgePlan = (position: 'first' | 'last') => {\n const planIndex =\n position === 'first' ? eligiblePlanKeys[0] : eligiblePlanKeys[eligiblePlanKeys.length - 1]\n // Mark as user interaction to stop animation permanently\n setHasUserInteracted(true)\n onHover(planIndex)\n buttonRefs.current[planIndex]?.focus()\n }\n\n /**\n * Convert a plan index to its position within the eligible plans array\n * Used for modal initialization to show the correct plan\n *\n * @param {number} planIndex - The index of the plan that the user has selected.\n * @returns The index of the planKey in the eligiblePlanKeys array.\n */\n const getIndexWithinEligiblePlans = (planIndex: number) => {\n const index = eligiblePlanKeys.findIndex((planKey) => planKey === planIndex)\n return index === -1 ? 0 : index\n }\n\n // Show loading state while fetching eligibility data\n if (status === statusResponse.PENDING) {\n return (\n <div className={cx(s.widgetContainer, s.pending)}>\n <Loader />\n </div>\n )\n }\n\n // Hide widget if no eligible plans and merchant wants to hide it, or if API failed\n if (\n (hideIfNotEligible && eligiblePlans.length === 0) ||\n eligibilityPlans.length === 0 ||\n status === statusResponse.FAILED\n ) {\n return null\n }\n\n /**\n * Handle opening the eligibility modal\n * Prevents default behavior and only opens if there are eligible plans\n */\n const handleOpenModal = (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>,\n ) => {\n e.preventDefault()\n if (eligiblePlans.length > 0) {\n openModal()\n }\n }\n\n return (\n <>\n {/* Main widget container with proper landmark structure for RGAA 12.6 */}\n <main\n role=\"main\"\n aria-label={intl.formatMessage({\n id: 'accessibility.payment-widget.main.aria-label',\n defaultMessage: 'Sélection des options de paiement Alma',\n })}\n className={cx(\n s.widgetContainer,\n {\n [s.hideBorder]: hideBorder,\n [s.monochrome]: monochrome,\n },\n STATIC_CUSTOMISATION_CLASSES.container,\n )}\n data-testid=\"widget-container\"\n >\n {/* Primary payment plan selection section */}\n <section\n aria-labelledby=\"payment-plans-title\"\n className={cx(s.primaryContainer, STATIC_CUSTOMISATION_CLASSES.eligibilityLine)}\n >\n {/* Screen reader only title for the payment plans section */}\n <h2 id=\"payment-plans-title\" className=\"sr-only\">\n {intl.formatMessage({\n id: 'accessibility.payment-plans.section-title',\n defaultMessage: 'Options de paiement disponibles',\n })}\n </h2>\n\n <button\n type=\"button\"\n onClick={handleOpenModal}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleOpenModal(e)\n }\n }}\n className={cx(\n s.knowMore,\n s.clickable,\n { [s.monochrome]: monochrome },\n STATIC_CUSTOMISATION_CLASSES.knowMoreAction,\n )}\n aria-label={intl.formatMessage({\n id: 'accessibility.payment-widget.open-button.aria-label',\n defaultMessage: 'Ouvrir les options de paiement Alma pour en savoir plus',\n })}\n aria-haspopup=\"dialog\"\n aria-describedby=\"payment-info-text\"\n >\n <AlmaLogo\n data-testid=\"Alma-Logo\"\n className={s.logo}\n color={monochrome ? 'var(--off-black)' : undefined}\n />\n </button>\n\n {/* Payment plans selection buttons */}\n <div\n className={cx(s.paymentPlans, STATIC_CUSTOMISATION_CLASSES.eligibilityOptions)}\n role=\"listbox\"\n aria-label={intl.formatMessage({\n id: 'accessibility.payment-options.listbox.aria-label',\n defaultMessage: 'Options de paiement disponibles',\n })}\n >\n {eligibilityPlans.map((eligibilityPlan, key) => {\n const isCurrent = key === current\n const isEligible = eligibilityPlan.eligible\n\n return (\n <button\n type=\"button\"\n key={`p${eligibilityPlan.installments_count}x-d+${eligibilityPlan.deferred_days}-m+${eligibilityPlan.deferred_months}`}\n // Mouse/touch interactions for plan selection\n onMouseEnter={() => handleUserHover(key)}\n onTouchStart={() => handleUserHover(key)}\n onMouseLeave={handleUserLeave}\n onBlur={handleUserLeave}\n onTouchEnd={handleUserLeave}\n // Focus handling for keyboard users\n onFocus={isEligible ? () => handleUserHover(key) : undefined}\n // Keyboard navigation between eligible plans\n onKeyDown={(e) => {\n if (!isEligible) return\n\n // Arrow navigation between eligible plans only\n if (e.key === 'ArrowLeft') {\n e.preventDefault()\n navigateToEligiblePlan('prev', key)\n } else if (e.key === 'ArrowRight') {\n e.preventDefault()\n navigateToEligiblePlan('next', key)\n } else if (e.key === 'Home') {\n e.preventDefault()\n navigateToEdgePlan('first')\n } else if (e.key === 'End') {\n e.preventDefault()\n navigateToEdgePlan('last')\n }\n }}\n // Click to select plan and open modal\n onClick={(e) => {\n e.stopPropagation()\n if (isEligible) {\n onHover(key)\n // Open modal if clicking on an eligible plan\n if (eligiblePlans.length > 0) {\n openModal()\n }\n }\n }}\n className={cx(s.plan, s.planButton, {\n [cx(s.active, STATIC_CUSTOMISATION_CLASSES.activeOption)]: isCurrent,\n [s.monochrome]: monochrome && isCurrent,\n [cx(s.notEligible, STATIC_CUSTOMISATION_CLASSES.notEligibleOption)]:\n !isEligible,\n })}\n // Accessibility attributes for screen readers\n role=\"option\"\n aria-selected={isCurrent}\n aria-describedby=\"payment-info-text\"\n aria-label={intl.formatMessage(\n {\n id: 'accessibility.payment-plan.option.aria-label',\n defaultMessage: 'Option de paiement {planDescription}',\n },\n {\n planDescription: getPlanDescription(eligibilityPlan, intl),\n },\n )}\n aria-disabled={!isEligible}\n tabIndex={isEligible ? 0 : -1}\n ref={(el) => {\n buttonRefs.current[key] = el\n }} // Assign ref for keyboard navigation focus management\n >\n {paymentPlanShorthandName(eligibilityPlan)}\n </button>\n )\n })}\n </div>\n </section>\n\n {/* Complementary information section */}\n <aside aria-labelledby=\"payment-info-title\" className={s.infoContainer}>\n {/* Screen reader only title for the information section */}\n <h3 id=\"payment-info-title\" className=\"sr-only\">\n {intl.formatMessage({\n id: 'accessibility.payment-info.section-title',\n defaultMessage: 'Informations sur le plan de paiement sélectionné',\n })}\n </h3>\n\n {/* Payment plan information text */}\n <div\n className={cx(\n s.info,\n {\n [cx(s.notEligible, STATIC_CUSTOMISATION_CLASSES.notEligibleOption)]:\n eligibilityPlans[current] && !eligibilityPlans[current].eligible,\n },\n STATIC_CUSTOMISATION_CLASSES.paymentInfo,\n )}\n id=\"payment-info-text\"\n >\n {eligibilityPlans.length !== 0 && paymentPlanInfoText(eligibilityPlans[current])}\n </div>\n </aside>\n </main>\n\n {/* Eligibility modal for detailed plan information */}\n {isOpen && (\n <EligibilityModal\n initialPlanIndex={getIndexWithinEligiblePlans(current)}\n onClose={closeModal}\n eligibilityPlans={eligiblePlans}\n status={status}\n cards={cards}\n />\n )}\n\n {/* Screen reader announcement area for accessibility */}\n <div role=\"alert\" aria-live=\"assertive\" className={s.announceText}>\n {announceText}\n </div>\n </>\n )\n}\n\nexport default PaymentPlanWidget\n","import React from 'react'\n\nimport { createRoot, Root } from 'react-dom/client'\n\nimport { ApiMode } from '@/consts'\nimport {\n Locale,\n ModalOptions,\n PaymentPlanWidgetOptions,\n WidgetNames,\n WidgetOptions,\n widgetTypes,\n} from '@/types'\nimport IntlProvider from 'intl/IntlProvider'\nimport { ModalContainer } from 'Widgets/EligibilityModal/ModalContainer'\nimport PaymentPlanWidget from 'Widgets/PaymentPlans'\n\nexport type AddReturnType =\n | {\n open: () => void\n close: (event: React.MouseEvent | React.KeyboardEvent) => void\n }\n | undefined\n\ntype ApiData = { domain: ApiMode; merchantId: string }\n\nconst rootMap: Map<Element, Root> = new Map()\n\nconst addWidget = (\n apiData: ApiData,\n widget: WidgetNames,\n options: WidgetOptions,\n): AddReturnType => {\n const containerDiv = document.querySelector(options.container)\n\n if (containerDiv) {\n const existingRoot = rootMap.get(containerDiv)\n if (existingRoot) {\n existingRoot.unmount()\n rootMap.delete(containerDiv)\n }\n }\n\n if (widget === widgetTypes.PaymentPlans) {\n const {\n purchaseAmount,\n plans,\n transitionDelay,\n hideIfNotEligible,\n hideBorder = false,\n monochrome = true,\n suggestedPaymentPlan,\n customerBillingCountry,\n customerShippingCountry,\n locale = Locale.en,\n cards,\n onModalClose,\n } = options as PaymentPlanWidgetOptions\n\n if (containerDiv) {\n const root = createRoot(containerDiv)\n root.render(\n <IntlProvider locale={locale}>\n <PaymentPlanWidget\n apiData={apiData}\n configPlans={plans}\n hideIfNotEligible={hideIfNotEligible}\n monochrome={monochrome}\n purchaseAmount={purchaseAmount}\n suggestedPaymentPlan={suggestedPaymentPlan}\n cards={cards}\n customerBillingCountry={customerBillingCountry}\n customerShippingCountry={customerShippingCountry}\n transitionDelay={transitionDelay}\n hideBorder={hideBorder}\n onModalClose={onModalClose}\n />\n </IntlProvider>,\n )\n rootMap.set(containerDiv, root)\n }\n }\n\n if (widget === widgetTypes.Modal) {\n const {\n clickableSelector,\n purchaseAmount,\n plans,\n locale = Locale.en,\n customerBillingCountry,\n customerShippingCountry,\n cards,\n onClose,\n } = options as ModalOptions\n\n const close = (event: React.MouseEvent | React.KeyboardEvent) => {\n if (!containerDiv) return\n const root = rootMap.get(containerDiv)\n if (root) {\n root.unmount()\n rootMap.delete(containerDiv)\n }\n onClose?.(event)\n }\n\n const renderModal = () => {\n if (containerDiv) {\n const root = createRoot(containerDiv)\n root.render(\n <IntlProvider locale={locale}>\n <ModalContainer\n purchaseAmount={purchaseAmount}\n apiData={apiData}\n configPlans={plans}\n customerBillingCountry={customerBillingCountry}\n customerShippingCountry={customerShippingCountry}\n onClose={close}\n cards={cards}\n />\n </IntlProvider>,\n )\n rootMap.set(containerDiv, root)\n }\n }\n\n if (clickableSelector) {\n document.querySelector(clickableSelector)?.addEventListener('click', renderModal, false)\n }\n\n return {\n open: renderModal,\n close,\n }\n }\n\n return undefined\n}\n\nexport const WidgetsController = (apiData: ApiData) => ({\n add: (widget: WidgetNames, options: WidgetOptions) => addWidget(apiData, widget, options),\n})\n","export const SANDBOX_API_URL = 'https://api.sandbox.getalma.eu'\nexport const LIVE_API_URL = 'https://api.getalma.eu'\n\nexport enum ApiMode {\n LIVE = 'https://api.getalma.eu',\n TEST = 'https://api.sandbox.getalma.eu',\n}\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { ApiMode } from '@/consts'\nimport { widgetTypes } from '@/types'\nimport '@/main.css'\nimport * as utils from '@/utils'\nimport 'utils/polyfills' // todo Looks like legacy code, needs to be tested on multiple browsers (old ones too)\nimport { WidgetsController } from '@/widgets_controller'\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Widgets {\n export function initialize(merchantId: string, mode: ApiMode) {\n return WidgetsController({ domain: mode, merchantId })\n }\n export const PaymentPlans = widgetTypes.PaymentPlans\n export const Modal = widgetTypes.Modal\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Utils {\n export const priceToCents = utils.priceToCents\n export const priceFromCents = utils.priceFromCents\n export const formatCents = utils.formatCents\n}\n\nexport { ApiMode } from '@/consts'\n"],"names":["widgetTypes","statusResponse","Locale","priceToCents","price","priceFromCents","cents","formatCents","desktopWidth","isP1X","plan","ElementProto","selector","element","elements","index","window","reason","wsRE","wsIndex","checkIfValidClassListEntry","O","V","document","Object","hasOwnProp","defineProperty","allowTokenListConstruction","skipPropChange","DOMTokenList","a","v","argLen","val","ele","proto","i","Len","resStr","is","whenPropChanges","evt","prop","target","protoObjProto","strval","tokens","resTokenList","oldLen","cI","cLen","sub","innerI","polyfillClassList","protoObj","toks","newVal","e","DOMTokenListProto","testClass","NullCheck","n","oldValue","oldToken","newToken","value","f","tArg","that","l","u","r","o","c","s","h","p","y","w","d","g","_","t","m","b","k","x","S","C","M","$","z","I","P","q","A","L","B","H","T","j","F","D","N","E","G","J","K","R","U","W","Z","Y","Q","X","nn","tn","en","rn","un","on","cn","ln","fn","an","sn","hn","vn","dn","pn","mn","yn","_n","bn","Sn","gn","En","Cn","xn","Rn","createRoot","container","children","render","unmountComponentAtNode","extendStatics","__extends","__","__assign","__rest","__spreadArray","to","from","pack","ar","memoize","options","cache","cacheDefault","serializer","serializerDefault","strategy","strategyDefault","isPrimitive","monadic","arg","cacheKey","computedValue","variadic","args","assemble","context","serialize","strategyVariadic","ObjectWithoutPrototypeCache","key","strategies","invariant","condition","message","Err","_a","_i","ErrorKind","TYPE","SKELETON_TYPE","isLiteralElement","el","isArgumentElement","isNumberElement","isDateElement","isTimeElement","isSelectElement","isPluralElement","isPoundElement","isTagElement","isNumberSkeleton","isDateTimeSkeleton","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","result","match","len","WHITE_SPACE_REGEX","parseNumberSkeletonFromString","stringTokens","stringTokens_1","stringToken","stemAndOptions","stem","options_1","option","icuUnitToEcma","unit","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","str","g1","g2","parseSign","parseConciseScientificAndEngineeringStem","signDisplay","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens_1","token","all","g3","g4","g5","conciseScientificAndEngineeringOpts","timeData","getBestPattern","locale","skeletonCopy","patternPos","patternChar","extraLength","hourLen","dayPeriodLen","dayPeriodChar","hourChar","getDefaultHourSymbolFromLocale","hourCycle","languageTag","regionTag","hourCycles","SPACE_SEPARATOR_START_REGEX","SPACE_SEPARATOR_END_REGEX","createLocation","start","end","hasNativeStartsWith","hasNativeFromCodePoint","hasNativeFromEntries","hasNativeCodePointAt","hasTrimStart","hasTrimEnd","hasNativeIsSafeInteger","isSafeInteger","REGEX_SUPPORTS_U_AND_Y","re","RE","startsWith","search","position","fromCodePoint","codePoints","length","code","fromEntries","entries","obj","entries_1","codePointAt","size","first","second","trimStart","trimEnd","flag","matchIdentifierAtIndex","IDENTIFIER_PREFIX_RE_1","_isWhiteSpace","_isPatternSyntax","Parser","nestingLevel","parentArgType","expectingCloseTag","char","_isAlpha","startPosition","tagName","childrenResult","endTagStartPosition","closingTagNameStartPosition","closingTagName","startOffset","_isPotentialElementNameChar","parseQuoteResult","parseUnquotedResult","parseLeftAngleResult","location","_isAlphaOrSlash","ch","openingBracePosition","startingPosition","endOffset","endPosition","typeStartPosition","argType","typeEndPosition","styleAndLocation","styleStartPosition","style","styleLocation","argCloseResult","location_1","dateTimePattern","type","typeEndPosition_1","identifierAndLocation","pluralOffset","optionsResult","location_2","nestedBraces","apostrophePosition","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selectorLocation","fragmentResult","expectNumberError","invalidNumberError","sign","hasDigits","decimal","offset","kind","prefix","pattern","currentOffset","targetOffset","nextCode","codepoint","pruneLocation","els","parse","opts","error","ErrorCode","FormatError","_super","msg","originalMessage","_this","InvalidValueError","variableId","InvalidValueTypeError","MissingValueError","PART_TYPE","mergeLiteral","parts","part","lastPart","isFormatXMLElementFn","formatToParts","locales","formatters","formats","values","currentPluralValue","els_1","varName","value_1","formatFn","chunks","rule","mergeConfig","c1","c2","mergeConfigs","defaultConfig","configs","createFastMemoizeCache","store","createDefaultFormatters","IntlMessageFormat","overrideFormats","parseOpts","supportedLocales","IntlErrorCode","IntlError","exception","err","UnsupportedFormatterError","InvalidConfigError","MissingDataError","IntlFormatError","MessageFormatError","descriptor","MissingTranslationError","filterProps","props","allowlist","defaults","filtered","name","defaultErrorHandler","defaultWarnHandler","warning","DEFAULT_INTL_CONFIG","createIntlCache","createFormatters","RelativeTimeFormat","ListFormat","DisplayNames","getDateTimeFormat","getNumberFormat","getPluralRules","getNamedFormat","onError","formatType","format","setTimeZoneInOptions","timeZone","deepMergeOptions","opts1","opts2","keys","deepMergeFormatsAndSetTimeZone","f1","mfFormats","formatMessage","state","messageDescriptor","messages","defaultLocale","defaultFormats","fallbackOnEmptyString","defaultRichTextElements","msgId","defaultMessage","id","formatter","DATE_TIME_FORMAT_OPTIONS","getFormatter","filteredOptions","formatDate","config","_b","date","formatTime","formatDateTimeRange","formatDateToParts","formatTimeToParts","DISPLAY_NAMES_OPTONS","formatDisplayName","getDisplayNames","LIST_FORMAT_OPTIONS","now","generateToken","formatList","getListFormat","results","formatListToParts","richValues_1","serializedValues","PLURAL_FORMAT_OPTIONS","formatPlural","RELATIVE_TIME_FORMAT_OPTIONS","getRelativeTimeFormat","formatRelativeTime","NUMBER_FORMAT_OPTIONS","formatNumber","formatNumberToParts","messagesContainString","firstMessage","verifyConfigMessages","createIntl","resolvedConfig","invariantIntlContext","intl","CORE_DEFAULT_INTL_CONFIG","React.Fragment","assignUniqueKeysToParts","formatXMLElementFn","React.Children","shallowEqual","objA","objB","aKeys","bKeys","reactIs_production_min","reactIsModule","require$$0","reactIs","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","IntlContext","React.createContext","IntlProvider","Provider","Context","useIntl","React.useContext","DisplayName","DisplayNameParts","createFormattedDateTimePartsComponent","ComponentParts","formatProps","formattedParts","createFormattedComponent","Component","formattedValue","Text","React.createElement","assignUniqueKeysToFormatXMLElementFnArgument","acc","rawValues","rest","coreFormatMessage","rawDefaultRichTextElements","coreIntl","coreCreateIntl","processIntlConfig","prevConfig","React.PureComponent","areEqual","prevProps","nextProps","otherProps","nextValues","nextOtherProps","FormattedMessage","description","ignoreTag","nodes","MemoizedFormattedMessage","React.memo","FormattedDate","FormattedNumber","getTranslationsByLocale","messagesFR","messagesES","messagesIT","messagesDE","messagesPT","messagesNL","messagesEN","React","hashStringForStorage","isMoreThanOneHourAgo","useSessionStorage","timestamp","stringData","params","purchaseAmount","plans","customerBillingCountry","customerShippingCountry","domain","merchantId","stringAmount","stringPlans","buildVersion","define_process_env_default","fetchFromApi","data","headers","url","__async","__spreadValues","isPlanEligible","configPlan","getPaymentPlanBoundaries","purchaseAmountConstraints","filterEligibility","eligibilities","configPlans","eligibilityDeferredDays","relatedConfigPlan","configPlanDeferredDays","__spreadProps","useFetchEligibility","eligibility","setEligibility","useState","status","setStatus","getCache","setCache","createKey","clearCache","currentCache","lastCacheTimestamp","shouldInvalidate","configInstallments","useEffect","billingAddress","shippingAddress","res","cssMediaquery","matchQuery","parseQuery","RE_MEDIA_QUERY","RE_MQ_EXPRESSION","RE_MQ_FEATURE","RE_LENGTH_UNIT","RE_RESOLUTION_UNIT","mediaQuery","query","inverse","typeMatch","expressionsMatch","expression","feature","modifier","expValue","toPx","toDpi","toDecimal","captures","expressions","parsed","ratio","numbers","resolution","units","staticMatch","dynamicMatch","Mql","forceStatic","self","mql","update","addListener","removeListener","dispose","listener","matchMedia","matchmediaquery","uppercasePattern","msPattern","toHyphenLower","hyphenateStyleName","hName","shallowEqualObjects","ReactPropTypesSecret","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","propTypesModule","require$$2","stringOrNumber","PropTypes","types","featureMatchers","__objRest","features","mq","negate","cond","keyVal","realKey","hyphenate","join","conds","toQuery","rules","createContext","makeQuery","settings","hyphenateKeys","useIsUpdate","ref","useRef","useDevice","deviceFromProps","deviceFromContext","useContext","getDevice","device","setDevice","newDevice","useQuery","getQuery","setQuery","newQuery","useMatchMedia","getMatchMedia","setMq","isUpdate","newMq","useMatches","matches","setMatches","updateMatches","ev","useMediaQuery","onChange","deviceSettings","hasOwn","classNames","classes","appendClass","parseValue","newClass","module","LoadingIndicator","className","cx","root","isOn","scrollbarSize","scrollTop","getScrollbarSize","doc","dummyScroller","hasScrollbar","off","toggle","noScroll","exports","findTabbableDescendants","DISPLAY_NONE","DISPLAY_CONTENTS","tabbableNode","isNotOverflowing","hidesContents","zeroSize","displayValue","visible","parentElement","rootNode","focusable","isTabIndexNotNaN","nodeName","tabbable","tabIndex","isTabIndexNaN","descendants","finished","focusManager","resetState","log","handleBlur","handleFocus","markForFocusLater","returnFocus","popWithoutFocus","setupScopedFocus","teardownScopedFocus","_tabbable","_tabbable2","_interopRequireDefault","focusLaterElements","modalElement","needToFocus","preventScroll","toFocus","scopeTab","getActiveElement","node","event","shiftKey","head","tail","activeElement","checkSafari","isSafariDesktop","warning_1","canUseDOM","ExecutionEnvironment","safeHTMLElement","_exenv","_exenv2","EE","SafeHTMLElement","ariaAppHider","ariaAppHider$1","assertNodeList","setElement","validateElement","hide","show","documentNotReadyOrSSRTesting","_warning","_warning2","_safeHTMLElement","require$$1","globalElement","nodeList","useElement","appElement","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","classList","htmlClassList","docBodyClassList","removeClass","at","cls","htmlElement","body","_cls","incrementReference","poll","decrementReference","trackClass","classListRef","untrackClass","classString","portalOpenInstances_1","portalOpenInstances$1","_classCallCheck","instance","Constructor","PortalOpenInstances","openInstance","callback","eventType","subscriber","portalOpenInstances","bodyTrap_1","bodyTrap$1","_portalOpenInstances","_portalOpenInstances2","before","after","instances","_arr","item","_arr2","_i2","check","focusContent","bodyTrap","openInstances","_extends","source","_typeof","_createClass","defineProperties","protoProps","staticProps","_react","_propTypes","_propTypes2","_focusManager","_interopRequireWildcard","_scopeTab","require$$3","_scopeTab2","_ariaAppHider","require$$4","_classList","require$$5","require$$6","_safeHTMLElement2","require$$7","newObj","_possibleConstructorReturn","call","_inherits","subClass","superClass","CLASS_NAMES","isTabKey","isEscKey","ariaHiddenInstances","ModalPortal","_Component","overlay","content","_this$props","ariaHideApp","htmlOpenClassName","bodyOpenClassName","parentSelector","parentDocument","closesAt","which","additional","items","prevState","_props","_props2","overlayClassName","defaultStyles","contentStyles","overlayStyles","overlayProps","contentProps","contentElement","componentWillMount","componentWillReceiveProps","updater","componentWillUpdate","nextState","polyfill","prototype","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","Modal_1","_react2","_reactDom","_reactDom2","_ModalPortal","_ModalPortal2","_reactLifecyclesCompat","portalClassName","isReact16","createHTMLElement","getCreatePortal","getParentElement","Modal","_ref","_temp","_ret","_len","_key","parent","createPortal","portal","prevParent","nextParent","isOpen","Modal$1","contentEl","Modal$2","_Modal","_Modal2","CrossIcon","color","STATIC_CUSTOMISATION_CLASSES","ControlledModal","_c","onClose","contentClassName","scrollable","SkipLinks","skipLinks","handleSkipLinkClick","href","targetId","targetElement","labelId","millisecondsInSecond","constructFromSymbol","constructFrom","toDate","argument","normalizeDates","dates","normalize","startOfDay","_date","constructNow","isSameDay","laterDate","earlierDate","dateLeft_","dateRight_","isToday","secondsToMilliseconds","seconds","paymentPlanShorthandName","payment","deferredDays","deferredMonths","installmentsCount","paymentPlanShorthandText","withNoFee","paymentPlanInfoText","eligible","minAmount","maxAmount","paymentPlan","deferredDaysCount","areInstallmentsOfSameAmount","installment","getPlanDescription","EligibilityPlansButtons","eligibilityPlans","currentPlanIndex","setCurrentPlanIndex","buttonRefs","shouldFocusRef","navigateToPlan","newIndex","eligibilityPlan","Installment","TotalBlock","currentPlan","total","creditCost","TAEG","customerFees","isCredit","firstInstallmentAmount","totalWithoutFirstInstallment","_f","_e","_d","Schedule","AlmaLogo","AmexCard","CbCard","MasterCard","VisaCard","Cards","cards","uniqueCards","card","StrongText","Info","isCurrentPlanP1X","Title","isSomePlanDeferred","DesktopModal","MobileModal","EligibilityModal","initialPlanIndex","ModalComponent","eligiblePlans","ModalContainer","apiData","Loader","useAnnounceText","announceText","setAnnounceText","timeoutRef","announce","useCallback","text","clearDelay","clearAnnouncement","useAnimationInstructions","hasUserInteracted","eligiblePlansCount","transitionDelay","instructionText","timer","useButtonAnimation","iterateValues","current","setCurrent","setUpdate","animationIterationCount","setAnimationIterationCount","prefersReducedMotion","cappedTransitionDelay","timeout","isMounted","prev","currentIndex","getIndexOfActivePlan","suggestedPaymentPlan","suggestedPaymentPlanArray","foundIndex","planFound","DEFAULT_TRANSITION_TIME","PaymentPlanWidget","hideIfNotEligible","monochrome","hideBorder","onModalClose","useMemo","activePlanIndex","isSuggestedPaymentPlanSpecified","setIsOpen","openModal","closeModal","setHasUserInteracted","eligiblePlanKeys","realTransitionTime","onHover","onLeave","planDescription","announcementText","handleUserHover","handleUserLeave","navigateToEligiblePlan","direction","currentEligibleIndex","newEligibleIndex","newPlanIndex","navigateToEdgePlan","planIndex","getIndexWithinEligiblePlans","planKey","handleOpenModal","isCurrent","isEligible","rootMap","addWidget","widget","containerDiv","existingRoot","clickableSelector","close","renderModal","WidgetsController","ApiMode","Widgets","initialize","mode","Utils","utils.priceToCents","utils.priceFromCents","utils.formatCents"],"mappings":"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CO,EAAM,IAAI,EACzFK,IACAnC,EAAStD,EAASA,EAAS,CAAE,EAAEsD,CAAM,EAAGmC,CAAmC,EAEvF,CACI,OAAOnC,CACX,CCzTO,IAAIoC,GAAW,CAClB,MAAO,CACH,IACA,GACH,EACD,IAAO,CACH,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,KACA,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,GACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,KACA,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,KACA,KACA,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,GAAM,CACF,IACA,KACA,GACH,EACD,GAAM,CACF,IACA,KACA,KACA,GACH,EACD,GAAM,CACF,IACA,IACH,EACD,GAAM,CACF,IACA,IACA,KACA,IACH,EACD,GAAM,CACF,IACA,KACA,IACA,IACH,EACD,GAAM,CACF,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,SAAU,CACN,IACA,KACA,KACA,GACH,EACD,QAAS,CACL,IACA,IACA,IACH,EACD,SAAU,CACN,IACA,KACA,IACA,IACH,EACD,QAAS,CACL,IACA,KACA,IACA,IACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,QAAS,CACL,IACA,KACA,IACA,IACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,QAAS,CACL,IACA,IACA,KACA,IACH,EACD,QAAS,CACL,IACA,IACA,IACH,EACD,QAAS,CACL,IACA,IACA,IACH,EACD,QAAS,CACL,KACA,KACA,IACA,GACH,EACD,QAAS,CACL,KACA,IACA,GACH,EACD,QAAS,CACL,IACA,IACA,IACH,EACD,QAAS,CACL,IACA,IACA,IACH,EACD,QAAS,CACL,KACA,IACA,GACH,EACD,QAAS,CACL,KACA,IACA,GACH,EACD,QAAS,CACL,KAC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,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACLA,GAAK,OAAUA,GAAK,OACrBA,IAAM,OACNA,IAAM,OACNA,IAAM,O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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,51,52,53,54,55,56,57,58,59,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,80,81,82,83,84,85,86,87,88]}