rebill-web-components-sdk 1.13.7-beta.1 → 1.13.7

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":"i18n.service-mf_l7h7q.js","sources":["node_modules/.pnpm/i18next@25.6.0/node_modules/i18next/dist/esm/i18next.js","node_modules/.pnpm/i18next-browser-languagedetector@8.2.0/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","node_modules/.pnpm/@stencil+store@2.2.0_@stencil+core@4.38.1/node_modules/@stencil/store/dist/index.js","src/models/enums/currency.enum.ts","src/models/enums/payment-methods.enum.ts","src/models/enums/session.enum.ts","src/models/countries.model.ts","src/utils/country-code-mapper.ts","src/utils/currency-formatter.ts","src/models/session.model.ts","src/store/session.store.ts","src/i18n/locales/en.ts","src/i18n/locales/es.ts","src/i18n/locales/pt.ts","src/i18n/i18n.config.ts","src/i18n/i18n.service.ts"],"sourcesContent":["const isString = obj => typeof obj === 'string';\nconst defer = () => {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nconst makeString = object => {\n if (object == null) return '';\n return '' + object;\n};\nconst copy = (a, s, t) => {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || isString(object);\nconst getLastOfPath = (object, path, Empty) => {\n const stack = !isString(path) ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nconst setPath = (object, path, newValue) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last?.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n};\nconst pushPath = (object, path, newValue, concat) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n};\nconst getPath = (object, path) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n if (!Object.prototype.hasOwnProperty.call(obj, k)) return undefined;\n return obj[k];\n};\nconst getPathWithDefaults = (data, defaultData, key) => {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n};\nconst deepExtend = (target, source, overwrite) => {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (isString(target[prop]) || target[prop] instanceof String || isString(source[prop]) || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n};\nconst regexEscape = str => str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\nvar _entityMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n '/': '&#x2F;'\n};\nconst escape = data => {\n if (isString(data)) {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n};\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nconst looksLikeObjectPath = (key, nsSeparator, keySeparator) => {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n};\nconst deepFind = (obj, path, keySeparator = '.') => {\n if (!obj) return undefined;\n if (obj[path]) {\n if (!Object.prototype.hasOwnProperty.call(obj, path)) return undefined;\n return obj[path];\n }\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n};\nconst getCleanedCode = code => code?.replace('_', '-');\n\nconst consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n console?.[type]?.apply?.(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger, options = {}) {\n this.init(concreteLogger, options);\n }\n init(concreteLogger, options = {}) {\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log(...args) {\n return this.forward(args, 'log', '', true);\n }\n warn(...args) {\n return this.forward(args, 'warn', '', true);\n }\n error(...args) {\n return this.forward(args, 'error', '');\n }\n deprecate(...args) {\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (isString(args[0])) args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event, ...args) {\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data, options = {\n ns: ['translation'],\n defaultNS: 'translation'\n }) {\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key, options = {}) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (isString(key) && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || !isString(key)) return result;\n return deepFind(this.data?.[lng]?.[ns], key, keySeparator);\n }\n addResource(lng, ns, key, value, options = {\n silent: false\n }) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources, options = {\n silent: false\n }) {\n for (const m in resources) {\n if (isString(resources[m]) || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite, options = {\n silent: false,\n skipCopy: false\n }) {\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n value = this.processors[processor]?.process(value, key, options, translator) ?? value;\n });\n return value;\n }\n};\n\nconst PATH_KEY = Symbol('i18next/PATH_KEY');\nfunction createProxy() {\n const state = [];\n const handler = Object.create(null);\n let proxy;\n handler.get = (target, key) => {\n proxy?.revoke?.();\n if (key === PATH_KEY) return state;\n state.push(key);\n proxy = Proxy.revocable(target, handler);\n return proxy.proxy;\n };\n return Proxy.revocable(Object.create(null), handler).proxy;\n}\nfunction keysFromSelector(selector, opts) {\n const {\n [PATH_KEY]: path\n } = selector(createProxy());\n return path.join(opts?.keySeparator ?? '.');\n}\n\nconst checkedLoadedFor = {};\nconst shouldHandleAsObject = res => !isString(res) && typeof res !== 'boolean' && typeof res !== 'number';\nclass Translator extends EventEmitter {\n constructor(services, options = {}) {\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key, o = {\n interpolation: {}\n }) {\n const opt = {\n ...o\n };\n if (key == null) return false;\n const resolved = this.resolve(key, opt);\n if (resolved?.res === undefined) return false;\n const isObject = shouldHandleAsObject(resolved.res);\n if (opt.returnObjects === false && isObject) {\n return false;\n }\n return true;\n }\n extractFromKey(key, opt) {\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n let namespaces = opt.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !opt.keySeparator && !this.options.userDefinedNsSeparator && !opt.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n translate(keys, o, lastKey) {\n let opt = typeof o === 'object' ? {\n ...o\n } : o;\n if (typeof opt !== 'object' && this.options.overloadTranslationOptionHandler) {\n opt = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof opt === 'object') opt = {\n ...opt\n };\n if (!opt) opt = {};\n if (keys == null) return '';\n if (typeof keys === 'function') keys = keysFromSelector(keys, {\n ...this.options,\n ...opt\n });\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = opt.returnDetails !== undefined ? opt.returnDetails : this.options.returnDetails;\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], opt);\n const namespace = namespaces[namespaces.length - 1];\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const lng = opt.lng || this.language;\n const appendNamespaceToCIMode = opt.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng?.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, opt);\n let res = resolved?.res;\n const resUsedKey = resolved?.usedKey || key;\n const resExactUsedKey = resolved?.exactUsedKey || key;\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = opt.joinArrays !== undefined ? opt.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const hasDefaultValue = Translator.hasDefaultValue(opt);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, opt) : '';\n const defaultValueSuffixOrdinalFallback = opt.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const defaultValue = needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] || opt[`defaultValue${defaultValueSuffix}`] || opt[`defaultValue${defaultValueSuffixOrdinalFallback}`] || opt.defaultValue;\n let resForObjHndl = res;\n if (handleAsObjectInI18nFormat && !res && hasDefaultValue) {\n resForObjHndl = defaultValue;\n }\n const handleAsObject = shouldHandleAsObject(resForObjHndl);\n const resType = Object.prototype.toString.apply(resForObjHndl);\n if (handleAsObjectInI18nFormat && resForObjHndl && handleAsObject && noObject.indexOf(resType) < 0 && !(isString(joinArrays) && Array.isArray(resForObjHndl))) {\n if (!opt.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, resForObjHndl, {\n ...opt,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(resForObjHndl);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in resForObjHndl) {\n if (Object.prototype.hasOwnProperty.call(resForObjHndl, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n if (hasDefaultValue && !res) {\n copy[m] = this.translate(deepKey, {\n ...opt,\n defaultValue: shouldHandleAsObject(defaultValue) ? defaultValue[m] : undefined,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n } else {\n copy[m] = this.translate(deepKey, {\n ...opt,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n }\n if (copy[m] === deepKey) copy[m] = resForObjHndl[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && isString(joinArrays) && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, opt, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = opt.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...opt,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, opt.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(opt.lng || this.language);\n } else {\n lngs.push(opt.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, opt);\n } else if (this.backendConnector?.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, opt);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, opt);\n if (needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, opt[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, opt, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) {\n res = `${namespace}${nsSeparator}${key}`;\n }\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}${nsSeparator}${key}` : key, usedDefault ? res : undefined, opt);\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, opt, resolved, lastKey) {\n if (this.i18nFormat?.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...opt\n }, opt.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!opt.skipInterpolation) {\n if (opt.interpolation) this.interpolator.init({\n ...opt,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...opt.interpolation\n }\n }\n });\n const skipOnVariables = isString(res) && (opt?.interpolation?.skipOnVariables !== undefined ? opt.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = opt.replace && !isString(opt.replace) ? opt.replace : opt;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, opt.lng || this.language || resolved.usedLng, opt);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) opt.nest = false;\n }\n if (!opt.lng && resolved && resolved.res) opt.lng = this.language || resolved.usedLng;\n if (opt.nest !== false) res = this.interpolator.nest(res, (...args) => {\n if (lastKey?.[0] === args[0] && !opt.context) {\n this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return this.translate(...args, key);\n }, opt);\n if (opt.interpolation) this.interpolator.reset();\n }\n const postProcess = opt.postProcess || this.options.postProcess;\n const postProcessorNames = isString(postProcess) ? [postProcess] : postProcess;\n if (res != null && postProcessorNames?.length && opt.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(opt)\n },\n ...opt\n } : opt, this);\n }\n return res;\n }\n resolve(keys, opt = {}) {\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (isString(keys)) keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, opt);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const needsContextHandling = opt.context !== undefined && (isString(opt.context) || typeof opt.context === 'number') && opt.context !== '';\n const codes = opt.lngs ? opt.lngs : this.languageUtils.toResolveHierarchy(opt.lng || this.language, opt.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils?.hasLoadedNamespace && !this.utils?.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat?.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, opt);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, opt.count, opt);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(key + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator || '_'}${opt.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(contextKey + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, opt);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key, options = {}) {\n if (this.i18nFormat?.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails(options = {}) {\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && !isString(options.replace);\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (isString(code) && code.indexOf('-') > -1) {\n let formattedCode;\n try {\n formattedCode = Intl.getCanonicalLocales(code)[0];\n } catch (e) {}\n if (formattedCode && this.options.lowerCaseLng) {\n formattedCode = formattedCode.toLowerCase();\n }\n if (formattedCode) return formattedCode;\n if (this.options.lowerCaseLng) {\n return code.toLowerCase();\n }\n return code;\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngScOnly = this.getScriptPartFromCode(code);\n if (this.isSupportedCode(lngScOnly)) return found = lngScOnly;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (isString(fallbacks)) fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes((fallbackCode === false ? [] : fallbackCode) || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (isString(code) && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (isString(code)) {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nconst dummyRule = {\n select: count => count === 1 ? 'one' : 'other',\n resolvedOptions: () => ({\n pluralCategories: ['one', 'other']\n })\n};\nclass PluralResolver {\n constructor(languageUtils, options = {}) {\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.pluralRulesCache = {};\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n clearCache() {\n this.pluralRulesCache = {};\n }\n getRule(code, options = {}) {\n const cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n const type = options.ordinal ? 'ordinal' : 'cardinal';\n const cacheKey = JSON.stringify({\n cleanedCode,\n type\n });\n if (cacheKey in this.pluralRulesCache) {\n return this.pluralRulesCache[cacheKey];\n }\n let rule;\n try {\n rule = new Intl.PluralRules(cleanedCode, {\n type\n });\n } catch (err) {\n if (!Intl) {\n this.logger.error('No Intl support, please use an Intl polyfill!');\n return dummyRule;\n }\n if (!code.match(/-|_/)) return dummyRule;\n const lngPart = this.languageUtils.getLanguagePartFromCode(code);\n rule = this.getRule(lngPart, options);\n }\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n }\n needsPlural(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n return rule?.resolvedOptions().pluralCategories.length > 1;\n }\n getPluralFormsOfKey(code, key, options = {}) {\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n if (!rule) return [];\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n getSuffix(code, count, options = {}) {\n const rule = this.getRule(code, options);\n if (rule) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return this.getSuffix('dev', count, options);\n }\n}\n\nconst deepFindWithDefaults = (data, defaultData, key, keySeparator = '.', ignoreJSONStructure = true) => {\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && isString(key)) {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n};\nconst regexSafe = val => val.replace(/\\$/g, '$$$$');\nclass Interpolator {\n constructor(options = {}) {\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options?.interpolation?.format || (value => value);\n this.init(options);\n }\n init(options = {}) {\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp?.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}((?:[^()\"']+|\"[^\"]*\"|'[^']*'|\\\\((?:[^()]|\"[^\"]*\"|'[^']*')*\\\\))*?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options?.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options?.interpolation?.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = isString(temp) ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (!isString(value) && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc, options = {}) {\n let match;\n let value;\n let clonedOptions;\n const handleHasOptions = (key, inheritedOptions) => {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if ((matchedSingleQuotes?.length ?? 0) % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n };\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && !isString(clonedOptions.replace) ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n const keyEndIndex = /{.*}/.test(match[1]) ? match[1].lastIndexOf('}') + 1 : match[1].indexOf(this.formatSeparator);\n if (keyEndIndex !== -1) {\n formatters = match[1].slice(keyEndIndex).split(this.formatSeparator).map(elem => elem.trim()).filter(Boolean);\n match[1] = match[1].slice(0, keyEndIndex);\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && !isString(value)) return value;\n if (!isString(value)) value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (formatters.length) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nconst parseFormatStr = formatStr => {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n};\nconst createCachedFormatter = fn => {\n const cache = {};\n return (v, l, o) => {\n let optForCache = o;\n if (o && o.interpolationkey && o.formatParams && o.formatParams[o.interpolationkey] && o[o.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [o.interpolationkey]: undefined\n };\n }\n const key = l + JSON.stringify(optForCache);\n let frm = cache[key];\n if (!frm) {\n frm = fn(getCleanedCode(l), o);\n cache[key] = frm;\n }\n return frm(v);\n };\n};\nconst createNonCachedFormatter = fn => (v, l, o) => fn(getCleanedCode(l), o)(v);\nclass Formatter {\n constructor(options = {}) {\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.init(options);\n }\n init(services, options = {\n interpolation: {}\n }) {\n this.formatSeparator = options.interpolation.formatSeparator || ',';\n const cf = options.cacheInBuiltFormats ? createCachedFormatter : createNonCachedFormatter;\n this.formats = {\n number: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: cf((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: cf((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: cf((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng, options = {}) {\n const formats = format.split(this.formatSeparator);\n if (formats.length > 1 && formats[0].indexOf('(') > 1 && formats[0].indexOf(')') < 0 && formats.find(f => f.indexOf(')') > -1)) {\n const lastIndex = formats.findIndex(f => f.indexOf(')') > -1);\n formats[0] = [formats[0], ...formats.splice(1, lastIndex)].join(this.formatSeparator);\n }\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options?.formatParams?.[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nconst removePending = (q, name) => {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n};\nclass Connector extends EventEmitter {\n constructor(backend, store, services, options = {}) {\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n this.backend?.init?.(services, options.backend, options);\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (!err && data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n if (err && data) this.state[name] = 0;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName, tried = 0, wait = this.retryTimeout, callback) {\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces, options = {}, callback) {\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (isString(languages)) languages = this.languageUtils.toResolveHierarchy(languages);\n if (isString(namespaces)) namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name, prefix = '') {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate, options = {}, clb = () => {}) {\n if (this.services?.utils?.hasLoadedNamespace && !this.services?.utils?.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend?.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nconst get = () => ({\n debug: false,\n initAsync: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: args => {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (isString(args[1])) ret.defaultValue = args[1];\n if (isString(args[2])) ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n },\n cacheInBuiltFormats: true\n});\nconst transformOptions = options => {\n if (isString(options.ns)) options.ns = [options.ns];\n if (isString(options.fallbackLng)) options.fallbackLng = [options.fallbackLng];\n if (isString(options.fallbackNS)) options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs?.indexOf?.('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n if (typeof options.initImmediate === 'boolean') options.initAsync = options.initImmediate;\n return options;\n};\n\nconst noop = () => {};\nconst bindMemberFunctions = inst => {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n};\nclass I18n extends EventEmitter {\n constructor(options = {}, callback) {\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initAsync) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init(options = {}, callback) {\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (options.defaultNS == null && options.ns) {\n if (isString(options.ns)) {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n const createClassOnDemand = ClassOrObject => {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n };\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n const usingLegacyFormatFunction = this.options.interpolation.format && this.options.interpolation.format !== defOpts.interpolation.format;\n if (usingLegacyFormatFunction) {\n this.logger.deprecate(`init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting`);\n }\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n if (s.formatter.init) s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = (...args) => this.store[fcName](...args);\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = (...args) => {\n this.store[fcName](...args);\n return this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initAsync) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language, callback = noop) {\n let usedCallback = callback;\n const usedLng = isString(language) ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng?.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n this.options.preload?.forEach?.(l => append(l));\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (typeof lngs === 'function') {\n callback = lngs;\n lngs = undefined;\n }\n if (typeof ns === 'function') {\n callback = ns;\n ns = undefined;\n }\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n if (!this.resolvedLanguage && this.languages.indexOf(l) < 0 && this.store.hasLanguageSomeTranslations(l)) {\n this.resolvedLanguage = l;\n this.languages.unshift(l);\n }\n }\n changeLanguage(lng, callback) {\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n if (this.isLanguageChangingTo === lng) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n }\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve((...args) => this.t(...args));\n if (callback) callback(err, (...args) => this.t(...args));\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const fl = isString(lngs) ? lngs : lngs && lngs[0];\n const l = this.store.hasLanguageSomeTranslations(fl) ? fl : this.services.languageUtils.getBestMatchFromCodes(isString(lngs) ? [lngs] : lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n this.services.languageDetector?.cacheUserLanguage?.(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n const fixedT = (key, opts, ...rest) => {\n let o;\n if (typeof opts !== 'object') {\n o = this.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n o = {\n ...opts\n };\n }\n o.lng = o.lng || fixedT.lng;\n o.lngs = o.lngs || fixedT.lngs;\n o.ns = o.ns || fixedT.ns;\n if (o.keyPrefix !== '') o.keyPrefix = o.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = this.options.keySeparator || '.';\n let resultKey;\n if (o.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => {\n if (typeof k === 'function') k = keysFromSelector(k, {\n ...this.options,\n ...opts\n });\n return `${o.keyPrefix}${keySeparator}${k}`;\n });\n } else {\n if (typeof key === 'function') key = keysFromSelector(key, {\n ...this.options,\n ...opts\n });\n resultKey = o.keyPrefix ? `${o.keyPrefix}${keySeparator}${key}` : key;\n }\n return this.t(resultKey, o);\n };\n if (isString(lng)) {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t(...args) {\n return this.translator?.translate(...args);\n }\n exists(...args) {\n return this.translator?.exists(...args);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns, options = {}) {\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 0 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (isString(ns)) ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (isString(lngs)) lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages?.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n try {\n const l = new Intl.Locale(lng);\n if (l && l.getTextInfo) {\n const ti = l.getTextInfo();\n if (ti && ti.direction) return ti.direction;\n }\n } catch (e) {}\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services?.languageUtils || new LanguageUtil(get());\n if (lng.toLowerCase().indexOf('-latn') > 1) return 'ltr';\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance(options = {}, callback) {\n return new I18n(options, callback);\n }\n cloneInstance(options = {}, callback = noop) {\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n const clonedData = Object.keys(this.store.data).reduce((prev, l) => {\n prev[l] = {\n ...this.store.data[l]\n };\n prev[l] = Object.keys(prev[l]).reduce((acc, n) => {\n acc[n] = {\n ...prev[l][n]\n };\n return acc;\n }, prev[l]);\n return prev;\n }, {});\n clone.store = new ResourceStore(clonedData, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', (event, ...args) => {\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, keysFromSelector as keyFromSelector, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","const {\n slice,\n forEach\n} = [];\nfunction defaults(obj) {\n forEach.call(slice.call(arguments, 1), source => {\n if (source) {\n for (const prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nfunction hasXSS(input) {\n if (typeof input !== 'string') return false;\n\n // Common XSS attack patterns\n const xssPatterns = [/<\\s*script.*?>/i, /<\\s*\\/\\s*script\\s*>/i, /<\\s*img.*?on\\w+\\s*=/i, /<\\s*\\w+\\s*on\\w+\\s*=.*?>/i, /javascript\\s*:/i, /vbscript\\s*:/i, /expression\\s*\\(/i, /eval\\s*\\(/i, /alert\\s*\\(/i, /document\\.cookie/i, /document\\.write\\s*\\(/i, /window\\.location/i, /innerHTML/i];\n return xssPatterns.some(pattern => pattern.test(input));\n}\n\n// eslint-disable-next-line no-control-regex\nconst fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nconst serializeCookie = function (name, val) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n path: '/'\n };\n const opt = options;\n const value = encodeURIComponent(val);\n let str = `${name}=${value}`;\n if (opt.maxAge > 0) {\n const maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += `; Max-Age=${Math.floor(maxAge)}`;\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n str += `; Domain=${opt.domain}`;\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n str += `; Path=${opt.path}`;\n }\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n str += `; Expires=${opt.expires.toUTCString()}`;\n }\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n if (opt.sameSite) {\n const sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n if (opt.partitioned) str += '; Partitioned';\n return str;\n};\nconst cookie = {\n create(name, value, minutes, domain) {\n let cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, value, cookieOptions);\n },\n read(name) {\n const nameEQ = `${name}=`;\n const ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n },\n remove(name, domain) {\n this.create(name, '', -1, domain);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n // Deconstruct the options object and extract the lookupCookie property\n lookup(_ref) {\n let {\n lookupCookie\n } = _ref;\n if (lookupCookie && typeof document !== 'undefined') {\n return cookie.read(lookupCookie) || undefined;\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupCookie, cookieMinutes, cookieDomain, and cookieOptions properties\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupCookie,\n cookieMinutes,\n cookieDomain,\n cookieOptions\n } = _ref2;\n if (lookupCookie && typeof document !== 'undefined') {\n cookie.create(lookupCookie, lng, cookieMinutes, cookieDomain, cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n // Deconstruct the options object and extract the lookupQuerystring property\n lookup(_ref) {\n let {\n lookupQuerystring\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n let {\n search\n } = window.location;\n if (!window.location.search && window.location.hash?.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n const query = search.substring(1);\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n return found;\n }\n};\n\nvar hash = {\n name: 'hash',\n // Deconstruct the options object and extract the lookupHash property and the lookupFromHashIndex property\n lookup(_ref) {\n let {\n lookupHash,\n lookupFromHashIndex\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n const {\n hash\n } = window.location;\n if (hash && hash.length > 2) {\n const query = hash.substring(1);\n if (lookupHash) {\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupHash) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n if (found) return found;\n if (!found && lookupFromHashIndex > -1) {\n const language = hash.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromHashIndex === 'number' ? lookupFromHashIndex : 0;\n return language[index]?.replace('/', '');\n }\n }\n }\n return found;\n }\n};\n\nlet hasLocalStorageSupport = null;\nconst localStorageAvailable = () => {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n try {\n hasLocalStorageSupport = typeof window !== 'undefined' && window.localStorage !== null;\n if (!hasLocalStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n return hasLocalStorageSupport;\n};\nvar localStorage = {\n name: 'localStorage',\n // Deconstruct the options object and extract the lookupLocalStorage property\n lookup(_ref) {\n let {\n lookupLocalStorage\n } = _ref;\n if (lookupLocalStorage && localStorageAvailable()) {\n return window.localStorage.getItem(lookupLocalStorage) || undefined; // Undefined ensures type consistency with the previous version of this function\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupLocalStorage property\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupLocalStorage\n } = _ref2;\n if (lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(lookupLocalStorage, lng);\n }\n }\n};\n\nlet hasSessionStorageSupport = null;\nconst sessionStorageAvailable = () => {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n try {\n hasSessionStorageSupport = typeof window !== 'undefined' && window.sessionStorage !== null;\n if (!hasSessionStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n return hasSessionStorageSupport;\n};\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup(_ref) {\n let {\n lookupSessionStorage\n } = _ref;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n return window.sessionStorage.getItem(lookupSessionStorage) || undefined;\n }\n return undefined;\n },\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupSessionStorage\n } = _ref2;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup(options) {\n const found = [];\n if (typeof navigator !== 'undefined') {\n const {\n languages,\n userLanguage,\n language\n } = navigator;\n if (languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (let i = 0; i < languages.length; i++) {\n found.push(languages[i]);\n }\n }\n if (userLanguage) {\n found.push(userLanguage);\n }\n if (language) {\n found.push(language);\n }\n }\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n // Deconstruct the options object and extract the htmlTag property\n lookup(_ref) {\n let {\n htmlTag\n } = _ref;\n let found;\n const internalHtmlTag = htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n if (internalHtmlTag && typeof internalHtmlTag.getAttribute === 'function') {\n found = internalHtmlTag.getAttribute('lang');\n }\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n // Deconstruct the options object and extract the lookupFromPathIndex property\n lookup(_ref) {\n let {\n lookupFromPathIndex\n } = _ref;\n if (typeof window === 'undefined') return undefined;\n const language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromPathIndex === 'number' ? lookupFromPathIndex : 0;\n return language[index]?.replace('/', '');\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup(_ref) {\n let {\n lookupFromSubdomainIndex\n } = _ref;\n // If given get the subdomain index else 1\n const internalLookupFromSubdomainIndex = typeof lookupFromSubdomainIndex === 'number' ? lookupFromSubdomainIndex + 1 : 1;\n // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group match which should be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n const language = typeof window !== 'undefined' && window.location?.hostname?.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i);\n\n // if there is no match (null) return undefined\n if (!language) return undefined;\n // return the given group match\n return language[internalLookupFromSubdomainIndex];\n }\n};\n\n// some environments, throws when accessing document.cookie\nlet canCookies = false;\ntry {\n // eslint-disable-next-line no-unused-expressions\n document.cookie;\n canCookies = true;\n // eslint-disable-next-line no-empty\n} catch (e) {}\nconst order = ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'];\nif (!canCookies) order.splice(1, 1);\nconst getDefaults = () => ({\n order,\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'],\n // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n convertDetectedLanguage: l => l\n});\nclass Browser {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n init() {\n let services = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n languageUtils: {}\n };\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {\n this.options.convertDetectedLanguage = l => l.replace('-', '_');\n }\n\n // backwards compatibility\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n this.addDetector(hash);\n }\n addDetector(detector) {\n this.detectors[detector.name] = detector;\n return this;\n }\n detect() {\n let detectionOrder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.order;\n let detected = [];\n detectionOrder.forEach(detectorName => {\n if (this.detectors[detectorName]) {\n let lookup = this.detectors[detectorName].lookup(this.options);\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n detected = detected.filter(d => d !== undefined && d !== null && !hasXSS(d)).map(d => this.options.convertDetectedLanguage(d));\n if (this.services && this.services.languageUtils && this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n cacheUserLanguage(lng) {\n let caches = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(cacheName => {\n if (this.detectors[cacheName]) this.detectors[cacheName].cacheUserLanguage(lng, this.options);\n });\n }\n}\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","import { getRenderingRef, forceUpdate } from '@stencil/core';\n\nconst appendToMap = (map, propName, value) => {\n const items = map.get(propName);\n if (!items) {\n map.set(propName, [value]);\n }\n else if (!items.includes(value)) {\n items.push(value);\n }\n};\nconst debounce = (fn, ms) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = 0;\n fn(...args);\n }, ms);\n };\n};\n\n/**\n * Check if a possible element isConnected.\n * The property might not be there, so we check for it.\n *\n * We want it to return true if isConnected is not a property,\n * otherwise we would remove these elements and would not update.\n *\n * Better leak in Edge than to be useless.\n */\nconst isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;\nconst cleanupElements = debounce((map) => {\n for (let key of map.keys()) {\n map.set(key, map.get(key).filter(isConnected));\n }\n}, 2_000);\nconst stencilSubscription = () => {\n if (typeof getRenderingRef !== 'function') {\n // If we are not in a stencil project, we do nothing.\n // This function is not really exported by @stencil/core.\n return {};\n }\n const elmsToUpdate = new Map();\n return {\n dispose: () => elmsToUpdate.clear(),\n get: (propName) => {\n const elm = getRenderingRef();\n if (elm) {\n appendToMap(elmsToUpdate, propName, elm);\n }\n },\n set: (propName) => {\n const elements = elmsToUpdate.get(propName);\n if (elements) {\n elmsToUpdate.set(propName, elements.filter(forceUpdate));\n }\n cleanupElements(elmsToUpdate);\n },\n reset: () => {\n elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));\n cleanupElements(elmsToUpdate);\n },\n };\n};\n\nconst unwrap = (val) => (typeof val === 'function' ? val() : val);\nconst createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {\n const unwrappedState = unwrap(defaultState);\n let states = new Map(Object.entries(unwrappedState ?? {}));\n const handlers = {\n dispose: [],\n get: [],\n set: [],\n reset: [],\n };\n // Track onChange listeners to enable removeListener functionality\n const changeListeners = new Map();\n const reset = () => {\n // When resetting the state, the default state may be a function - unwrap it to invoke it.\n // otherwise, the state won't be properly reset\n states = new Map(Object.entries(unwrap(defaultState) ?? {}));\n handlers.reset.forEach((cb) => cb());\n };\n const dispose = () => {\n // Call first dispose as resetting the state would\n // cause less updates ;)\n handlers.dispose.forEach((cb) => cb());\n reset();\n };\n const get = (propName) => {\n handlers.get.forEach((cb) => cb(propName));\n return states.get(propName);\n };\n const set = (propName, value) => {\n const oldValue = states.get(propName);\n if (shouldUpdate(value, oldValue, propName)) {\n states.set(propName, value);\n handlers.set.forEach((cb) => cb(propName, value, oldValue));\n }\n };\n const state = (typeof Proxy === 'undefined'\n ? {}\n : new Proxy(unwrappedState, {\n get(_, propName) {\n return get(propName);\n },\n ownKeys(_) {\n return Array.from(states.keys());\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n has(_, propName) {\n return states.has(propName);\n },\n set(_, propName, value) {\n set(propName, value);\n return true;\n },\n }));\n const on = (eventName, callback) => {\n handlers[eventName].push(callback);\n return () => {\n removeFromArray(handlers[eventName], callback);\n };\n };\n const onChange = (propName, cb) => {\n const setHandler = (key, newValue) => {\n if (key === propName) {\n cb(newValue);\n }\n };\n const resetHandler = () => cb(unwrap(defaultState)[propName]);\n // Register the handlers\n const unSet = on('set', setHandler);\n const unReset = on('reset', resetHandler);\n // Track the relationship between the user callback and internal handlers\n changeListeners.set(cb, { setHandler, resetHandler, propName });\n return () => {\n unSet();\n unReset();\n changeListeners.delete(cb);\n };\n };\n const use = (...subscriptions) => {\n const unsubs = subscriptions.reduce((unsubs, subscription) => {\n if (subscription.set) {\n unsubs.push(on('set', subscription.set));\n }\n if (subscription.get) {\n unsubs.push(on('get', subscription.get));\n }\n if (subscription.reset) {\n unsubs.push(on('reset', subscription.reset));\n }\n if (subscription.dispose) {\n unsubs.push(on('dispose', subscription.dispose));\n }\n return unsubs;\n }, []);\n return () => unsubs.forEach((unsub) => unsub());\n };\n const forceUpdate = (key) => {\n const oldValue = states.get(key);\n handlers.set.forEach((cb) => cb(key, oldValue, oldValue));\n };\n const removeListener = (propName, listener) => {\n const listenerInfo = changeListeners.get(listener);\n if (listenerInfo && listenerInfo.propName === propName) {\n // Remove the specific handlers that were created for this listener\n removeFromArray(handlers.set, listenerInfo.setHandler);\n removeFromArray(handlers.reset, listenerInfo.resetHandler);\n changeListeners.delete(listener);\n }\n };\n return {\n state,\n get,\n set,\n on,\n onChange,\n use,\n dispose,\n reset,\n forceUpdate,\n removeListener,\n };\n};\nconst removeFromArray = (array, item) => {\n const index = array.indexOf(item);\n if (index >= 0) {\n array[index] = array[array.length - 1];\n array.length--;\n }\n};\n\nconst createStore = (defaultState, shouldUpdate) => {\n const map = createObservableMap(defaultState, shouldUpdate);\n map.use(stencilSubscription());\n return map;\n};\n\nexport { createObservableMap, createStore };\n","export enum CURRENCY_ENUM {\n ARS = 'ARS', // peso argentino\n BOB = 'BOB', // peso boliviano\n CLP = 'CLP', // peso chileno\n UYU = 'UYU', // peso uruguayo\n MXN = 'MXN', // peso mexicano\n DOP = 'DOP', // peso dominicano\n COP = 'COP', // peso colombiano\n PEN = 'PEN', // soles (perú)\n BRL = 'BRL', // real (brasil)\n EUR = 'EUR', // euros\n USD = 'USD', // dólar\n PYG = 'PYG', // guaraníes\n CRC = 'CRC', // colón costarricense\n GTQ = 'GTQ', // quetzal\n ECS = 'ECS', // dólar ecuatoriano\n SVC = 'SVC', // dólar salvadoreño\n PAB = 'PAB', // balboa\n NIO = 'NIO', // córdoba\n GBP = 'GBP', // libra esterlina\n JPY = 'JPY', // yen\n INDIFFERENT = 'INDIFFERENT', // international\n}\n","// Payment method enums\nexport enum PAYMENT_METHOD_ENUM {\n CARD = 'card',\n CASH = 'cash',\n BANK_TRANSFER = 'bank_transfer',\n}\n","// Status enums\nexport enum STATUS_ENUM {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n}\n\n// Pricing mode enums\nexport enum PRICING_MODE_ENUM {\n FIXED = 'fixed',\n VARIABLE = 'variable',\n}\n\n// Plan frequency enums\nexport enum PLAN_FREQUENCY_ENUM {\n MINUTE = 'minute',\n DAY = 'day',\n MONTH = 'month',\n YEAR = 'year',\n}\n\n// Plan type enums\nexport enum PLAN_TYPE_ENUM {\n UNITS = 'units',\n UNLIMITED = 'unlimited',\n}\n\n// Session type enums\nexport enum SESSION_ITEM_TYPE_ENUM {\n PRODUCT = 'product',\n PLAN = 'plan',\n INSTANT_LINK = 'instant-link',\n}\n\nexport enum SESSION_TYPE_ENUM {\n CHECKOUT_LANDING = 'checkout-landing',\n INSTANT = 'instant',\n SDK_ITEM = 'sdk-item',\n}\nexport enum SESSION_DISCOUNT_TYPE_ENUM {\n PERCENTAGE = 'PERCENTAGE',\n FIXED_AMOUNT = 'FIXED_AMOUNT',\n}\n","export interface CountryOption {\n code: string;\n dialCode: string;\n name: string;\n flag: string;\n}\n\nexport const COUNTRIES: CountryOption[] = [\n {\n code: 'af',\n dialCode: '+93',\n name: 'Afghanistan',\n flag: '🇦🇫',\n },\n {\n code: 'ax',\n dialCode: '+358',\n name: 'Åland Islands',\n flag: '🇦🇽',\n },\n {\n code: 'al',\n dialCode: '+355',\n name: 'Albania',\n flag: '🇦🇱',\n },\n {\n code: 'dz',\n dialCode: '+213',\n name: 'Algeria',\n flag: '🇩🇿',\n },\n {\n code: 'as',\n dialCode: '+1684',\n name: 'American Samoa',\n flag: '🇦🇸',\n },\n {\n code: 'ad',\n dialCode: '+376',\n name: 'Andorra',\n flag: '🇦🇩',\n },\n {\n code: 'ao',\n dialCode: '+244',\n name: 'Angola',\n flag: '🇦🇴',\n },\n {\n code: 'ai',\n dialCode: '+1264',\n name: 'Anguilla',\n flag: '🇦🇮',\n },\n {\n code: 'aq',\n dialCode: '+672',\n name: 'Antarctica',\n flag: '🇦🇶',\n },\n {\n code: 'ag',\n dialCode: '+1268',\n name: 'Antigua and Barbuda',\n flag: '🇦🇬',\n },\n {\n code: 'ar',\n dialCode: '+54 9',\n name: 'Argentina',\n flag: '🇦🇷',\n },\n {\n code: 'am',\n dialCode: '+374',\n name: 'Armenia',\n flag: '🇦🇲',\n },\n {\n code: 'aw',\n dialCode: '+297',\n name: 'Aruba',\n flag: '🇦🇼',\n },\n {\n code: 'au',\n dialCode: '+61',\n name: 'Australia',\n flag: '🇦🇺',\n },\n {\n code: 'at',\n dialCode: '+43',\n name: 'Austria',\n flag: '🇦🇹',\n },\n {\n code: 'az',\n dialCode: '+994',\n name: 'Azerbaijan',\n flag: '🇦🇿',\n },\n {\n code: 'bs',\n dialCode: '+1242',\n name: 'Bahamas',\n flag: '🇧🇸',\n },\n {\n code: 'bh',\n dialCode: '+973',\n name: 'Bahrain',\n flag: '🇧🇭',\n },\n {\n code: 'bd',\n dialCode: '+880',\n name: 'Bangladesh',\n flag: '🇧🇩',\n },\n {\n code: 'bb',\n dialCode: '+1246',\n name: 'Barbados',\n flag: '🇧🇧',\n },\n {\n code: 'by',\n dialCode: '+375',\n name: 'Belarus',\n flag: '🇧🇾',\n },\n {\n code: 'be',\n dialCode: '+32',\n name: 'Belgium',\n flag: '🇧🇪',\n },\n {\n code: 'bz',\n dialCode: '+501',\n name: 'Belize',\n flag: '🇧🇿',\n },\n {\n code: 'bj',\n dialCode: '+229',\n name: 'Benin',\n flag: '🇧🇯',\n },\n {\n code: 'bm',\n dialCode: '+1441',\n name: 'Bermuda',\n flag: '🇧🇲',\n },\n {\n code: 'bt',\n dialCode: '+975',\n name: 'Bhutan',\n flag: '🇧🇹',\n },\n {\n code: 'bo',\n dialCode: '+591',\n name: 'Bolivia',\n flag: '🇧🇴',\n },\n {\n code: 'ba',\n dialCode: '+387',\n name: 'Bosnia and Herzegovina',\n flag: '🇧🇦',\n },\n {\n code: 'bw',\n dialCode: '+267',\n name: 'Botswana',\n flag: '🇧🇼',\n },\n {\n code: 'bv',\n dialCode: '+47',\n name: 'Bouvet Island',\n flag: '🇧🇻',\n },\n {\n code: 'br',\n dialCode: '+55',\n name: 'Brazil',\n flag: '🇧🇷',\n },\n {\n code: 'io',\n dialCode: '+246',\n name: 'British Indian Ocean Territory',\n flag: '🇮🇴',\n },\n {\n code: 'vg',\n dialCode: '+1284',\n name: 'British Virgin Islands',\n flag: '🇻🇬',\n },\n {\n code: 'bn',\n dialCode: '+673',\n name: 'Brunei',\n flag: '🇧🇳',\n },\n {\n code: 'bg',\n dialCode: '+359',\n name: 'Bulgaria',\n flag: '🇧🇬',\n },\n {\n code: 'bf',\n dialCode: '+226',\n name: 'Burkina Faso',\n flag: '🇧🇫',\n },\n {\n code: 'bi',\n dialCode: '+257',\n name: 'Burundi',\n flag: '🇧🇮',\n },\n {\n code: 'kh',\n dialCode: '+855',\n name: 'Cambodia',\n flag: '🇰🇭',\n },\n {\n code: 'cm',\n dialCode: '+237',\n name: 'Cameroon',\n flag: '🇨🇲',\n },\n {\n code: 'ca',\n dialCode: '+1',\n name: 'Canada',\n flag: '🇨🇦',\n },\n {\n code: 'cv',\n dialCode: '+238',\n name: 'Cape Verde',\n flag: '🇨🇻',\n },\n {\n code: 'bq',\n dialCode: '+599',\n name: 'Caribbean Netherlands',\n flag: '🇧🇶',\n },\n {\n code: 'ky',\n dialCode: '+1345',\n name: 'Cayman Islands',\n flag: '🇰🇾',\n },\n {\n code: 'cf',\n dialCode: '+236',\n name: 'Central African Republic',\n flag: '🇨🇫',\n },\n {\n code: 'td',\n dialCode: '+235',\n name: 'Chad',\n flag: '🇹🇩',\n },\n {\n code: 'cl',\n dialCode: '+56',\n name: 'Chile',\n flag: '🇨🇱',\n },\n {\n code: 'cn',\n dialCode: '+86',\n name: 'China',\n flag: '🇨🇳',\n },\n {\n code: 'cx',\n dialCode: '+61',\n name: 'Christmas Island',\n flag: '🇨🇽',\n },\n {\n code: 'cc',\n dialCode: '+61',\n name: 'Cocos Islands',\n flag: '🇨🇨',\n },\n {\n code: 'co',\n dialCode: '+57',\n name: 'Colombia',\n flag: '🇨🇴',\n },\n {\n code: 'km',\n dialCode: '+269',\n name: 'Comoros',\n flag: '🇰🇲',\n },\n {\n code: 'ck',\n dialCode: '+682',\n name: 'Cook Islands',\n flag: '🇨🇰',\n },\n {\n code: 'cr',\n dialCode: '+506',\n name: 'Costa Rica',\n flag: '🇨🇷',\n },\n {\n code: 'ci',\n dialCode: '+225',\n name: \"Côte d'Ivoire\",\n flag: '🇨🇮',\n },\n {\n code: 'hr',\n dialCode: '+385',\n name: 'Croatia',\n flag: '🇭🇷',\n },\n {\n code: 'cu',\n dialCode: '+53',\n name: 'Cuba',\n flag: '🇨🇺',\n },\n {\n code: 'cw',\n dialCode: '+599',\n name: 'Curaçao',\n flag: '🇨🇼',\n },\n {\n code: 'cy',\n dialCode: '+357',\n name: 'Cyprus',\n flag: '🇨🇾',\n },\n {\n code: 'cz',\n dialCode: '+420',\n name: 'Czech Republic',\n flag: '🇨🇿',\n },\n {\n code: 'cd',\n dialCode: '+243',\n name: 'Democratic Republic of the Congo',\n flag: '🇨🇩',\n },\n {\n code: 'dk',\n dialCode: '+45',\n name: 'Denmark',\n flag: '🇩🇰',\n },\n {\n code: 'dj',\n dialCode: '+253',\n name: 'Djibouti',\n flag: '🇩🇯',\n },\n {\n code: 'dm',\n dialCode: '+1767',\n name: 'Dominica',\n flag: '🇩🇲',\n },\n {\n code: 'do',\n dialCode: '+1',\n name: 'Dominican Republic',\n flag: '🇩🇴',\n },\n {\n code: 'ec',\n dialCode: '+593',\n name: 'Ecuador',\n flag: '🇪🇨',\n },\n {\n code: 'eg',\n dialCode: '+20',\n name: 'Egypt',\n flag: '🇪🇬',\n },\n {\n code: 'sv',\n dialCode: '+503',\n name: 'El Salvador',\n flag: '🇸🇻',\n },\n {\n code: 'gq',\n dialCode: '+240',\n name: 'Equatorial Guinea',\n flag: '🇬🇶',\n },\n {\n code: 'er',\n dialCode: '+291',\n name: 'Eritrea',\n flag: '🇪🇷',\n },\n {\n code: 'ee',\n dialCode: '+372',\n name: 'Estonia',\n flag: '🇪🇪',\n },\n {\n code: 'sz',\n dialCode: '+268',\n name: 'Eswatini',\n flag: '🇸🇿',\n },\n {\n code: 'et',\n dialCode: '+251',\n name: 'Ethiopia',\n flag: '🇪🇹',\n },\n {\n code: 'fk',\n dialCode: '+500',\n name: 'Falkland Islands',\n flag: '🇫🇰',\n },\n {\n code: 'fo',\n dialCode: '+298',\n name: 'Faroe Islands',\n flag: '🇫🇴',\n },\n {\n code: 'fj',\n dialCode: '+679',\n name: 'Fiji',\n flag: '🇫🇯',\n },\n {\n code: 'fi',\n dialCode: '+358',\n name: 'Finland',\n flag: '🇫🇮',\n },\n {\n code: 'fr',\n dialCode: '+33',\n name: 'France',\n flag: '🇫🇷',\n },\n {\n code: 'gf',\n dialCode: '+594',\n name: 'French Guiana',\n flag: '🇬🇫',\n },\n {\n code: 'pf',\n dialCode: '+689',\n name: 'French Polynesia',\n flag: '🇵🇫',\n },\n {\n code: 'tf',\n dialCode: '+262',\n name: 'French Southern Territories',\n flag: '🇹🇫',\n },\n {\n code: 'ga',\n dialCode: '+241',\n name: 'Gabon',\n flag: '🇬🇦',\n },\n {\n code: 'gm',\n dialCode: '+220',\n name: 'Gambia',\n flag: '🇬🇲',\n },\n {\n code: 'ge',\n dialCode: '+995',\n name: 'Georgia',\n flag: '🇬🇪',\n },\n {\n code: 'de',\n dialCode: '+49',\n name: 'Germany',\n flag: '🇩🇪',\n },\n {\n code: 'gh',\n dialCode: '+233',\n name: 'Ghana',\n flag: '🇬🇭',\n },\n {\n code: 'gi',\n dialCode: '+350',\n name: 'Gibraltar',\n flag: '🇬🇮',\n },\n {\n code: 'gr',\n dialCode: '+30',\n name: 'Greece',\n flag: '🇬🇷',\n },\n {\n code: 'gl',\n dialCode: '+299',\n name: 'Greenland',\n flag: '🇬🇱',\n },\n {\n code: 'gd',\n dialCode: '+1473',\n name: 'Grenada',\n flag: '🇬🇩',\n },\n {\n code: 'gp',\n dialCode: '+590',\n name: 'Guadeloupe',\n flag: '🇬🇵',\n },\n {\n code: 'gu',\n dialCode: '+1671',\n name: 'Guam',\n flag: '🇬🇺',\n },\n {\n code: 'gt',\n dialCode: '+502',\n name: 'Guatemala',\n flag: '🇬🇹',\n },\n {\n code: 'gg',\n dialCode: '+44',\n name: 'Guernsey',\n flag: '🇬🇬',\n },\n {\n code: 'gn',\n dialCode: '+224',\n name: 'Guinea',\n flag: '🇬🇳',\n },\n {\n code: 'gw',\n dialCode: '+245',\n name: 'Guinea-Bissau',\n flag: '🇬🇼',\n },\n {\n code: 'gy',\n dialCode: '+592',\n name: 'Guyana',\n flag: '🇬🇾',\n },\n {\n code: 'ht',\n dialCode: '+509',\n name: 'Haiti',\n flag: '🇭🇹',\n },\n {\n code: 'hm',\n dialCode: '+672',\n name: 'Heard Island and McDonald Islands',\n flag: '🇭🇲',\n },\n {\n code: 'hn',\n dialCode: '+504',\n name: 'Honduras',\n flag: '🇭🇳',\n },\n {\n code: 'hk',\n dialCode: '+852',\n name: 'Hong Kong',\n flag: '🇭🇰',\n },\n {\n code: 'hu',\n dialCode: '+36',\n name: 'Hungary',\n flag: '🇭🇺',\n },\n {\n code: 'is',\n dialCode: '+354',\n name: 'Iceland',\n flag: '🇮🇸',\n },\n {\n code: 'in',\n dialCode: '+91',\n name: 'India',\n flag: '🇮🇳',\n },\n {\n code: 'id',\n dialCode: '+62',\n name: 'Indonesia',\n flag: '🇮🇩',\n },\n {\n code: 'ir',\n dialCode: '+98',\n name: 'Iran',\n flag: '🇮🇷',\n },\n {\n code: 'iq',\n dialCode: '+964',\n name: 'Iraq',\n flag: '🇮🇶',\n },\n {\n code: 'ie',\n dialCode: '+353',\n name: 'Ireland',\n flag: '🇮🇪',\n },\n {\n code: 'im',\n dialCode: '+44',\n name: 'Isle of Man',\n flag: '🇮🇲',\n },\n {\n code: 'il',\n dialCode: '+972',\n name: 'Israel',\n flag: '🇮🇱',\n },\n {\n code: 'it',\n dialCode: '+39',\n name: 'Italy',\n flag: '🇮🇹',\n },\n {\n code: 'jm',\n dialCode: '+1876',\n name: 'Jamaica',\n flag: '🇯🇲',\n },\n {\n code: 'jp',\n dialCode: '+81',\n name: 'Japan',\n flag: '🇯🇵',\n },\n {\n code: 'je',\n dialCode: '+44',\n name: 'Jersey',\n flag: '🇯🇪',\n },\n {\n code: 'jo',\n dialCode: '+962',\n name: 'Jordan',\n flag: '🇯🇴',\n },\n {\n code: 'kz',\n dialCode: '+7',\n name: 'Kazakhstan',\n flag: '🇰🇿',\n },\n {\n code: 'ke',\n dialCode: '+254',\n name: 'Kenya',\n flag: '🇰🇪',\n },\n {\n code: 'ki',\n dialCode: '+686',\n name: 'Kiribati',\n flag: '🇰🇮',\n },\n {\n code: 'kw',\n dialCode: '+965',\n name: 'Kuwait',\n flag: '🇰🇼',\n },\n {\n code: 'kg',\n dialCode: '+996',\n name: 'Kyrgyzstan',\n flag: '🇰🇬',\n },\n {\n code: 'la',\n dialCode: '+856',\n name: 'Laos',\n flag: '🇱🇦',\n },\n {\n code: 'lv',\n dialCode: '+371',\n name: 'Latvia',\n flag: '🇱🇻',\n },\n {\n code: 'lb',\n dialCode: '+961',\n name: 'Lebanon',\n flag: '🇱🇧',\n },\n {\n code: 'ls',\n dialCode: '+266',\n name: 'Lesotho',\n flag: '🇱🇸',\n },\n {\n code: 'lr',\n dialCode: '+231',\n name: 'Liberia',\n flag: '🇱🇷',\n },\n {\n code: 'ly',\n dialCode: '+218',\n name: 'Libya',\n flag: '🇱🇾',\n },\n {\n code: 'li',\n dialCode: '+423',\n name: 'Liechtenstein',\n flag: '🇱🇮',\n },\n {\n code: 'lt',\n dialCode: '+370',\n name: 'Lithuania',\n flag: '🇱🇹',\n },\n {\n code: 'lu',\n dialCode: '+352',\n name: 'Luxembourg',\n flag: '🇱🇺',\n },\n {\n code: 'mo',\n dialCode: '+853',\n name: 'Macao',\n flag: '🇲🇴',\n },\n {\n code: 'mg',\n dialCode: '+261',\n name: 'Madagascar',\n flag: '🇲🇬',\n },\n {\n code: 'mw',\n dialCode: '+265',\n name: 'Malawi',\n flag: '🇲🇼',\n },\n {\n code: 'my',\n dialCode: '+60',\n name: 'Malaysia',\n flag: '🇲🇾',\n },\n {\n code: 'mv',\n dialCode: '+960',\n name: 'Maldives',\n flag: '🇲🇻',\n },\n {\n code: 'ml',\n dialCode: '+223',\n name: 'Mali',\n flag: '🇲🇱',\n },\n {\n code: 'mt',\n dialCode: '+356',\n name: 'Malta',\n flag: '🇲🇹',\n },\n {\n code: 'mh',\n dialCode: '+692',\n name: 'Marshall Islands',\n flag: '🇲🇭',\n },\n {\n code: 'mq',\n dialCode: '+596',\n name: 'Martinique',\n flag: '🇲🇶',\n },\n {\n code: 'mr',\n dialCode: '+222',\n name: 'Mauritania',\n flag: '🇲🇷',\n },\n {\n code: 'mu',\n dialCode: '+230',\n name: 'Mauritius',\n flag: '🇲🇺',\n },\n {\n code: 'yt',\n dialCode: '+262',\n name: 'Mayotte',\n flag: '🇾🇹',\n },\n {\n code: 'mx',\n dialCode: '+52',\n name: 'Mexico',\n flag: '🇲🇽',\n },\n {\n code: 'fm',\n dialCode: '+691',\n name: 'Micronesia',\n flag: '🇫🇲',\n },\n {\n code: 'md',\n dialCode: '+373',\n name: 'Moldova',\n flag: '🇲🇩',\n },\n {\n code: 'mc',\n dialCode: '+377',\n name: 'Monaco',\n flag: '🇲🇨',\n },\n {\n code: 'mn',\n dialCode: '+976',\n name: 'Mongolia',\n flag: '🇲🇳',\n },\n {\n code: 'me',\n dialCode: '+382',\n name: 'Montenegro',\n flag: '🇲🇪',\n },\n {\n code: 'ms',\n dialCode: '+1664',\n name: 'Montserrat',\n flag: '🇲🇸',\n },\n {\n code: 'ma',\n dialCode: '+212',\n name: 'Morocco',\n flag: '🇲🇦',\n },\n {\n code: 'mz',\n dialCode: '+258',\n name: 'Mozambique',\n flag: '🇲🇿',\n },\n {\n code: 'mm',\n dialCode: '+95',\n name: 'Myanmar',\n flag: '🇲🇲',\n },\n {\n code: 'na',\n dialCode: '+264',\n name: 'Namibia',\n flag: '🇳🇦',\n },\n {\n code: 'nr',\n dialCode: '+674',\n name: 'Nauru',\n flag: '🇳🇷',\n },\n {\n code: 'np',\n dialCode: '+977',\n name: 'Nepal',\n flag: '🇳🇵',\n },\n {\n code: 'nl',\n dialCode: '+31',\n name: 'Netherlands',\n flag: '🇳🇱',\n },\n {\n code: 'nc',\n dialCode: '+687',\n name: 'New Caledonia',\n flag: '🇳🇨',\n },\n {\n code: 'nz',\n dialCode: '+64',\n name: 'New Zealand',\n flag: '🇳🇿',\n },\n {\n code: 'ni',\n dialCode: '+505',\n name: 'Nicaragua',\n flag: '🇳🇮',\n },\n {\n code: 'ne',\n dialCode: '+227',\n name: 'Niger',\n flag: '🇳🇪',\n },\n {\n code: 'ng',\n dialCode: '+234',\n name: 'Nigeria',\n flag: '🇳🇬',\n },\n {\n code: 'nu',\n dialCode: '+683',\n name: 'Niue',\n flag: '🇳🇺',\n },\n {\n code: 'nf',\n dialCode: '+672',\n name: 'Norfolk Island',\n flag: '🇳🇫',\n },\n {\n code: 'kp',\n dialCode: '+850',\n name: 'North Korea',\n flag: '🇰🇵',\n },\n {\n code: 'mk',\n dialCode: '+389',\n name: 'North Macedonia',\n flag: '🇲🇰',\n },\n {\n code: 'mp',\n dialCode: '+1670',\n name: 'Northern Mariana Islands',\n flag: '🇲🇵',\n },\n {\n code: 'no',\n dialCode: '+47',\n name: 'Norway',\n flag: '🇳🇴',\n },\n {\n code: 'om',\n dialCode: '+968',\n name: 'Oman',\n flag: '🇴🇲',\n },\n {\n code: 'pk',\n dialCode: '+92',\n name: 'Pakistan',\n flag: '🇵🇰',\n },\n {\n code: 'pw',\n dialCode: '+680',\n name: 'Palau',\n flag: '🇵🇼',\n },\n {\n code: 'ps',\n dialCode: '+970',\n name: 'Palestine',\n flag: '🇵🇸',\n },\n {\n code: 'pa',\n dialCode: '+507',\n name: 'Panama',\n flag: '🇵🇦',\n },\n {\n code: 'pg',\n dialCode: '+675',\n name: 'Papua New Guinea',\n flag: '🇵🇬',\n },\n {\n code: 'py',\n dialCode: '+595',\n name: 'Paraguay',\n flag: '🇵🇾',\n },\n {\n code: 'pe',\n dialCode: '+51',\n name: 'Peru',\n flag: '🇵🇪',\n },\n {\n code: 'ph',\n dialCode: '+63',\n name: 'Philippines',\n flag: '🇵🇭',\n },\n {\n code: 'pn',\n dialCode: '+872',\n name: 'Pitcairn',\n flag: '🇵🇳',\n },\n {\n code: 'pl',\n dialCode: '+48',\n name: 'Poland',\n flag: '🇵🇱',\n },\n {\n code: 'pt',\n dialCode: '+351',\n name: 'Portugal',\n flag: '🇵🇹',\n },\n {\n code: 'pr',\n dialCode: '+1',\n name: 'Puerto Rico',\n flag: '🇵🇷',\n },\n {\n code: 'qa',\n dialCode: '+974',\n name: 'Qatar',\n flag: '🇶🇦',\n },\n {\n code: 'cg',\n dialCode: '+242',\n name: 'Republic of the Congo',\n flag: '🇨🇬',\n },\n {\n code: 're',\n dialCode: '+262',\n name: 'Réunion',\n flag: '🇷🇪',\n },\n {\n code: 'ro',\n dialCode: '+40',\n name: 'Romania',\n flag: '🇷🇴',\n },\n {\n code: 'ru',\n dialCode: '+7',\n name: 'Russia',\n flag: '🇷🇺',\n },\n {\n code: 'rw',\n dialCode: '+250',\n name: 'Rwanda',\n flag: '🇷🇼',\n },\n {\n code: 'bl',\n dialCode: '+590',\n name: 'Saint Barthélemy',\n flag: '🇧🇱',\n },\n {\n code: 'sh',\n dialCode: '+290',\n name: 'Saint Helena',\n flag: '🇸🇭',\n },\n {\n code: 'kn',\n dialCode: '+1869',\n name: 'Saint Kitts and Nevis',\n flag: '🇰🇳',\n },\n {\n code: 'lc',\n dialCode: '+1758',\n name: 'Saint Lucia',\n flag: '🇱🇨',\n },\n {\n code: 'mf',\n dialCode: '+590',\n name: 'Saint Martin',\n flag: '🇲🇫',\n },\n {\n code: 'pm',\n dialCode: '+508',\n name: 'Saint Pierre and Miquelon',\n flag: '🇵🇲',\n },\n {\n code: 'vc',\n dialCode: '+1784',\n name: 'Saint Vincent and the Grenadines',\n flag: '🇻🇨',\n },\n {\n code: 'ws',\n dialCode: '+685',\n name: 'Samoa',\n flag: '🇼🇸',\n },\n {\n code: 'sm',\n dialCode: '+378',\n name: 'San Marino',\n flag: '🇸🇲',\n },\n {\n code: 'st',\n dialCode: '+239',\n name: 'São Tomé and Príncipe',\n flag: '🇸🇹',\n },\n {\n code: 'sa',\n dialCode: '+966',\n name: 'Saudi Arabia',\n flag: '🇸🇦',\n },\n {\n code: 'sn',\n dialCode: '+221',\n name: 'Senegal',\n flag: '🇸🇳',\n },\n {\n code: 'rs',\n dialCode: '+381',\n name: 'Serbia',\n flag: '🇷🇸',\n },\n {\n code: 'sc',\n dialCode: '+248',\n name: 'Seychelles',\n flag: '🇸🇨',\n },\n {\n code: 'sl',\n dialCode: '+232',\n name: 'Sierra Leone',\n flag: '🇸🇱',\n },\n {\n code: 'sg',\n dialCode: '+65',\n name: 'Singapore',\n flag: '🇸🇬',\n },\n {\n code: 'sx',\n dialCode: '+1721',\n name: 'Sint Maarten',\n flag: '🇸🇽',\n },\n {\n code: 'sk',\n dialCode: '+421',\n name: 'Slovakia',\n flag: '🇸🇰',\n },\n {\n code: 'si',\n dialCode: '+386',\n name: 'Slovenia',\n flag: '🇸🇮',\n },\n {\n code: 'sb',\n dialCode: '+677',\n name: 'Solomon Islands',\n flag: '🇸🇧',\n },\n {\n code: 'so',\n dialCode: '+252',\n name: 'Somalia',\n flag: '🇸🇴',\n },\n {\n code: 'za',\n dialCode: '+27',\n name: 'South Africa',\n flag: '🇿🇦',\n },\n {\n code: 'gs',\n dialCode: '+500',\n name: 'South Georgia and the South Sandwich Islands',\n flag: '🇬🇸',\n },\n {\n code: 'kr',\n dialCode: '+82',\n name: 'South Korea',\n flag: '🇰🇷',\n },\n {\n code: 'ss',\n dialCode: '+211',\n name: 'South Sudan',\n flag: '🇸🇸',\n },\n {\n code: 'es',\n dialCode: '+34',\n name: 'Spain',\n flag: '🇪🇸',\n },\n {\n code: 'lk',\n dialCode: '+94',\n name: 'Sri Lanka',\n flag: '🇱🇰',\n },\n {\n code: 'sd',\n dialCode: '+249',\n name: 'Sudan',\n flag: '🇸🇩',\n },\n {\n code: 'sr',\n dialCode: '+597',\n name: 'Suriname',\n flag: '🇸🇷',\n },\n {\n code: 'sj',\n dialCode: '+47',\n name: 'Svalbard and Jan Mayen',\n flag: '🇸🇯',\n },\n {\n code: 'se',\n dialCode: '+46',\n name: 'Sweden',\n flag: '🇸🇪',\n },\n {\n code: 'ch',\n dialCode: '+41',\n name: 'Switzerland',\n flag: '🇨🇭',\n },\n {\n code: 'sy',\n dialCode: '+963',\n name: 'Syria',\n flag: '🇸🇾',\n },\n {\n code: 'tw',\n dialCode: '+886',\n name: 'Taiwan',\n flag: '🇹🇼',\n },\n {\n code: 'tj',\n dialCode: '+992',\n name: 'Tajikistan',\n flag: '🇹🇯',\n },\n {\n code: 'tz',\n dialCode: '+255',\n name: 'Tanzania',\n flag: '🇹🇿',\n },\n {\n code: 'th',\n dialCode: '+66',\n name: 'Thailand',\n flag: '🇹🇭',\n },\n {\n code: 'tl',\n dialCode: '+670',\n name: 'Timor-Leste',\n flag: '🇹🇱',\n },\n {\n code: 'tg',\n dialCode: '+228',\n name: 'Togo',\n flag: '🇹🇬',\n },\n {\n code: 'tk',\n dialCode: '+690',\n name: 'Tokelau',\n flag: '🇹🇰',\n },\n {\n code: 'to',\n dialCode: '+676',\n name: 'Tonga',\n flag: '🇹🇴',\n },\n {\n code: 'tt',\n dialCode: '+1868',\n name: 'Trinidad and Tobago',\n flag: '🇹🇹',\n },\n {\n code: 'tn',\n dialCode: '+216',\n name: 'Tunisia',\n flag: '🇹🇳',\n },\n {\n code: 'tr',\n dialCode: '+90',\n name: 'Turkey',\n flag: '🇹🇷',\n },\n {\n code: 'tm',\n dialCode: '+993',\n name: 'Turkmenistan',\n flag: '🇹🇲',\n },\n {\n code: 'tc',\n dialCode: '+1649',\n name: 'Turks and Caicos Islands',\n flag: '🇹🇨',\n },\n {\n code: 'tv',\n dialCode: '+688',\n name: 'Tuvalu',\n flag: '🇹🇻',\n },\n {\n code: 'vi',\n dialCode: '+1340',\n name: 'U.S. Virgin Islands',\n flag: '🇻🇮',\n },\n {\n code: 'ug',\n dialCode: '+256',\n name: 'Uganda',\n flag: '🇺🇬',\n },\n {\n code: 'ua',\n dialCode: '+380',\n name: 'Ukraine',\n flag: '🇺🇦',\n },\n {\n code: 'ae',\n dialCode: '+971',\n name: 'United Arab Emirates',\n flag: '🇦🇪',\n },\n {\n code: 'gb',\n dialCode: '+44',\n name: 'United Kingdom',\n flag: '🇬🇧',\n },\n {\n code: 'us',\n dialCode: '+1',\n name: 'United States',\n flag: '🇺🇸',\n },\n {\n code: 'um',\n dialCode: '+1',\n name: 'United States Minor Outlying Islands',\n flag: '🇺🇲',\n },\n {\n code: 'uy',\n dialCode: '+598',\n name: 'Uruguay',\n flag: '🇺🇾',\n },\n {\n code: 'uz',\n dialCode: '+998',\n name: 'Uzbekistan',\n flag: '🇺🇿',\n },\n {\n code: 'vu',\n dialCode: '+678',\n name: 'Vanuatu',\n flag: '🇻🇺',\n },\n {\n code: 'va',\n dialCode: '+379',\n name: 'Vatican City',\n flag: '🇻🇦',\n },\n {\n code: 've',\n dialCode: '+58',\n name: 'Venezuela',\n flag: '🇻🇪',\n },\n {\n code: 'vn',\n dialCode: '+84',\n name: 'Vietnam',\n flag: '🇻🇳',\n },\n {\n code: 'wf',\n dialCode: '+681',\n name: 'Wallis and Futuna',\n flag: '🇼🇫',\n },\n {\n code: 'eh',\n dialCode: '+212',\n name: 'Western Sahara',\n flag: '🇪🇭',\n },\n {\n code: 'ye',\n dialCode: '+967',\n name: 'Yemen',\n flag: '🇾🇪',\n },\n {\n code: 'zm',\n dialCode: '+260',\n name: 'Zambia',\n flag: '🇿🇲',\n },\n {\n code: 'zw',\n dialCode: '+263',\n name: 'Zimbabwe',\n flag: '🇿🇼',\n },\n];\n","import { COUNTRIES } from '../models/countries.model';\nimport { sessionState } from '../store/session.store';\n\n/**\n * Maps a dial code (e.g., \"+57\") to a country code (e.g., \"co\")\n * @param dialCode - The dial code with + prefix (e.g., \"+57\", \"+54\")\n * @returns The country code (e.g., \"co\", \"ar\") or null if not found\n */\nexport function mapDialCodeToCountryCode(dialCode: string): string | null {\n if (!dialCode) {\n return null;\n }\n\n // Remove any spaces and ensure it starts with +\n const cleanDialCode = dialCode.trim().startsWith('+') ? dialCode.trim() : `+${dialCode.trim()}`;\n\n // Find the country that matches this dial code\n const country = COUNTRIES.find(c => c.dialCode === cleanDialCode);\n\n return country?.code || sessionState.data.country;\n}\n","import { CURRENCY_ENUM } from '../models/enums/currency.enum';\n\n/**\n * Mapeo de monedas a locales específicos para formateo\n */\nconst locationByCurrency: Record<CURRENCY_ENUM, string> = {\n [CURRENCY_ENUM.ARS]: 'es-AR', // Argentina\n [CURRENCY_ENUM.BOB]: 'es-BO', // Bolivia\n [CURRENCY_ENUM.CLP]: 'es-CL', // Chile\n [CURRENCY_ENUM.UYU]: 'es-UY', // Uruguay\n [CURRENCY_ENUM.MXN]: 'es-MX', // México\n [CURRENCY_ENUM.DOP]: 'es-DO', // República Dominicana\n [CURRENCY_ENUM.COP]: 'es-CO', // Colombia\n [CURRENCY_ENUM.PEN]: 'es-PE', // Perú\n [CURRENCY_ENUM.BRL]: 'pt-BR', // Brasil\n [CURRENCY_ENUM.EUR]: 'es-ES', // España (Euros)\n [CURRENCY_ENUM.USD]: 'en-US', // Estados Unidos\n [CURRENCY_ENUM.PYG]: 'es-PY', // Paraguay\n [CURRENCY_ENUM.CRC]: 'es-CR', // Costa Rica\n [CURRENCY_ENUM.GTQ]: 'es-GT', // Guatemala\n [CURRENCY_ENUM.ECS]: 'es-EC', // Ecuador\n [CURRENCY_ENUM.SVC]: 'es-SV', // El Salvador\n [CURRENCY_ENUM.PAB]: 'es-PA', // Panamá\n [CURRENCY_ENUM.NIO]: 'es-NI', // Nicaragua\n [CURRENCY_ENUM.GBP]: 'en-GB', // Reino Unido\n [CURRENCY_ENUM.JPY]: 'ja-JP', // Japón\n [CURRENCY_ENUM.INDIFFERENT]: 'en-US', // Internacional (default)\n};\n\nexport const countryByCurrency: Record<CURRENCY_ENUM, string> = {\n [CURRENCY_ENUM.ARS]: 'AR',\n [CURRENCY_ENUM.BOB]: 'BO',\n [CURRENCY_ENUM.CLP]: 'CL',\n [CURRENCY_ENUM.UYU]: 'UY',\n [CURRENCY_ENUM.MXN]: 'MX',\n [CURRENCY_ENUM.DOP]: 'DO',\n [CURRENCY_ENUM.COP]: 'CO',\n [CURRENCY_ENUM.PEN]: 'PE',\n [CURRENCY_ENUM.BRL]: 'BR',\n [CURRENCY_ENUM.EUR]: 'ES',\n [CURRENCY_ENUM.USD]: 'US',\n [CURRENCY_ENUM.PYG]: 'PY',\n [CURRENCY_ENUM.CRC]: 'CR',\n [CURRENCY_ENUM.GTQ]: 'GT',\n [CURRENCY_ENUM.ECS]: 'EC',\n [CURRENCY_ENUM.SVC]: 'SV',\n [CURRENCY_ENUM.PAB]: 'PA',\n [CURRENCY_ENUM.NIO]: 'NI',\n [CURRENCY_ENUM.GBP]: 'GB',\n [CURRENCY_ENUM.JPY]: 'JP',\n [CURRENCY_ENUM.INDIFFERENT]: 'US',\n};\n\n/**\n * Opciones por defecto para el formateo de números\n */\nconst defaultOptions: Intl.NumberFormatOptions = {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n};\n\n/**\n * Formatea un monto según la moneda especificada usando Intl.NumberFormat\n * @param amount - El monto a formatear\n * @param currency - La moneda a usar para el formateo\n * @param options - Opciones adicionales para el formateo (opcional)\n * @returns String formateado del monto o string vacío si los parámetros son inválidos\n */\nexport const formatAmountToIntlFormat = (\n amount: number | undefined,\n currency: CURRENCY_ENUM | undefined,\n options?: Intl.NumberFormatOptions,\n): string => {\n if (amount === undefined || amount === null) return '';\n if (!currency) return '';\n\n const locale = window.navigator.language || locationByCurrency[currency];\n\n return new Intl.NumberFormat(locale, {\n ...defaultOptions,\n ...options,\n currency,\n style: 'currency',\n }).format(amount);\n};\n\n/**\n * Formatea un monto sin el símbolo de moneda\n * @param amount - El monto a formatear\n * @param currency - La moneda a usar para el formateo\n * @param options - Opciones adicionales para el formateo (opcional)\n * @returns String formateado del monto sin símbolo de moneda\n */\nexport const formatAmountWithoutCurrency = (\n amount: number | undefined,\n currency: CURRENCY_ENUM | undefined,\n options?: Intl.NumberFormatOptions,\n): string => {\n if (amount === undefined || amount === null) return '';\n if (!currency) return '';\n\n const locale = window.navigator.language || locationByCurrency[currency];\n\n return new Intl.NumberFormat(locale, {\n ...defaultOptions,\n ...options,\n style: 'decimal',\n }).format(amount);\n};\n\n/**\n * Formatea un monto con opciones personalizadas\n * @param amount - El monto a formatear\n * @param currency - La moneda a usar para el formateo\n * @param customOptions - Opciones completamente personalizadas\n * @returns String formateado del monto\n */\nexport const formatAmountWithCustomOptions = (\n amount: number | undefined,\n currency: CURRENCY_ENUM | undefined,\n customOptions: Intl.NumberFormatOptions,\n): string => {\n if (amount === undefined || amount === null) return '';\n if (!currency) return '';\n\n const locale = window.navigator.language || locationByCurrency[currency];\n\n return new Intl.NumberFormat(locale, customOptions).format(amount);\n};\n\n/**\n * Obtiene el locale apropiado para una moneda específica\n * @param currency - La moneda\n * @returns El locale correspondiente a la moneda\n */\nexport const getLocaleForCurrency = (currency: CURRENCY_ENUM): string => {\n return locationByCurrency[currency];\n};\n\n/**\n * Verifica si una moneda es válida\n * @param currency - La moneda a verificar\n * @returns true si la moneda es válida, false en caso contrario\n */\nexport const isValidCurrency = (currency: string): currency is CURRENCY_ENUM => {\n return Object.values(CURRENCY_ENUM).includes(currency as CURRENCY_ENUM);\n};\n\n/**\n * Formatea un monto con o sin moneda (función wrapper para compatibilidad)\n */\nexport const formatAmount = (\n amount: number | string,\n currency: string,\n withCurrency: boolean = true,\n): string => {\n if (typeof amount === 'string') {\n return amount;\n }\n\n const currencyEnum = currency as CURRENCY_ENUM;\n return withCurrency\n ? formatAmountToIntlFormat(amount, currencyEnum)\n : formatAmountWithoutCurrency(amount, currencyEnum);\n};\n","import { I18nService } from '../i18n/i18n.service';\nimport { Payment, PaymentMethodDetails } from '../store/session.store';\nimport { mapDialCodeToCountryCode } from '../utils/country-code-mapper';\nimport { countryByCurrency } from '../utils/currency-formatter';\nimport { DisplayConfig } from './display.model';\nimport { CURRENCY_ENUM } from './enums/currency.enum';\nimport { DEBIT_STRATEGY_ENUM } from './enums/debit-strategy.enum';\nimport { ENUM_INSTALLMENT_MODEL } from './enums/installment.enum';\nimport { LOCALES_ENUM } from './enums/locales.enum';\nimport { PAYMENT_METHOD_ENUM } from './enums/payment-methods.enum';\nimport {\n PLAN_FREQUENCY_ENUM,\n PLAN_TYPE_ENUM,\n PRICING_MODE_ENUM,\n SESSION_ITEM_TYPE_ENUM,\n SESSION_TYPE_ENUM,\n STATUS_ENUM,\n} from './enums/session.enum';\n\n// Common types used across different session types\nexport interface LocalizedText {\n text: string;\n language: LOCALES_ENUM;\n}\n\nexport interface PaymentMethod {\n methods: PAYMENT_METHOD_ENUM[];\n currency: string;\n}\n\nexport interface Price {\n id: string;\n amount: number;\n planAmount?: number;\n currency: CURRENCY_ENUM;\n paymentMethods: PaymentMethod[];\n isPriceFixed: boolean | null;\n targetCurrency: string;\n country: string;\n}\n\nexport interface RedirectUrls {\n approved: string | null;\n}\n\n// Product types\nexport interface Product {\n id?: string;\n name: LocalizedText[];\n description?: LocalizedText[];\n status?: STATUS_ENUM;\n pricingMode?: PRICING_MODE_ENUM;\n notes?: string | null;\n photos?: string[] | null;\n metadata?: Record<string, any> | null;\n stock?: number | null;\n createdAt?: string;\n}\n\n// Plan types\nexport interface Plan {\n id?: string;\n name: LocalizedText[];\n description: LocalizedText[];\n status?: STATUS_ENUM;\n frequency: {\n count: number;\n period: PLAN_FREQUENCY_ENUM;\n };\n trialPeriodDays?: number;\n trialPeriodEndsAt?: string;\n trialPeriodEndsReminderAt?: string;\n debitStrategy?: DEBIT_STRATEGY_ENUM;\n debitDay?: number;\n type: PLAN_TYPE_ENUM;\n pricingMode: PRICING_MODE_ENUM;\n metadata: Record<string, any> | null;\n createdAt: string;\n}\n\n// Payment Link types\nexport interface PrefilledData {\n email: string;\n fullName: string;\n countryCode: string;\n phoneNumber: string;\n city: string;\n state: string;\n country: string;\n zipCode: string;\n language: string;\n streetAddress: string;\n}\n\nexport interface BasePaymentLink {\n id: string;\n organizationId: string;\n status: STATUS_ENUM;\n title: LocalizedText[];\n description: LocalizedText[];\n notes: string;\n metadata: Record<string, any> | null;\n isSingleUse: boolean;\n paymentsCount: number;\n expirationDate: string | null;\n redirectUrls: RedirectUrls;\n prefilledFields: {\n customer: PrefilledData;\n } | null;\n fieldsSettings: Record<string, any> | null;\n customJs: string | null;\n customCss: string | null;\n customFields: Record<string, any> | null;\n discountPercentage: number | null;\n prices: Price[];\n showLogo: boolean;\n showCoupon: boolean;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface ProductPaymentLink extends BasePaymentLink {\n product: Product;\n plan?: never;\n}\n\nexport interface PlanPaymentLink extends BasePaymentLink {\n plan: Plan;\n product?: never;\n}\n\nexport interface InstantLinkPaymentLink extends BasePaymentLink {\n product?: never;\n plan?: never;\n}\n\nexport type PaymentLink = ProductPaymentLink | PlanPaymentLink | InstantLinkPaymentLink;\n\nexport interface Organization {\n id: string;\n name: string;\n logoUrl: string;\n}\n\n// Session types\nexport interface BaseSession {\n id: string;\n paymentLink: PaymentLink;\n createdAt: string;\n updatedAt: string;\n organization: Organization;\n country: string;\n refresh?: boolean;\n hasInstallments?: boolean;\n installments?: {\n installments: {\n model: ENUM_INSTALLMENT_MODEL;\n cft: number;\n installment: number;\n totalAmount: number;\n installmentAmount: number;\n cftAmount: number;\n }[];\n };\n}\n\n// Instant session types (different structure)\nexport interface InstantPaymentSession {\n id: string;\n organizationId: string;\n price: {\n amount: number;\n currency: string;\n targetCurrency: string;\n paymentMethods: Array<{\n methods: PAYMENT_METHOD_ENUM[];\n currency: string;\n }>;\n country: string;\n };\n organization: {\n id: string;\n name: string;\n logoUrl: string | null;\n };\n product?: Product;\n plan?: Plan;\n createdAt: string;\n updatedAt: string;\n country?: string;\n}\n\nexport interface BillingAddress {\n address: string;\n city: string;\n state: string;\n country: string;\n zip: string;\n}\n\nexport interface ShippingAddress {\n address: string;\n city: string;\n state: string;\n country: string;\n zip: string;\n}\n\nexport interface UserInformation {\n email: string;\n fullName: string;\n countryCode: string;\n phoneNumber: string;\n city: string;\n state: string;\n country: string;\n zip: string;\n language: string;\n streetAddress: string;\n}\n\nexport interface ProductSession extends BaseSession {\n paymentLink: ProductPaymentLink;\n}\n\nexport interface PlanSession extends BaseSession {\n paymentLink: PlanPaymentLink;\n}\n\nexport interface InstantLinkSession extends BaseSession {\n paymentLink: InstantLinkPaymentLink;\n}\n\nexport interface SDKItemBaseSession {\n id: string;\n price: Price;\n organizationId: string;\n organization: Organization;\n paymentMethods: PaymentMethod[];\n createdAt: string;\n updatedAt: string;\n country: string;\n}\n\nexport interface SDKProductItemSession extends SDKItemBaseSession {\n product: Product;\n plan: never;\n}\n\nexport interface SDKPlanItemSession extends SDKItemBaseSession {\n plan: Plan;\n product: never;\n}\n\nexport type CheckoutLandingSession = ProductSession | PlanSession | InstantLinkSession;\n\nexport type CheckoutSession = CheckoutLandingSession | InstantPaymentSession | SDKItemSession;\n\nexport type SDKItemSession = SDKProductItemSession | SDKPlanItemSession;\n\n// Type guards to distinguish between session types\n// TODO: An instant session is related to a product or plan, so it should be a product or plan session\nexport function isProductSession(session: CheckoutSession): session is ProductSession {\n return ('paymentLink' in session && 'product' in session.paymentLink) || 'product' in session;\n}\n\nexport function isPlanSession(session: CheckoutSession): session is PlanSession {\n return ('paymentLink' in session && 'plan' in session.paymentLink) || 'plan' in session;\n}\n\n// Session model class that can receive rebill checkout component\nexport class SessionModel {\n private session: CheckoutSession;\n private sessionType: SESSION_TYPE_ENUM;\n private externalPayment?: Payment | null;\n\n constructor(session: CheckoutSession, sessionType: SESSION_TYPE_ENUM) {\n this.sessionType = sessionType;\n this.session = {\n ...session,\n country: session.country,\n };\n }\n\n toObject(): CheckoutSession {\n return this.session;\n }\n\n getPrefilledData() {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return {};\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n return {};\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n return sessionWithPaymentLink.paymentLink.prefilledFields?.customer\n ? {\n email: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.email,\n fullName: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.fullName,\n countryCode: (() => {\n const originalCountryCode =\n sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.countryCode;\n if (originalCountryCode) {\n if (originalCountryCode.startsWith('+') || /^\\d+$/.test(originalCountryCode)) {\n const mappedCode = mapDialCodeToCountryCode(originalCountryCode);\n return mappedCode || 'ar'; // Fallback to Argentina if mapping fails\n }\n return originalCountryCode;\n }\n return this.getCountry();\n })(),\n phoneNumber: {\n number: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.phoneNumber,\n countryCode:\n sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.countryCode,\n },\n address: {\n billingAddress: {\n address:\n sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.streetAddress,\n city: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.city,\n state: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.state,\n country: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.country,\n zip: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.zipCode,\n },\n },\n language: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.language,\n }\n : {};\n }\n return {};\n }\n\n getUserInformation() {\n const prefilledData = this.getPrefilledData();\n return {\n email: prefilledData.email,\n fullName: prefilledData.fullName,\n countryCode: prefilledData.countryCode,\n phoneNumber: prefilledData.phoneNumber,\n address: prefilledData.address,\n language: prefilledData.language,\n };\n }\n /**\n * Get the session data\n */\n getSession(): CheckoutSession {\n return this.session;\n }\n\n /**\n * Get the session ID\n */\n getId(): string {\n return this.session.id;\n }\n\n getAllowCoupon(displayConfig?: DisplayConfig): boolean {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n // Para sesiones INSTANT, usar la prop display.discountCode (por defecto true)\n return displayConfig?.discountCode !== false;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n // Para sesiones SDK_ITEM, usar la prop display.discountCode (por defecto true)\n return displayConfig?.discountCode !== false;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n return sessionWithPaymentLink.paymentLink.showCoupon;\n }\n return false;\n }\n\n /**\n * Check if this is a product session\n */\n isProductSession(): boolean {\n return isProductSession(this.session);\n }\n\n /**\n * Check if this is a plan session\n */\n isPlanSession(): boolean {\n return isPlanSession(this.session);\n }\n\n /**\n * Get the session type\n */\n getSessionType(): SESSION_TYPE_ENUM {\n return this.sessionType;\n }\n\n /**\n * Get the session type\n */\n getItemSessionType(): SESSION_ITEM_TYPE_ENUM {\n return this.getProduct()\n ? SESSION_ITEM_TYPE_ENUM.PRODUCT\n : this.getPlan()\n ? SESSION_ITEM_TYPE_ENUM.PLAN\n : SESSION_ITEM_TYPE_ENUM.INSTANT_LINK;\n }\n\n getItemId(): string | null {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return null;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n if (this.isProductSession()) {\n return (this.session as SDKProductItemSession).product?.id;\n }\n if (this.isPlanSession()) {\n return (this.session as SDKPlanItemSession).plan?.id;\n }\n return null;\n }\n if (this.isProductSession()) {\n return (this.session as ProductSession).paymentLink?.product?.id;\n }\n if (this.isPlanSession()) {\n return (this.session as PlanSession).paymentLink?.plan?.id;\n }\n return null;\n }\n\n getProduct(): Product | null {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return (this.session as InstantPaymentSession).product || null;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n if (this.isProductSession()) {\n return (this.session as SDKProductItemSession).product || null;\n }\n }\n if (this.isProductSession()) {\n return (this.session as ProductSession).paymentLink.product;\n }\n return null;\n }\n\n /**\n * Get the plan if this is a plan session\n */\n getPlan(): Plan | null {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return (this.session as InstantPaymentSession).plan || null;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n if (this.isPlanSession()) {\n return (this.session as SDKPlanItemSession).plan || null;\n }\n }\n if (this.isPlanSession()) {\n return (this.session as PlanSession).paymentLink.plan;\n }\n return null;\n }\n\n /**\n * Get the session creation date\n */\n getCreatedAt(): string {\n return this.session.createdAt;\n }\n\n getOrganization(): Organization {\n return this.session.organization;\n }\n\n /**\n * Get the session last update date\n */\n getUpdatedAt(): string {\n return this.session.updatedAt;\n }\n\n /**\n * Get the session title in a specific language\n */\n getTitle(): string {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return (\n (this.session as InstantPaymentSession).product?.name[0]?.text ||\n (this.session as InstantPaymentSession).plan?.name[0]?.text\n );\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n if (this.isProductSession()) {\n return (\n (this.session as SDKProductItemSession).product?.name?.find(\n n => n.language === I18nService.getCurrentLanguage(),\n )?.text ||\n (this.session as SDKProductItemSession).product?.name?.[0]?.text ||\n ''\n );\n }\n if (this.isPlanSession()) {\n return (\n (this.session as SDKPlanItemSession).plan?.name?.find(\n n => n.language === I18nService.getCurrentLanguage(),\n )?.text ||\n (this.session as SDKPlanItemSession).plan?.name?.[0]?.text ||\n ''\n );\n }\n return '';\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n const title = sessionWithPaymentLink.paymentLink.title?.find(\n t => t.language === I18nService.getCurrentLanguage(),\n );\n return title?.text || sessionWithPaymentLink.paymentLink.title?.[0]?.text || '';\n }\n return '';\n }\n\n /**\n * Get the session description in a specific language\n */\n getDescription(): string {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n if (this.isProductSession()) {\n return (\n (this.session as SDKProductItemSession).product?.description?.find(\n d => d.language === I18nService.getCurrentLanguage(),\n )?.text ||\n (this.session as SDKProductItemSession).product?.description?.[0]?.text ||\n ''\n );\n }\n if (this.isPlanSession()) {\n return (\n (this.session as SDKPlanItemSession).plan?.description?.find(\n d => d.language === I18nService.getCurrentLanguage(),\n )?.text ||\n (this.session as SDKPlanItemSession).plan?.description?.[0]?.text ||\n ''\n );\n }\n return '';\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n if (this.isProductSession()) {\n return (\n (this.session as SDKProductItemSession).product?.description?.find(\n d => d.language === I18nService.getCurrentLanguage(),\n )?.text ||\n (this.session as SDKProductItemSession).product?.description?.[0]?.text ||\n ''\n );\n }\n if (this.isPlanSession()) {\n return (\n (this.session as SDKPlanItemSession).plan?.description?.find(\n d => d.language === I18nService.getCurrentLanguage(),\n )?.text ||\n (this.session as SDKPlanItemSession).plan?.description?.[0]?.text ||\n ''\n );\n }\n return '';\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const itemType = this.getItemSessionType();\n if (itemType === SESSION_ITEM_TYPE_ENUM.PLAN) {\n return (\n this.getPlan()?.description?.find(d => d.language === I18nService.getCurrentLanguage())\n ?.text ||\n this.getPlan()?.description?.[0]?.text ||\n ''\n );\n }\n if (itemType === SESSION_ITEM_TYPE_ENUM.PRODUCT) {\n return (\n this.getProduct()?.description?.find(d => d.language === I18nService.getCurrentLanguage())\n ?.text ||\n this.getProduct()?.description?.[0]?.text ||\n ''\n );\n }\n if (itemType === SESSION_ITEM_TYPE_ENUM.INSTANT_LINK) {\n const sessionWithPaymentLink = this.session as InstantLinkSession;\n const descriptionList = sessionWithPaymentLink.paymentLink?.description;\n const localized = descriptionList?.find(\n d => d.language === I18nService.getCurrentLanguage(),\n );\n return localized?.text || descriptionList?.[0]?.text || '';\n }\n }\n return '';\n }\n\n getCurrency(): CURRENCY_ENUM {\n return this.getPrice().currency;\n }\n\n /**\n * Get the prices for this session\n */\n getPrice(): Price {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n const instantPrice = (this.session as InstantPaymentSession).price;\n return {\n id: 'instant_price',\n amount: instantPrice.amount,\n currency: instantPrice.currency as CURRENCY_ENUM,\n paymentMethods: instantPrice.paymentMethods,\n isPriceFixed: true,\n targetCurrency: instantPrice.targetCurrency,\n country: this.getCountry(),\n };\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n return (this.session as SDKItemBaseSession).price;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n return sessionWithPaymentLink.paymentLink.prices[0];\n }\n throw new Error('Price not found because the session type is not instant or checkout landing');\n }\n\n /**\n * Get the organization ID\n */\n getOrganizationId(): string {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return (this.session as InstantPaymentSession).organizationId;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n return (this.session as SDKItemBaseSession).organizationId;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n return sessionWithPaymentLink.paymentLink.organizationId;\n }\n throw new Error(\n 'Organization ID not found because the session type is not instant or checkout landing',\n );\n }\n\n /**\n * Get the pricing mode\n */\n getPricingMode(): PRICING_MODE_ENUM {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return PRICING_MODE_ENUM.FIXED; // TODO: Instant sessions should support other pricing modes because they are related to a product or plan\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n if (this.isProductSession()) {\n return (\n (this.session as SDKProductItemSession).product?.pricingMode || PRICING_MODE_ENUM.FIXED\n );\n }\n if (this.isPlanSession()) {\n return (this.session as SDKPlanItemSession).plan?.pricingMode || PRICING_MODE_ENUM.FIXED;\n }\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n return this.getProduct()?.pricingMode || PRICING_MODE_ENUM.FIXED;\n }\n return this.getPlan()?.pricingMode || PRICING_MODE_ENUM.FIXED;\n }\n\n getEnabledPaymentMethods(): PAYMENT_METHOD_ENUM[] {\n let paymentMethods: PAYMENT_METHOD_ENUM[] = [];\n\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n const methods = (this.session as InstantPaymentSession).price.paymentMethods[0].methods;\n paymentMethods = Array.from(new Set(methods));\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n const methods = (this.session as InstantPaymentSession).price.paymentMethods[0].methods;\n paymentMethods = Array.from(new Set(methods));\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n paymentMethods = sessionWithPaymentLink.paymentLink.prices[0].paymentMethods[0].methods;\n }\n\n if (\n this.isPlanSession() &&\n this.getPlan()?.trialPeriodDays &&\n this.getPlan().trialPeriodDays > 0\n ) {\n return paymentMethods.filter(method => method === PAYMENT_METHOD_ENUM.CARD);\n }\n\n return paymentMethods;\n }\n //Verificar si sirve para todos los tipos de session\n getPaymentMethodDetails(): PaymentMethodDetails[] {\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n\n if (\n 'paymentMethods' in sessionWithPaymentLink &&\n Array.isArray(sessionWithPaymentLink.paymentMethods)\n ) {\n return sessionWithPaymentLink.paymentMethods.map(provider => ({\n name: provider.name,\n type: provider.type,\n }));\n }\n }\n\n if (\n this.sessionType === SESSION_TYPE_ENUM.INSTANT ||\n this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM\n ) {\n const instantSession = this.session as InstantPaymentSession;\n if ('paymentMethods' in instantSession && Array.isArray(instantSession.paymentMethods)) {\n return instantSession.paymentMethods.map(provider => ({\n name: provider.name,\n type: provider.type,\n }));\n }\n }\n\n return [];\n }\n\n /**\n * Get plan frequency (only for plan sessions)\n */\n getPlanFrequency(): PLAN_FREQUENCY_ENUM | null {\n if (this.isPlanSession()) {\n return this.getPlan()?.frequency.period || null;\n }\n return null;\n }\n getPlanFrequencyCount(): number | null {\n if (this.isPlanSession()) {\n return this.getPlan()?.frequency.count || null;\n }\n return null;\n }\n\n /**\n * Get plan type (only for plan sessions)\n */\n getPlanType(): PLAN_TYPE_ENUM | null {\n if (this.isPlanSession()) {\n return this.getPlan()?.type || null;\n }\n return null;\n }\n\n getTrial(): {\n trialPeriodEndsAt: string;\n trialPeriodEndsReminderAt: string;\n trialPeriodDays: number;\n } | null {\n if (this.isPlanSession()) {\n return {\n trialPeriodEndsAt: this.getPlan()?.trialPeriodEndsAt,\n trialPeriodDays: this.getPlan()?.trialPeriodDays,\n trialPeriodEndsReminderAt: this.getPlan()?.trialPeriodEndsReminderAt,\n };\n }\n return null;\n }\n\n getCountry(): string {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return (this.session as InstantPaymentSession).price.country || '';\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n return (this.session as SDKItemBaseSession).country;\n }\n return this.session.country;\n }\n getCountryCurrency(): string {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return (\n (this.session as InstantPaymentSession).price.country ??\n countryByCurrency[(this.session as InstantPaymentSession).price.currency] ??\n ''\n );\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n return (\n (this.session as SDKItemBaseSession).price.country ??\n countryByCurrency[(this.session as SDKItemBaseSession).price.currency] ??\n ''\n );\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n return this.getPrice().country || '';\n }\n return '';\n }\n\n getRedirectSuccess(): string {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return null; // TODO: Validate Instant session API response, should return a redirect URL\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n return null; // TODO: Validate SDK item session API response, should return a redirect URL\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n return sessionWithPaymentLink.paymentLink?.redirectUrls?.approved || '';\n }\n return '';\n }\n\n getMetadata(): Record<string, any> {\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n // TODO: Priority to query params in the URL\n if ((this.session as InstantLinkSession)?.paymentLink?.metadata) {\n return (this.session as InstantLinkSession).paymentLink.metadata;\n }\n const itemType = this.getItemSessionType();\n switch (itemType) {\n case SESSION_ITEM_TYPE_ENUM.PRODUCT:\n return this.getProduct()?.metadata || {};\n case SESSION_ITEM_TYPE_ENUM.PLAN:\n return this.getPlan()?.metadata || {};\n case SESSION_ITEM_TYPE_ENUM.INSTANT_LINK:\n return (this.session as InstantLinkSession).paymentLink.metadata || {};\n }\n }\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n if (this.isProductSession()) {\n return (this.session as InstantPaymentSession).product?.metadata || {};\n }\n if (this.isPlanSession()) {\n return (this.session as InstantPaymentSession).plan?.metadata || {};\n }\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n if (this.isProductSession()) {\n return (this.session as SDKProductItemSession).product?.metadata || {};\n }\n if (this.isPlanSession()) {\n return (this.session as SDKPlanItemSession).plan?.metadata || {};\n }\n }\n return {};\n }\n //is sandbox si el id de la org comienza con test\n isSandbox(): boolean {\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const organizationId = this.getOrganizationId();\n return organizationId ? organizationId.startsWith('test') : false;\n }\n return false;\n }\n getDebitStrategy(): DEBIT_STRATEGY_ENUM | null {\n if (this.isPlanSession()) {\n return this.getPlan()?.debitStrategy || null;\n }\n return null;\n }\n\n getDebitDay(): number | null {\n if (this.isPlanSession()) {\n return this.getPlan()?.debitDay || null;\n }\n return null;\n }\n\n getPlanAmount(): number | null {\n if (this.isPlanSession()) {\n return this.getPrice().planAmount || null;\n }\n return null;\n }\n getPayment(): Payment | null {\n if (this.externalPayment) {\n return this.externalPayment;\n }\n return null;\n }\n getInstallments(): {\n isAvailableInstallments: boolean;\n installments: {\n model: ENUM_INSTALLMENT_MODEL;\n cft: number;\n installment: number;\n totalAmount: number;\n installmentAmount: number;\n cftAmount: number;\n }[];\n } | null {\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionInstallments = (this.session as CheckoutLandingSession).installments;\n if (!sessionInstallments || !sessionInstallments.installments) {\n return {\n installments: [],\n isAvailableInstallments: false,\n };\n }\n return {\n ...sessionInstallments,\n isAvailableInstallments: !!sessionInstallments?.installments?.length,\n };\n }\n return null;\n }\n}\n","import { createStore } from '@stencil/store';\nimport {\n CreateAPMCheckoutResponse,\n CreateCardCheckoutResponse,\n} from '../api/entities/checkout/types';\nimport { initializeI18nWithSessionLanguage } from '../i18n/i18n.config';\nimport {\n CheckoutLandingSession,\n CheckoutSession,\n CURRENCY_ENUM,\n InstantPaymentSession,\n SDKItemSession,\n SESSION_DISCOUNT_TYPE_ENUM,\n SESSION_ITEM_TYPE_ENUM,\n SESSION_TYPE_ENUM,\n SessionModel,\n} from '../models';\nimport { DEBIT_STRATEGY_ENUM } from '../models/enums/debit-strategy.enum';\nimport { ENUM_INSTALLMENT_MODEL } from '../models/enums/installment.enum';\nimport { LOCALES_ENUM } from '../models/enums/locales.enum';\nimport { PAYMENT_METHOD_ENUM } from '../models/enums/payment-methods.enum';\nimport { PaymentMessageE } from '../models/enums/payment-status.enum';\nimport { PROVIDER_ENUM } from '../models/enums/provider.enum';\nimport { mapDialCodeToCountryCode } from '../utils/country-code-mapper';\n\n// Interfaces específicas para metadatos de métodos de pago\nexport interface BankTransferMetadata {\n name: string;\n type: string;\n bankCode: string;\n bankName: string;\n ticketId: string;\n bankProcessDate: string;\n trazabilityCode: string;\n paymentDescription: string;\n originalTransactionState: string;\n}\n\nexport interface CardMetadata {\n // Campos específicos para tarjetas si los necesitas\n [key: string]: unknown;\n}\n\nexport type PaymentMethodMetadata = BankTransferMetadata | CardMetadata | Record<string, unknown>;\n\nexport interface Payment {\n id: string;\n traceId: string;\n createdAt: string;\n updatedAt: string;\n organizationId: string;\n amount: number;\n currency: string;\n customer: {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n phoneNumbers: {\n number: string;\n countryCode: string;\n }[];\n };\n status: string;\n metadata: Record<string, unknown>;\n paymentMethodType: PAYMENT_METHOD_ENUM;\n paymentMethodMetadata: PaymentMethodMetadata;\n card?: {\n id: string;\n name: string;\n expiration: {\n month: string;\n year: string;\n };\n lastFour: string;\n brand: string;\n };\n quantity: number;\n paymentProviderReference: string | null;\n paymentProviderDescription: string | null;\n installments: number | null;\n priceFixedIn: string | null;\n conversionRate: number | null;\n couponId: string | null;\n description: {\n text: string;\n language: string;\n };\n processingMode: string;\n processingFee: number | null;\n errorDetail?: string | null;\n subscriptionId?: string | null;\n country: string;\n timezone: string | null;\n}\n\nexport interface UserInformation {\n email?: string;\n fullName?: string;\n countryCode?: string;\n phoneNumber?: {\n number: string;\n countryCode: string;\n };\n documentType?: string;\n documentNumber?: string;\n address?: {\n billingAddress?: {\n address?: string;\n city?: string;\n state?: string;\n country?: string;\n zip?: string;\n addInformation?: string;\n };\n shippingAddress?: {\n address?: string;\n city?: string;\n state?: string;\n country?: string;\n zip?: string;\n addInformation?: string;\n };\n };\n language?: string;\n}\n\nexport interface PaymentMethodDetails {\n name: string;\n type: string;\n}\n\nexport interface SessionState {\n _session: SessionModel | null;\n sessionRefreshed: boolean;\n data: {\n sessionId: string;\n customerId?: string | null;\n accessToken?: string | null;\n sessionType: SESSION_TYPE_ENUM | null;\n cardTokenId?: string;\n cardId?: string;\n country: string;\n organization: {\n name: string;\n logoUrl: string;\n id: string;\n };\n pricing: {\n currency?: CURRENCY_ENUM;\n subtotal: number;\n totalWithoutInstallment: number; // total - discountAmount\n total: number; // total = subtotal - discountAmount + intallmentAmount\n installments?: number; // Cantidad de cuotas\n totalInterestInstallmentAmount: number; // Total de intereses de la cuota\n discountAmount: number; // Descuento aplicado\n discountCouponCode: string; // Código del descuento\n country: string;\n trialDays?: number | null;\n planAmount?: number;\n };\n cardInformation?: {\n brand: string;\n type: string;\n isoCountry: string;\n bank: string;\n lastFour?: string;\n installments: {\n isAvailableInstallments: boolean;\n installments: {\n model: ENUM_INSTALLMENT_MODEL;\n cft: number;\n installment: number;\n totalAmount: number;\n installmentAmount: number;\n cftAmount: number;\n }[];\n selectedInstallment?: {\n cft: number;\n cftAmount: number;\n installment: number; // Cantidad de cuotas\n installmentAmount: number;\n totalAmount: number;\n model: ENUM_INSTALLMENT_MODEL;\n };\n };\n };\n userInformation: UserInformation;\n itemInformation: {\n id: string;\n type: SESSION_ITEM_TYPE_ENUM | null;\n title: string;\n description: string;\n paymentMethods: PAYMENT_METHOD_ENUM[];\n paymentMethodDetails: PaymentMethodDetails[];\n redirectSuccess: string;\n trial: {\n trialPeriodEndsAt: string | null;\n trialPeriodEndsReminderAt: string | null;\n trialPeriodDays: number | null;\n };\n debitStrategy: DEBIT_STRATEGY_ENUM | null;\n debitDay: number | null;\n };\n discount: {\n couponCode: string | null;\n discountAmount: number;\n amount: number;\n discountDuration?: number | null;\n discountType: SESSION_DISCOUNT_TYPE_ENUM | null;\n discountedPercentage?: number;\n };\n prefilledData: UserInformation;\n providerKey: string;\n bankId?: {\n code: string;\n name: string;\n };\n paymentStatus: PaymentMessageE | null;\n paymentDate: string | null;\n paymentReference: string | null;\n paymentMethodSelected: PAYMENT_METHOD_ENUM | null;\n fetchingInstallments: boolean;\n payment?: CreateCardCheckoutResponse | CreateAPMCheckoutResponse | Payment | null;\n };\n form: {\n isComplete: boolean;\n isLoading: boolean;\n };\n currentLocale: LOCALES_ENUM;\n metadata: Record<string, any>;\n isInitialized: boolean;\n isSandbox: boolean;\n deviceId: string;\n provider: PROVIDER_ENUM;\n saveCard?: boolean;\n createdAt: string | null;\n cardMode?: 'input' | 'select' | null;\n}\n\nconst initialState: SessionState = {\n _session: null,\n sessionRefreshed: false,\n data: {\n sessionId: '',\n sessionType: null,\n country: '',\n organization: {\n name: '',\n logoUrl: '',\n id: '',\n },\n pricing: {\n total: 0,\n subtotal: 0,\n totalWithoutInstallment: 0,\n discountAmount: 0,\n totalInterestInstallmentAmount: 0,\n discountCouponCode: null,\n country: '',\n planAmount: 0,\n },\n cardInformation: {\n brand: null,\n type: null,\n isoCountry: null,\n bank: null,\n lastFour: null,\n installments: {\n isAvailableInstallments: false,\n installments: [\n {\n model: null,\n cft: null,\n installment: null,\n totalAmount: null,\n installmentAmount: null,\n cftAmount: null,\n },\n ],\n selectedInstallment: {\n cft: null,\n cftAmount: null,\n installment: null, // Cantidad de cuotas\n installmentAmount: null,\n totalAmount: null,\n model: null,\n },\n },\n },\n userInformation: {\n email: '',\n fullName: '',\n countryCode: '',\n phoneNumber: {\n number: '',\n countryCode: '',\n },\n documentType: '',\n documentNumber: '',\n address: {},\n },\n itemInformation: {\n id: '',\n type: null,\n title: '',\n description: '',\n paymentMethods: [],\n paymentMethodDetails: [],\n redirectSuccess: '',\n trial: {\n trialPeriodEndsAt: null,\n trialPeriodEndsReminderAt: null,\n trialPeriodDays: null,\n },\n debitStrategy: null,\n debitDay: null,\n },\n discount: {\n couponCode: null,\n discountAmount: 0,\n amount: 0,\n discountType: null,\n discountedPercentage: 0,\n discountDuration: null,\n },\n prefilledData: {\n email: '',\n fullName: '',\n countryCode: '',\n phoneNumber: {\n number: '',\n countryCode: '',\n },\n address: {\n billingAddress: {\n address: '',\n city: '',\n state: '',\n country: '',\n zip: '',\n addInformation: '',\n },\n },\n language: '',\n },\n providerKey: '',\n bankId: {\n code: '',\n name: '',\n },\n paymentStatus: null,\n paymentDate: null,\n paymentReference: null,\n paymentMethodSelected: null,\n fetchingInstallments: false,\n payment: null,\n },\n form: {\n isComplete: false,\n isLoading: false,\n },\n metadata: {},\n currentLocale: null,\n isInitialized: false,\n isSandbox: false,\n deviceId: null,\n provider: null,\n saveCard: false,\n createdAt: null,\n cardMode: 'select',\n};\n\nconst { state, onChange, reset } = createStore(initialState);\nexport { onChange };\n\nexport class SessionStore {\n static initializeSession({\n session,\n type,\n payment,\n }: {\n session: CheckoutSession | InstantPaymentSession | SDKItemSession;\n type: SESSION_TYPE_ENUM;\n payment?: Payment | null;\n }): void {\n state._session = new SessionModel(session, type);\n state.data.sessionId = state._session.getId();\n state.data.sessionType = type;\n state.data.organization.name = state._session.getOrganization().name;\n state.data.organization.logoUrl = state._session.getOrganization().logoUrl;\n state.data.organization.id = state._session.getOrganization().id;\n state.data.pricing.currency = state._session.getCurrency();\n state.data.pricing.total = state._session.getPrice().amount;\n state.data.pricing.subtotal = state._session.getPrice().amount;\n state.data.pricing.totalWithoutInstallment = state._session.getPrice().amount;\n state.data.pricing.country = state._session.getCountryCurrency();\n state.data.itemInformation.title = state._session.getTitle();\n state.data.itemInformation.description = state._session.getDescription();\n state.data.itemInformation.paymentMethods = state._session.getEnabledPaymentMethods();\n state.data.itemInformation.paymentMethodDetails = state._session.getPaymentMethodDetails();\n state.data.country = state._session.getCountry();\n state.data.itemInformation.id = state._session.getItemId();\n state.data.itemInformation.type = state._session.getItemSessionType();\n state.data.itemInformation.redirectSuccess = state._session.getRedirectSuccess();\n state.data.itemInformation.trial = state._session.getTrial();\n state.data.prefilledData = state._session.getPrefilledData();\n state.data.userInformation = state._session.getUserInformation();\n state.metadata = state._session.getMetadata();\n state.isSandbox = state._session.isSandbox();\n state.data.itemInformation.debitStrategy = state._session.getDebitStrategy();\n state.data.itemInformation.debitDay = state._session.getDebitDay();\n state.data.pricing.planAmount = state._session.getPlanAmount();\n state.data.payment = state._session.getPayment();\n payment && SessionStore.setPayment(payment);\n const sessionLanguage = state.data.prefilledData?.language;\n if (sessionLanguage) initializeI18nWithSessionLanguage(sessionLanguage);\n state.data.cardInformation.installments = state._session.getInstallments();\n if (type === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const checkoutSession = session as CheckoutLandingSession;\n if (checkoutSession.refresh) {\n state.sessionRefreshed = true;\n }\n }\n\n state.data = { ...state.data };\n state.isInitialized = true;\n }\n\n static setDiscount(\n discount: {\n couponCode: string | null;\n discountAmount: number;\n amount: number;\n discountType: SESSION_DISCOUNT_TYPE_ENUM | null;\n discountedPercentage?: number;\n discountDuration?: number | null;\n } | null,\n ) {\n if (discount) {\n state.data.discount = discount;\n state.data.pricing.discountAmount = discount.discountAmount || 0;\n state.data.pricing.discountCouponCode = discount.couponCode || '';\n } else {\n state.data.pricing.discountAmount = 0;\n state.data.pricing.discountCouponCode = '';\n state.data.discount = {\n couponCode: null,\n discountAmount: 0,\n amount: 0,\n discountType: null,\n discountedPercentage: 0,\n };\n }\n SessionStore.calculateTotal();\n\n state.data = { ...state.data };\n }\n\n static setCardTokenId(cardTokenId: string | null) {\n state.data.cardTokenId = cardTokenId || null;\n // Si se setea cardTokenId, limpiar cardId (exclusión mutua)\n if (cardTokenId) {\n state.data.cardId = null;\n }\n state.data = { ...state.data };\n }\n\n static changeLanguage(language: LOCALES_ENUM) {\n state.currentLocale = language;\n state.data.itemInformation.title = state._session?.getTitle() || '';\n state.data.itemInformation.description = state._session?.getDescription() || '';\n state.data = { ...state.data };\n }\n\n static setBillingAddress(address?: {\n address?: string;\n city?: string;\n state?: string;\n country?: string;\n zip?: string;\n addInformation?: string;\n }) {\n if (!state.data.userInformation.address) {\n state.data.userInformation.address = {};\n }\n if (!state.data.userInformation.address.billingAddress) {\n state.data.userInformation.address.billingAddress = {};\n }\n state.data.userInformation.address.billingAddress = {\n ...state.data.userInformation.address.billingAddress,\n ...address,\n };\n state.data = { ...state.data };\n }\n\n static setUserInformation(userInformation: {\n email?: string;\n fullName?: string;\n countryCode?: string;\n phoneNumber?: {\n number: string;\n countryCode: string;\n };\n documentType?: string;\n documentNumber?: string;\n address?: {\n billingAddress?: {\n address?: string;\n city?: string;\n state?: string;\n country?: string;\n zip?: string;\n addInformation?: string;\n };\n shippingAddress?: {\n address?: string;\n city?: string;\n state?: string;\n country?: string;\n zip?: string;\n addInformation?: string;\n };\n };\n }) {\n state.data.userInformation = { ...state.data.userInformation, ...userInformation };\n state.data = { ...state.data };\n }\n\n static setUserPhoneNumber(phoneNumber: { number: string; countryCode: string }) {\n state.data.userInformation.phoneNumber = phoneNumber;\n state.data = { ...state.data };\n }\n\n static setProviderKey(providerKey: string) {\n state.data.providerKey = providerKey;\n state.data = { ...state.data };\n }\n\n static setBankId(bankId: { code: string; name: string }) {\n state.data.bankId = bankId;\n state.data = { ...state.data };\n }\n\n static clearSession(): void {\n state._session = null;\n state.isInitialized = false;\n }\n\n static onChange(\n key: keyof SessionState,\n callback: (session: SessionState[keyof SessionState]) => void,\n ) {\n return onChange(key, callback);\n }\n\n static reset() {\n reset();\n }\n\n static calculateTotal() {\n state.data.pricing.total =\n state.data.pricing.subtotal -\n state.data.pricing.discountAmount +\n state.data.pricing.totalInterestInstallmentAmount;\n state.data.pricing.totalWithoutInstallment =\n state.data.pricing.subtotal - state.data.pricing.discountAmount;\n state.data = { ...state.data };\n }\n\n static setIsAvailableInstallments(isAvailableInstallments: boolean) {\n if (!isAvailableInstallments) {\n SessionStore.setSelectedInstallment(null);\n }\n state.data.cardInformation.installments.isAvailableInstallments = isAvailableInstallments;\n state.data = { ...state.data };\n }\n\n /**\n * Establece la cuota seleccionada\n */\n static setSelectedInstallment(installment: string | null): void {\n if (!installment) {\n state.data.cardInformation.installments.selectedInstallment = null;\n state.data.pricing.totalInterestInstallmentAmount = 0;\n state.data.pricing.installments = null;\n SessionStore.calculateTotal();\n state.data = { ...state.data };\n return;\n }\n const selectedInstallment = state.data.cardInformation.installments.installments.find(\n i => i.installment.toString() === installment.toString(),\n );\n if (selectedInstallment) {\n state.data.cardInformation.installments.selectedInstallment = selectedInstallment;\n state.data.pricing.installments = selectedInstallment.installment;\n state.data.pricing.totalInterestInstallmentAmount = selectedInstallment.cftAmount;\n }\n SessionStore.calculateTotal();\n state.data = { ...state.data };\n }\n\n static setCardInformation(cardInformation: {\n brand: string;\n type: string;\n isoCountry: string;\n bank: string;\n lastFour?: string;\n installments: {\n installments: {\n model: ENUM_INSTALLMENT_MODEL;\n cft: number;\n installment: number;\n totalAmount: number;\n installmentAmount: number;\n cftAmount: number;\n }[];\n };\n }) {\n if (cardInformation) {\n state.data.cardInformation = {\n ...cardInformation,\n installments: { ...state.data.cardInformation.installments },\n };\n SessionStore.setIsAvailableInstallments(!!cardInformation.installments?.installments?.length);\n if (state.data.pricing.installments) {\n SessionStore.setSelectedInstallment(state.data.pricing?.installments?.toString());\n }\n } else {\n state.data.cardInformation = null;\n state.data.pricing.installments = null;\n }\n state.data = { ...state.data };\n }\n\n static setCheckoutResponse(\n checkoutResponse: CreateCardCheckoutResponse | CreateAPMCheckoutResponse,\n ) {\n state.data.payment = checkoutResponse;\n state.data = { ...state.data };\n }\n\n static clearCheckoutResponse() {\n state.data.payment = null;\n state.data = { ...state.data };\n }\n\n static clearCustomerIdAndToken() {\n state.data.customerId = null;\n state.data.accessToken = null;\n state.data = { ...state.data };\n }\n\n static clearUserInformation() {\n state.data.userInformation = {\n email: undefined,\n fullName: undefined,\n countryCode: undefined,\n phoneNumber: undefined,\n documentType: undefined,\n documentNumber: undefined,\n address: undefined,\n language: undefined,\n };\n state.data = { ...state.data };\n }\n\n static setCardId(cardId: string | null) {\n state.data.cardId = cardId || null;\n // Si se setea cardId, limpiar cardTokenId (exclusión mutua)\n if (cardId) {\n state.data.cardTokenId = null;\n }\n state.data = { ...state.data };\n }\n\n static setSaveCard(saveCard: boolean) {\n state.saveCard = saveCard;\n state.data = { ...state.data };\n }\n\n static setCustomerId(customerId: string) {\n state.data.customerId = customerId;\n state.data = { ...state.data };\n }\n\n static setAccessToken(accessToken: string) {\n state.data.accessToken = accessToken;\n state.data = { ...state.data };\n }\n\n static setProvider(provider: PROVIDER_ENUM) {\n state.provider = provider;\n state.data = { ...state.data };\n }\n\n static setPayment(payment: Payment) {\n state.data.payment = payment;\n\n if (payment.customer.email != null) {\n state.data.userInformation.email = payment.customer.email;\n }\n\n if (payment.customer.firstName != null && payment.customer.lastName != null) {\n state.data.userInformation.fullName = `${payment.customer.firstName} ${payment.customer.lastName}`;\n }\n\n if (payment.customer.phoneNumbers && payment.customer.phoneNumbers.length > 0) {\n if (payment.customer.phoneNumbers[0].countryCode != null) {\n const dialCode = payment.customer.phoneNumbers[0].countryCode;\n const mappedCountryCode = mapDialCodeToCountryCode(dialCode);\n const countryCode = mappedCountryCode;\n state.data.userInformation.countryCode = countryCode;\n }\n state.data.userInformation.phoneNumber = {\n number: payment.customer.phoneNumbers[0].number,\n countryCode: payment.customer.phoneNumbers[0].countryCode,\n };\n }\n\n if (payment.amount != null) {\n state.data.pricing.total = payment.amount;\n }\n\n if (payment.installments != null) {\n state.data.pricing.installments = payment.installments;\n }\n\n if (payment.currency != null) {\n state.data.pricing.currency = payment.currency as CURRENCY_ENUM;\n }\n\n if (payment.status != null) {\n state.data.paymentStatus = payment.status as PaymentMessageE;\n }\n\n if (payment.metadata != null) {\n state.metadata = payment.metadata;\n }\n\n if (payment.createdAt != null) {\n state.data.paymentDate = payment.createdAt;\n state.createdAt = payment.createdAt;\n }\n\n if (payment.paymentMethodType != null) {\n state.data.paymentMethodSelected = payment.paymentMethodType;\n }\n if (payment.traceId != null) {\n state.data.paymentReference = payment.traceId;\n }\n\n // Extraer bankCode del externalPayment para precompletar el selector de banco\n if (payment.paymentMethodMetadata && 'bankCode' in payment.paymentMethodMetadata) {\n const bankMetadata = payment.paymentMethodMetadata as BankTransferMetadata;\n if (bankMetadata.bankCode && bankMetadata.bankName) {\n SessionStore.setBankId({\n code: bankMetadata.bankCode,\n name: bankMetadata.bankName,\n });\n }\n }\n\n state.data = { ...state.data };\n }\n static setPaymentStatus(paymentStatus: PaymentMessageE) {\n state.data.paymentStatus = paymentStatus;\n state.data = { ...state.data };\n }\n\n static setPaymentMethodSelected(paymentMethod: PAYMENT_METHOD_ENUM) {\n state.data.paymentMethodSelected = paymentMethod;\n state.data = { ...state.data };\n }\n static setFetchingInstallments(fetchingInstallments: boolean) {\n state.data.fetchingInstallments = fetchingInstallments;\n state.data = { ...state.data };\n }\n\n static setCardMode(cardMode: 'input' | 'select' | null) {\n state.cardMode = cardMode;\n state.data = { ...state.data };\n }\n\n static setSessionRefreshed(value: boolean) {\n state.sessionRefreshed = value;\n }\n}\n// Exportar el estado para uso en componentes\nexport { state as sessionState };\n","export const enTranslation = {\n common: {\n welcome: 'Welcome 123',\n hello: 'Hello',\n loading: 'Loading...',\n error: 'An error occurred',\n success: 'Success',\n loadingOptions: 'Loading options...',\n },\n session: {\n refreshedTitle: 'Session updated',\n refreshedMessage:\n 'Your session expired and has been refreshed. You can continue with your purchase.',\n },\n search: {\n searchCountries: 'Search for country...',\n searchBanks: 'Search for bank...',\n searchOptions: 'Search for options...',\n searchAddresses: 'Search for address...',\n searchStates: 'Search for state...',\n },\n buttons: {\n submit: 'Submit',\n cancel: 'Cancel',\n save: 'Save',\n delete: 'Delete',\n payNow: 'Pay now',\n continue: 'Continue',\n continueWithPaymentMethod: 'Continue with {{paymentMethod}}',\n renewSubscription: 'Renew subscription',\n updateCard: 'Update card',\n subscribe: 'Subscribe',\n secureEncrypted: 'Secure and encrypted',\n startTrial: 'Start free trial for {{trialDays}} days',\n redirecting: 'Redirecting in {{seconds}} seconds',\n },\n paymentMethods: {\n card: 'Card',\n cardDescription: 'Credit or debit card',\n saveCard: 'Save my card',\n cash: 'Cash',\n cashDescription: 'Cash in branch',\n bank_transfer: 'Bank transfer',\n bank_transfer_qr: 'QR transfer',\n transferDescription: 'Bank transfer',\n errorTitle: 'Payment rejected',\n },\n paymentErrors: {\n //Message generic for card\n genericErrorCard:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n\n //Message generic for APM\n genericErrorMessagePIX: 'Please try again in a few minutes or with another payment method.',\n genericErrorMessageQR: 'Please try again in a few minutes or with another payment method.',\n genericErrorMessagePSE: 'Please try again in a few minutes or with another payment method.',\n genericErrorMessageBankTransfer:\n 'Please try again in a few minutes or with another payment method.',\n genericErrorMessage: 'Please try again in a few minutes or with another payment method.',\n\n //Title generic for card\n genericErrorTitleCard: 'Payment rejected',\n\n //Title generic for APM\n genericErrorTitlePIX: 'Could not generate your PIX code',\n genericErrorTitleQR: 'An error occurred while trying to generate the QR',\n genericErrorTitlePSE: 'An error occurred while redirecting to PSE',\n genericErrorTitleBankTransfer: 'Could not process your payment request',\n genericErrorTitle: 'Could not process your payment request',\n\n // Generic errors\n genericError:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n internalError:\n 'Your payment was not completed. Please try again in a few minutes or with another payment method.',\n providerError:\n 'Your payment was not completed. Please try again in a few minutes or with another payment method.',\n\n // Payment status errors\n pending: 'The payment is being processed.',\n approved: 'The payment was approved successfully.',\n rejected:\n 'The issuing entity did not authorize your payment. Please try again, or contact your financial institution to authorize the transaction.',\n declined: 'The payment was declined.',\n error: 'An error occurred during payment processing.',\n refunded: 'The payment has been refunded.',\n cancelled: 'The payment has been cancelled.',\n partiallyRefunded: 'The payment has been partially refunded.',\n expired: 'The payment has expired.',\n genericReject:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n invalidCardNumber:\n 'Invalid card data. Please validate the data and try again or try with another payment method',\n insufficientFunds:\n 'Payment rejected due to insufficient funds. Try again with another card with available funds or with another payment method.',\n invalidCardCvc:\n 'Invalid card data. Please validate the data and try again or try with another payment method',\n invalidCardExpirationDate:\n 'Invalid card data. Please validate the data and try again or try with another payment method',\n duplicatePayment:\n 'The duplicate payment error occurs when the same payment is processed more than once.',\n cardDisabled:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n cardTypeNotAllowed: 'Card type not supported. Please use another card type or payment method.',\n pinAttemptsExceeded:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n blacklistedCard:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n processingError:\n 'Payment rejected during processing. Please try again, use another card or payment method',\n speedLimitExceeded:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n APMMessageError: 'Please try again in a few minutes.',\n // Card errors\n invalidCard: 'The card is invalid.',\n invalidCardHolderName: 'The cardholder name is invalid.',\n invalidCardTokenizeCountry: 'The card cannot be processed in this country.',\n\n // Customer errors\n invalidCustomerEmail: 'The entered email is invalid. Please enter a valid email and try again.',\n invalidCustomerPhone: 'The entered phone is invalid. Please review the data and try again.',\n invalidCustomerBillingAddress:\n 'The entered address is invalid. Please review the data and try again.',\n invalidCustomerAddress: 'The entered address is invalid. Please review the data and try again.',\n invalidCustomerCity:\n 'The entered province or state is invalid. Please review the data and try again.',\n invalidCustomerState: 'The customer state/province is invalid.',\n invalidCustomerZip: 'The entered postal code is invalid. Please review the data and try again.',\n invalidCustomerCountry: 'The entered country is invalid. Please review the data and try again.',\n invalidCustomerDocument:\n 'The entered document is invalid. Please review the data and try again.',\n invalidCustomerDocumentNumber:\n 'The entered document number is invalid. Please review the data and try again.',\n invalidCustomerDocumentType:\n 'The entered document type is invalid. Please review the data and try again.',\n\n // Required fields errors\n requiredCustomerEmail: 'The email is mandatory data to process the payment.',\n requiredCustomerPhone:\n 'Your phone is mandatory data to process the payment. Please review the data and try again.',\n requiredCustomerBillingAddress:\n 'Your address is mandatory data to process the payment. Please review the data and try again.',\n requiredCustomerAddress:\n 'Your address is mandatory data to process the payment. Please enter a valid address and try again',\n requiredCustomerCity:\n 'The city is mandatory data to process the payment. Please enter it and try again.',\n requiredCustomerState:\n 'The province or state is mandatory data to process the payment. Please enter it and try again.',\n requiredCustomerZip:\n 'The postal code is mandatory data to process the payment. Please enter it and try again.',\n requiredCustomerCountry:\n 'The country is mandatory data to process the payment. Please enter it and try again.',\n requiredCustomerDocument:\n 'The document is mandatory data to process the payment. Please enter a valid document and try again.',\n requiredCustomerDocumentNumber:\n 'The document number is mandatory data to process the payment. Please enter a valid document number and try again.',\n requiredCustomerDocumentType:\n 'The document type is mandatory data to process the payment. Please enter a valid document type and try again.',\n\n // Checkout errors\n invalidCheckoutRequest: 'Payment attempt rejected. Please try again in a few minutes.',\n invalidSession:\n 'Your payment was not completed. The session has expired. Reload the page and try again.',\n unavailablePaymentMethod:\n 'Payment method not available. Please try again with another payment method.',\n invalidAmount:\n 'Payment rejected due to invalid amount. Please contact the merchant to modify the amount and try again',\n invalidCurrency: 'The entered currency is invalid. Please review the data and try again.',\n invalidCountry: 'The entered country is invalid. Please review the data and try again.',\n maxAttempts:\n 'Payment rejected for exceeding the attempt limit. Please try again with another payment method.',\n paymentExpired:\n 'The payment attempt has expired. Please generate a new payment attempt to complete your payment',\n\n // Checkout with APM errors\n invalidCheckoutPaymentMethod:\n 'Invalid payment method. Please try again with another available payment method',\n // Additional error messages\n addressVerificationFailed:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n cardLimitExceeded:\n 'Card spending limit exceeded. Please try again with another card or payment method.',\n restrictedCard: 'Restricted card. Indicate to the user to use another card.',\n issuerUnavailable: 'Payment rejected by the issuing entity. Indicate to the user to try later.',\n invalidInstallmentPlan:\n 'Invalid installment plan. Indicate to the user to select another installment option.',\n transactionNotAllowed:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n processorUnavailable:\n 'The issuing entity did not authorize your payment. Please try again in a few minutes or with another card or payment method.',\n APMError: 'We could not generate your payment request. ',\n APMErrorBankTransfer: 'We could not generate your payment request.',\n APMErrorGeneric: 'We could not process the payment.',\n // Checkout with card errors\n bankRejected:\n 'Payment rejected by the issuer. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n fraudHighRisk:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n callBankForAuthorize:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n blacklisted:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n expiredCard:\n 'Invalid card data. Please validate the data and try again or try with another payment method',\n\n // Additional error messages\n hardDecline:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n softDecline:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n humanDecline:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n internal:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n required3ds:\n 'It is necessary to complete the authentication of your bank to continue with the payment. Follow the verification instructions and try again.',\n // Sandbox errors\n sandboxError:\n 'Error in test environment. Please try again or check the environment configuration.',\n },\n summary: {\n totalAmount: 'Total amount',\n totalAmountToday: 'Total amount to pay today',\n trialPeriodDaysDetails_one: '{{trialDays}} day of free trial',\n trialPeriodDaysDetails_other: '{{trialDays}} days of free trial',\n totalAmountLastTrialPeriod: 'Total amount after the trial',\n free: 'FREE',\n subtotal: 'Subtotal',\n installments: 'Installments',\n installmentDescription: '{{installment}} x {{amount}} ',\n summary: 'Summary',\n details: 'Details',\n hour_one: 'hour',\n hour_other: '{{count}} hours',\n month_one: 'month',\n month_other: '{{count}} months',\n week_one: 'week',\n week_other: '{{count}} weeks',\n day_one: 'day',\n day_other: '{{count}} days',\n year_one: 'year',\n year_other: '{{count}} years',\n planFrequency: '{{frequency}}',\n planDiscountDescriptionWithDuration:\n 'Discount coupon applied of {{discount}} per {{duration}}.',\n planDiscountDescriptionWithoutDuration: 'Discount coupon applied of {{discount}}.',\n trialPill_one: '{{days}} day free after for',\n trialPill_other: '{{days}} days free after for',\n discount: 'Discount',\n },\n billingAddress: {\n title: 'Billing Address',\n addressPlaceholder: 'Address street',\n cityPlaceholder: 'City',\n zipPlaceholder: 'Zip code',\n countryPlaceholder: 'Select country',\n statePlaceholder: 'Select state',\n manualEntry: 'Enter address manually',\n searchPlaceholder: 'Search address',\n sameAsShipping: 'Same as shipping',\n searchStates: 'Search for state...',\n additionalInformation: 'Add additional information',\n addInformationPlaceholder: 'Department, floor (optional)',\n addInformationLabel: 'Additional information',\n },\n shippingAddress: {\n title: 'Shipping Address',\n addressPlaceholder: 'Address street',\n cityPlaceholder: 'City',\n zipPlaceholder: 'Zip code',\n countryPlaceholder: 'Select country',\n statePlaceholder: 'Select state',\n searchStates: 'Search for state...',\n manualEntry: 'Enter address manually',\n searchPlaceholder: 'Search address',\n additionalInformation: 'Add additional information',\n addInformationPlaceholder: 'Department, floor (optional)',\n addInformationLabel: 'Additional information',\n },\n bankSelector: {\n label: 'Select your bank',\n placeholder: 'Choose a bank',\n searchPlaceholder: 'Search for bank...',\n },\n userInformation: {\n personalInformation: 'Personal Information',\n emailPlaceholder: 'Email',\n fullNamePlaceholder: 'Full Name',\n countryCodePlaceholder: '+1',\n phoneNumberPlaceholder: 'Phone Number',\n phoneLabel: 'Contact Phone',\n rebillAccount: 'Continue with my Rebill account',\n otpPlaceholder: 'Verification code',\n greeting: 'Hello {{name}}!',\n signOut: 'Sign out',\n searchCountriesPlaceholder: 'Search for country...',\n emailCorrectionSuggestion: \"Didn't you mean to say {{email}}?\",\n suggestionsHeader: 'Suggestion',\n suggestionsLabel: 'Email suggestions',\n },\n footer: {\n poweredBy: 'Powered by',\n termsAndConditions: 'Terms & Conditions',\n },\n discountCoupons: {\n addDiscount: 'Add discount',\n apply: 'Apply',\n discount: 'Discount',\n error: 'Invalid coupon',\n },\n installments: {\n interest: '* The interests will be applied by your bank institution.',\n select: 'Select your installments',\n selectMexican: 'Select your installments',\n selectBrazilian: 'Select your installments',\n single: 'installment of',\n plural: 'installments of',\n singleMexican: 'installment of',\n pluralMexican: 'installments of',\n brazilian: 'x of',\n disabled: 'Payments in installments only with credit card',\n disabledMexican: 'Payments in installments only with credit card',\n disabledBrazilian: 'Payments in installments only with credit card',\n samePrice: 'Same price',\n },\n document: {\n typePlaceholder: 'Type',\n numberPlaceholder: 'Document number',\n },\n referenceCode: {\n title: 'Payment Reference',\n expirationLabel: 'You have {{time}} to pay.',\n referenceLabel: 'Reference Code',\n providerLabel: 'Store Name',\n instructionsLabel: 'See Instructions',\n instructionsTitle: 'Instructions',\n },\n qrCode: {\n title: 'QR Code',\n expirationLabel: 'You have {{time}} to pay.',\n scanInstruction: 'Scan the QR code with your bank app or virtual wallet.',\n instructionsLabel: 'See Instructions',\n instructionsTitle: 'Instructions',\n paymentMethod: 'Payment Method',\n provider: 'Provider',\n detailLabel: 'Product details:',\n nameLabel: 'Product name:',\n copyCode: 'Copy code',\n },\n apmCheckout: {\n paymentInformation: 'Payment Information',\n expirationDate: 'Expiration Date',\n instructions: 'Instructions',\n viewBranches: 'View Branches',\n download: 'Download',\n redirectMessage:\n 'You will be redirected to the {{paymentMethodName}} platform to complete your payment.',\n redirectMessagePrefix: 'You will be redirected to the',\n redirectMessageSuffix: 'platform to complete your payment.',\n accountNumber: 'Account Number',\n bankName: 'Bank',\n reference: 'Reference',\n bankTransferInstructions: 'Bank Transfer Instructions',\n // Bank transfer instructions\n step1Instruction:\n 'In the \"Pay\" menu, select the \"Services\" option and enter the following \"Agreement Number\".',\n step1Label: 'CIE Agreement Number:',\n step2Instruction: 'Enter the registration data to complete the operation.',\n step2Label: 'Reference:',\n // General bank transfer instructions\n generalInstruction:\n 'Go to the transfers and payments selection or payments to other banks and provide the transfer data.',\n dataLabel: 'Transfer Data',\n destinationBank: 'Destination Bank:',\n clabe: 'CLABE:',\n paymentReference: 'Payment Reference:',\n nameSurname: 'Beneficiary:',\n viewInstructions: 'View Instructions',\n paymentTransferSystem: 'Payment Transfer System',\n },\n bankTransfer: {\n transferData: 'Transfer data',\n step1Instruction: \"Open your bank's app or online banking.\",\n step1Label: 'CIE Agreement Number:',\n step2Instruction: 'Go to the option to make payments or transfers.',\n step2Label: 'Reference:',\n step3Instruction:\n \"If it's a new account, add it and enter the beneficiary information and CLABE number.\",\n step4Instruction:\n 'Copy and paste the beneficiary details, amount, and payment reference shown on your screen.',\n step5Instruction: 'Review the transfer details and complete the payment.',\n step6Instruction: 'Save or share your payment receipt.',\n },\n downloadTemplate: {\n title: 'Payment Instructions - {{paymentMethod}}',\n totalAmount: 'Total Amount',\n paymentCode: 'Payment Code',\n tellCashierData: 'Tell the cashier this information',\n expirationText: 'You have time to pay until {{date}}',\n merchantName: 'Store Name:',\n concept: 'Concept:',\n instructions: 'Instructions',\n fallbackProductTitle: 'Product Name',\n fallbackProductDescription: 'Product Details',\n },\n validation: {\n emailInvalid: 'The email address is not valid',\n emailRequired: 'The email address is required',\n fullNameRequired: 'The full name is required',\n fullNameInvalid: 'The full name is not valid',\n countryRequired: 'The country is required',\n stateRequired: 'The state is required',\n addressRequired: 'The address is required',\n cityRequired: 'The city is required',\n zipRequired: 'The zip code is required',\n bankRequired: 'You must select a bank',\n phoneRequired: 'Phone number is required',\n phoneInvalid: 'Please enter a valid phone number',\n installmentsRequired: 'You must select a number of installments',\n phoneNumberInvalid: 'The phone number is not valid',\n cardInvalid: 'Card is required',\n cardInvalidDescription: 'Please complete the card information',\n documentTypeRequired: 'The document type is required',\n documentNumberRequired: 'The document number is required',\n documentInvalid: 'The document number is not valid',\n documentNumberNumericOnly: 'Enter only numbers (no dots or dashes).',\n tokenError: 'Internal error',\n tokenErrorDescription: 'We had a problem, please try again later.',\n },\n processing: {\n securityText: 'Secure and encrypted',\n processingTitle: 'The payment is being processed',\n processingSubtitle: 'Please do not close the window',\n successTitle: 'Payment successful!',\n redirectMessage: 'You will be redirected in',\n download: 'Download receipt',\n downloadDescription: 'We sent the receipt to your email.',\n paymentDetails: 'Payment details',\n paymentMethod: 'Payment method',\n paymentDate: 'Date',\n paymentEmail: 'Email',\n paymentReference: 'Reference number',\n purchaseDetails: 'Purchase details',\n purchaseDetail: 'Detail',\n purchaseSubtotal: 'Subtotal',\n purchaseTotal: 'Total',\n purchaseMontoTotal: 'Total amount',\n nextCharge: 'Next charge',\n atEndOfTrial: 'At the end of your trial',\n onDayOfMonth: 'On day {{day}} of each month',\n perMonth: 'per month',\n onDate: 'On {{date}}',\n trialPill_one: '{{days}} day free',\n trialPill_other: '{{days}} days free',\n },\n renewal: {\n title: 'Renew subscription',\n renewalAmount: 'Total amount',\n subscriptionDetails: 'Details',\n nextRenewal: 'Next renewal',\n totalToRenew: 'Total',\n subtotal: 'Subtotal',\n loading: 'Loading...',\n monthly: 'month',\n yearly: 'year',\n weekly: 'week',\n paymentMethodAlert:\n 'This month you can pay with another payment method, but the next charge will be to your card ending in {{cardLastFour}}.',\n },\n changeCard: {\n title: 'Request card change',\n successTitle: 'Card updated successfully!',\n successDescription:\n 'We will use your updated card ending in {{cardLastFour}} for the next charges.',\n paymentMethod: 'Payment method',\n paymentDate: 'Date',\n customerEmail: 'Email',\n defaultBrand: 'Card',\n defaultEmail: '-',\n processingTitle: 'Saving your card',\n processingSubtitle: 'Please wait a moment while we update your subscription details.',\n errorTitle: 'Invalid card',\n errorDescription: 'Try again with another card.',\n },\n sandbox: {\n testMode: 'Test mode',\n cards: 'Cards',\n docs: 'Read the documentation',\n completeMyAccountRegistration: 'Complete my account registration',\n successPayment: 'Success payment',\n cardNumber: 'Card number',\n expiryDate: 'Expiry date',\n cvv: 'CVV',\n rejectedPayment: 'Rejected payment',\n exp: 'Exp.',\n cardTest: 'Card test',\n },\n otp: {\n sessionSecurity: 'Session security',\n email: 'Email',\n notYou: 'Not you?',\n description: 'Enter the code of',\n descriptionDigits: '6 digits',\n descriptionEmail: 'we sent to',\n change: 'change',\n resendCode: 'Resend code',\n resendCodeIn: 'Resend code in',\n codeResent: 'We resent the code to your email.',\n infoTitle: 'It may take a few seconds.',\n infoMessage: 'Check your spam or promotions folder.',\n continueAsGuest: 'Continue as guest',\n secureMessage: 'Secure and encrypted',\n verifyingCode: 'Verifying code',\n error: 'Invalid code',\n },\n timeline: {\n dayOne: 'Day 1 - Today',\n startTrial_one: 'Start your free trial for {{trialDays}} day.',\n startTrial_other: 'Start your free trial for {{trialDays}} days.',\n reminder: 'Day {{day}} - Reminder',\n lastDaysReminder: 'Last {{days}} days of free trial.',\n lastDay: 'Day {{day}} - Last day',\n subscriptionStart: 'Your subscription starts for {{amount}}',\n subscriptionRenewal: 'Subscription renewal',\n renewalAmount: 'Subscription renewal for {{amount}}/month',\n today: 'Today',\n chargeFullToday: 'We will make the first charge for your subscription {{amount}}',\n firstCharge: 'First charge',\n firstChargeDescription: '{{amount}} will be charged on {{day}} of {{month}}',\n after: 'After',\n recurringCharge: 'On the {{day}} of each month it will automatically renew for {{amount}}',\n proratedCharge: 'Proportional charge of {{amount}} until {{day}} of the month.',\n },\n} as const;\n","export const esTranslation = {\n common: {\n welcome: 'Bienvenido',\n hello: 'Hola',\n loading: 'Cargando...',\n error: 'Ocurrió un error',\n success: 'Éxito',\n loadingOptions: 'Cargando opciones...',\n },\n session: {\n refreshedTitle: 'Sesión actualizada',\n refreshedMessage: 'Tu sesión expiró y fue actualizada. Puedes continuar con tu compra.',\n },\n search: {\n searchCountries: 'Buscar país...',\n searchBanks: 'Buscar banco...',\n searchOptions: 'Buscar opcion...',\n searchAddresses: 'Buscar direccion...',\n searchStates: 'Buscar estado...',\n },\n buttons: {\n submit: 'Enviar',\n cancel: 'Cancelar',\n save: 'Guardar',\n delete: 'Eliminar',\n payNow: 'Pagar ahora',\n continue: 'Continuar',\n continueWithPaymentMethod: 'Continuar con {{paymentMethod}}',\n renewSubscription: 'Renovar suscripción',\n updateCard: 'Actualizar tarjeta',\n subscribe: 'Suscribirse',\n secureEncrypted: 'Seguro y encriptado',\n startTrial: 'Iniciar prueba de {{trialDays}} días gratis',\n redirecting: 'Redirigiendo en {{seconds}} segundos',\n },\n paymentMethods: {\n card: 'Tarjeta',\n cardDescription: 'Tarjeta de crédito o débito',\n saveCard: 'Guardar mi tarjeta',\n cash: 'Efectivo',\n cashDescription: 'Efectivo en sucursal',\n bank_transfer: 'Transferencia bancaria',\n bank_transfer_qr: 'Transferencia por QR',\n transferDescription: 'Transferencia bancaria',\n errorTitle: 'Pago rechazado',\n },\n paymentErrors: {\n //Message generic for card\n genericErrorCard:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n\n //Message generic for APM\n genericErrorMessagePIX: 'Inténtalo nuevamente en unos minutos o con otro método de pago.',\n genericErrorMessageQR: 'Inténtalo nuevamente en unos minutos o con otro método de pago.',\n genericErrorMessagePSE: 'Inténtalo nuevamente en unos minutos o con otro método de pago.',\n genericErrorMessageBankTransfer:\n 'Inténtalo nuevamente en unos minutos o con otro método de pago.',\n genericErrorMessage: 'Inténtalo nuevamente en unos minutos o con otro método de pago.',\n\n //Title generic for card\n genericErrorTitleCard: 'Pago rechazado',\n\n //Title generic for APM\n genericErrorTitlePIX: 'No fue posible generar su codigo PIX',\n genericErrorTitleQR: 'Se genero un error al intentar generar el QR',\n genericErrorTitlePSE: 'Se genero un error al direccionar a PSE',\n genericErrorTitleBankTransfer: 'Pago rechazado',\n genericErrorTitle: 'No fue posible procesar la solicitud de pago',\n\n // Generic errors\n genericError:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n internalError:\n 'Tu pago no se completó. Inténtalo nuevamente en unos minutos o con otro método de pago.',\n providerError:\n 'Tu pago no se completó. Inténtalo nuevamente en unos minutos o con otro método de pago.',\n\n // Payment status errors\n pending: 'El pago está siendo procesado.',\n approved: 'El pago fue aprobado exitosamente.',\n rejected:\n 'La entidad emisora no autorizó tu pago. Por favor intenta nuevamente, o contacta a tu institución financiera para autorizar la transacción.',\n declined: 'El pago fue rechazado.',\n error: 'Ha ocurrido un error durante el procesamiento del pago.',\n refunded: 'El pago ha sido reembolsado.',\n cancelled: 'El pago ha sido cancelado.',\n partiallyRefunded: 'El pago ha sido parcialmente reembolsado.',\n expired: 'El pago ha expirado.',\n genericReject:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n invalidCardNumber:\n 'Datos de tarjeta inválidos. Por favor valida los datos e intenta nuevamente o intenta con otro método de pago',\n insufficientFunds:\n 'Pago rechazado por fondos insuficientes. Intenta nuevamente con otra tarjeta con disponibilidad de fondos u con otro método de pago.',\n invalidCardCvc:\n 'Datos de tarjeta inválidos. Por favor valida los datos e intenta nuevamente o intenta con otro método de pago',\n invalidCardExpirationDate:\n 'Datos de tarjeta inválidos. Por favor valida los datos e intenta nuevamente o intenta con otro método de pago',\n duplicatePayment:\n 'El error de pago duplicado ocurre cuando el mismo pago es procesado más de una vez.',\n cardDisabled:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n cardTypeNotAllowed:\n 'Tipo de tarjeta no soportada. Por favor usa otro tipo de tarjeta o medio de pago.',\n pinAttemptsExceeded:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n blacklisted:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n processingError:\n 'Pago rechazado durante el procesamiento. Por favor intenta nuevamente, usar otra tarjeta o medio de pago',\n speedLimitExceeded:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n\n // Card errors\n invalidCard:\n 'Datos de tarjeta inválidos. Por favor valida los datos e intenta nuevamente o intenta con otro método de pago.',\n invalidCardHolderName:\n 'El país de emisión de la tarjeta no es compatible. Por favor intenta con otra tarjeta o método de pago.',\n invalidCardTokenizeCountry: 'La tarjeta no puede ser procesada en este país.',\n\n // Customer errors\n invalidCustomerEmail:\n 'El email ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerPhone:\n 'El teléfono ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerBillingAddress:\n 'La dirección ingresada es inválida. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerAddress:\n 'La direccion ingresada es inválida. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerCity:\n 'La provincia o estado ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerState: 'El estado/provincia del cliente es inválido.',\n invalidCustomerZip:\n 'El código postal ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerCountry:\n 'El país ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerDocument:\n 'El documento ingresado es inválido. Por favor revisa el dato e intenta nuevamente..',\n invalidCustomerDocumentNumber:\n 'El número de documento ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerDocumentType:\n 'El tipo de documento ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n\n // Required fields errors\n requiredCustomerEmail:\n 'El correo electrónico es un dato obligatorio para procesar el pago. Por favor revisa el dato e intenta nuevamente.',\n requiredCustomerPhone:\n 'Tu teléfono es un dato obligatorio para procesar el pago. Por favor revisa el dato e intenta nuevamente.',\n requiredCustomerBillingAddress:\n 'Tu dirección es un dato obligatorio para procesar el pago. Por favor revisa el dato e intenta nuevamente.',\n requiredCustomerAddress:\n 'Tu dirección es un dato obligatorio para procesar el pago. Por favor ingresa una direccion válida e intenta nuevamente',\n requiredCustomerCity:\n 'La ciudad es un dato obligatorio para procesar el pago. Por favor ingrésala e intenta nuevamente.',\n requiredCustomerState:\n 'La provincia o estado es un dato obligatorio para procesar el pago. Por favor ingrésala e intenta nuevamente.',\n requiredCustomerZip:\n 'El código postal es un dato obligatorio para procesar el pago. Por favor ingrésalo e intenta nuevamente.',\n requiredCustomerCountry:\n 'El país es un dato obligatorio para procesar el pago. Por favor ingrésalo e intenta nuevamente.',\n requiredCustomerDocument:\n 'El documento es un dato obligatorio para procesar el pago. Por favor ingresa un documento válido e intenta nuevamente.',\n requiredCustomerDocumentNumber:\n 'El número de documento es un dato obligatorio para procesar el pago. Por favor ingresa un número de documento válido e intenta nuevamente.',\n requiredCustomerDocumentType:\n 'El tipo de documento es un dato obligatorio para procesar el pago. Por favor ingresa un tipo de documento válido e intenta nuevamente.',\n\n // Checkout errors\n invalidCheckoutRequest:\n 'Intento de pago rechazado. Por favor intenta nuevamente en unos minutos.',\n invalidSession:\n 'Tu pago no se completó. La sesión ha expirado. Recarga la página y vuelve a intentarlo.',\n unavailablePaymentMethod:\n 'Método de pago no disponible. Por favor intenta nuevamente con otro método de pago.',\n\n invalidCurrency:\n 'La moneda ingresada es inválida. Por favor revisa el dato e intenta nuevamente.',\n invalidCountry: 'El país ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n maxAttempts:\n 'Pago rechazado por superar el límite de intentos. Por favor intenta nuevamente con otro método de pago.',\n paymentExpired:\n 'El intento de pago ha expirado. Por favor genera un nuevo intento de pago para completar tu pago',\n\n // Checkout with APM errors\n invalidCheckoutPaymentMethod:\n 'Metodo de pago invalido. Por favor intenta nuevamente con otra forma de pago disponible',\n // Additional error messages\n\n addressVerificationFailed:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n cardLimitExceeded:\n 'Se superó el límite de consumo de la tarjeta. Por favor intenta nuevamente con otra tarjeta u otro método de pago.',\n\n restrictedCard: 'Tarjeta restringida. Indica al usuario usar otra tarjeta.',\n issuerUnavailable: 'Pago rechazado la entidad emisora. Indica al usuario intentar más tarde.',\n invalidInstallmentPlan:\n 'Plan de cuotas inválido. Indica al usuario seleccionar otra opción de cuotas.',\n transactionNotAllowed:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n processorUnavailable:\n 'La entidad emisora no autorizó tu pago. Por favor intenta nuevamente en unos minutos o con otra tarjeta u otro método de pago.',\n APMError: 'No pudimos generar tu solicitud de pago. ',\n APMErrorBankTransfer: 'No pudimos generar tu solicitud de pago.',\n APMErrorGeneric: 'No fue posible procesar el pago.',\n APMMessageError: 'Intento de pago rechazado. Por favor intenta nuevamente en unos minutos.',\n\n // Checkout with card errors\n bankRejected:\n 'Pago rechazado por el emisor. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n fraudHighRisk:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n callBankForAuthorize:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n expiredCard:\n 'Datos de tarjeta inválidos. Por favor valida los datos e intenta nuevamente o intenta con otro método de pago',\n\n // Additional error messages\n hardDecline:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n softDecline:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n humanDecline:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n internal:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n required3ds:\n 'Es necesario completar la autenticación de tu banco para continuar con el pago. Sigue las instrucciones de verificación y vuelve a intentarlo.',\n // Sandbox errors\n sandboxError:\n 'Error en entorno de pruebas. Por favor intenta nuevamente o revisa la configuración del entorno.',\n },\n summary: {\n totalAmount: 'Monto total',\n totalAmountToday: 'Total a pagar hoy',\n totalAmountLastTrialPeriod: 'Monto total despues de la prueba',\n trialPeriodDaysDetails_one: '{{trialDays}} día de prueba gratuita',\n trialPeriodDaysDetails_other: '{{trialDays}} días de prueba gratuita',\n free: 'GRATIS',\n subtotal: 'Subtotal',\n installments: 'Cuotas',\n installmentDescription: '{{installment}} x {{amount}}',\n summary: 'Resumen',\n details: 'Detalles',\n hour_one: 'hora',\n hour_other: '{{count}} horas',\n month_one: 'mes',\n month_other: '{{count}} meses',\n week_one: 'semana',\n week_other: '{{count}} semanas',\n day_one: 'día',\n day_other: '{{count}} días',\n year_one: 'año',\n year_other: '{{count}} años',\n planFrequency: '{{frequency}}',\n planDiscountDescriptionWithDuration: 'Descuento {{discount}} aplicado por {{duration}}.',\n planDiscountDescriptionWithoutDuration: 'Descuento {{discount}} aplicado.',\n trialPill_one: '{{days}} día gratis después por',\n trialPill_other: '{{days}} días gratis después por',\n discount: 'Descuento',\n },\n billingAddress: {\n title: 'Dirección de Facturación',\n addressPlaceholder: 'Dirección',\n cityPlaceholder: 'Ciudad',\n zipPlaceholder: 'Código postal',\n countryPlaceholder: 'Seleccionar país',\n statePlaceholder: 'Seleccionar estado',\n manualEntry: 'Ingresar dirección manualmente',\n searchPlaceholder: 'Buscar dirección',\n searchStates: 'Buscar estado...',\n sameAsShipping: 'Igual que envío',\n additionalInformation: '+ Agregar información adicional',\n addInformationPlaceholder: 'Departamento, piso (opcional)',\n addInformationLabel: 'Información adicional',\n },\n shippingAddress: {\n title: 'Dirección de Envío',\n addressPlaceholder: 'Dirección',\n cityPlaceholder: 'Ciudad',\n zipPlaceholder: 'Código postal',\n countryPlaceholder: 'Seleccionar país',\n statePlaceholder: 'Seleccionar estado',\n manualEntry: 'Ingresar dirección manualmente',\n searchStates: 'Buscar estado...',\n searchPlaceholder: 'Buscar dirección',\n additionalInformation: '+ Agregar información adicional',\n addInformationPlaceholder: 'Departamento, piso (opcional)',\n addInformationLabel: 'Información adicional',\n },\n bankSelector: {\n label: 'Selecciona tu banco',\n placeholder: 'Elige un banco',\n searchPlaceholder: 'Buscar banco...',\n },\n userInformation: {\n personalInformation: 'Información personal',\n emailPlaceholder: 'Correo electrónico',\n fullNamePlaceholder: 'Nombre completo',\n countryCodePlaceholder: '+1',\n phoneNumberPlaceholder: 'Número de teléfono',\n phoneLabel: 'Teléfono de contacto',\n rebillAccount: 'Continuar con mi cuenta de Rebill',\n otpPlaceholder: 'Código de verificación',\n greeting: 'Hola {{name}}!',\n signOut: 'Cerrar sesión',\n searchCountriesPlaceholder: 'Buscar país...',\n emailCorrectionSuggestion: '¿Quisiste decir {{email}}?',\n suggestionsHeader: 'Sugerencia',\n suggestionsLabel: 'Sugerencias de correo electrónico',\n },\n footer: {\n poweredBy: 'Desarrollado por',\n termsAndConditions: 'Términos y condiciones',\n },\n discountCoupons: {\n addDiscount: 'Agregar descuento',\n apply: 'Aplicar',\n discount: 'Descuento',\n error: 'Cupón inválido',\n },\n installments: {\n interest: '* Los intereses serán aplicados por tu entidad bancaria.',\n select: 'Selecciona tus cuotas',\n selectMexican: 'Selecciona tus mensualidades',\n selectBrazilian: 'Selecciona tus cuotas',\n single: 'cuota de',\n plural: 'cuotas de',\n singleMexican: 'mensualidad de',\n pluralMexican: 'mensualidades de',\n brazilian: 'x de',\n disabled: 'Pagos en cuotas solo con tarjeta de crédito',\n disabledMexican: 'Pagos en mensualidades solo con tarjeta de crédito',\n disabledBrazilian: 'Pagos en cuotas solo con tarjeta de crédito',\n samePrice: 'Mismo precio',\n },\n document: {\n typePlaceholder: 'Tipo',\n numberPlaceholder: 'Número de identificación',\n },\n referenceCode: {\n title: 'Referencia de Pago',\n expirationLabel: 'Tienes {{time}} para pagar.',\n referenceLabel: 'Código de referencia',\n providerLabel: 'Nombre del comercio',\n instructionsLabel: 'Ver Instrucciones',\n instructionsTitle: 'Instrucciones',\n },\n qrCode: {\n title: 'Código QR',\n expirationLabel: 'Tienes {{time}} para pagar.',\n scanInstruction: 'Escaneá el código QR con tu app bancaria o billetera virtual.',\n instructionsLabel: 'Ver Instrucciones',\n instructionsTitle: '¿Cómo pagar?',\n paymentMethod: 'Método de Pago',\n provider: 'Proveedor',\n detailLabel: 'Detalle del producto:',\n nameLabel: 'Nombre del producto:',\n copyCode: 'Copiar código',\n },\n apmCheckout: {\n paymentInformation: 'Información de Pago',\n expirationDate: 'Fecha de Vencimiento',\n instructions: 'Instrucciones',\n viewBranches: 'Ver sucursales',\n download: 'Descargar',\n redirectMessage:\n 'Serás dirigido a la plataforma de {{paymentMethodName}} para completar tu pago.',\n redirectMessagePrefix: 'Serás dirigido a la plataforma de',\n redirectMessageSuffix: 'para completar tu pago.',\n accountNumber: 'Número de cuenta',\n bankName: 'Banco',\n reference: 'Referencia',\n bankTransferInstructions: 'Instrucciones de transferencia bancaria',\n // Instrucciones para transferencia bancaria\n step1Instruction:\n 'En el menú «Pagar», seleccione la opción «De servicios» e introduzca el siguiente «Número de convenio».',\n step1Label: 'Número de convenio CIE:',\n step2Instruction: 'Ingrese los datos de registro para concluir con la operación.',\n step2Label: 'Referencia:',\n // Instrucciones generales para transferencia bancaria\n generalInstruction:\n 'Ingresa a la selección de transferencias y pagos o pagos a otros bancos y proporciona los datos de transferencia.',\n dataLabel: 'Datos',\n destinationBank: 'Banco de destino:',\n clabe: 'CLABE:',\n paymentReference: 'Referencia de pago:',\n nameSurname: 'Beneficiario:',\n viewInstructions: 'Ver Instrucciones',\n paymentTransferSystem: 'Sistema de Transferencia de Pagos',\n },\n bankTransfer: {\n transferData: 'Datos de transferencia',\n step1Instruction: 'Abre la aplicación o banca en línea de tu banco.',\n step1Label: 'Número de convenio CIE:',\n step2Instruction: 'Ve a la opción de realizar pagos o transferencias.',\n step2Label: 'Referencia:',\n step3Instruction:\n 'Si es una cuenta nueva, agrégala y captura la información del beneficiario y la CLABE.',\n step4Instruction: 'Copia y pega los datos del beneficiario, el monto y la referencia de pago.',\n step5Instruction: 'Confirma los detalles de la transferencia y completa el pago.',\n step6Instruction: 'Guarda o comparte tu comprobante de pago.',\n },\n downloadTemplate: {\n title: 'Instrucciones de Pago - {{paymentMethod}}',\n totalAmount: 'Monto total',\n paymentCode: 'Código de pago',\n tellCashierData: 'Dictale estos datos al cajero',\n expirationText: 'Tienes tiempo para pagar hasta el {{date}}',\n merchantName: 'Nombre del comercio:',\n concept: 'Concepto:',\n instructions: 'Instrucciones',\n fallbackProductTitle: 'Nombre del producto',\n fallbackProductDescription: 'Detalle del producto',\n },\n validation: {\n emailInvalid: 'El correo electrónico no es válido',\n emailRequired: 'El correo electrónico es requerido',\n fullNameRequired: 'El nombre es requerido',\n fullNameInvalid: 'El nombre no es válido',\n countryRequired: 'El país es requerido',\n stateRequired: 'El estado es requerido',\n addressRequired: 'La dirección es requerida',\n cityRequired: 'La ciudad es requerida',\n zipRequired: 'El código postal es requerido',\n bankRequired: 'Debe seleccionar un banco',\n phoneRequired: 'El número de teléfono es requerido',\n phoneInvalid: 'Por favor ingrese un número de teléfono válido',\n installmentsRequired: 'Debe seleccionar un número de cuotas',\n phoneNumberInvalid: 'El número de teléfono no es válido',\n cardInvalid: 'Tarjeta inválida',\n cardInvalidDescription: 'Por favor, complete los datos de la tarjeta',\n documentTypeRequired: 'El tipo de documento es requerido',\n documentNumberRequired: 'El número de documento es requerido',\n documentInvalid: 'El número de documento no es válido',\n documentNumberNumericOnly: 'Ingresa solo números (sin puntos ni guiones).',\n tokenError: 'Error interno',\n tokenErrorDescription: 'Tuvimos un inconveniente, por favor intente mas tarde.',\n },\n processing: {\n securityText: 'Seguro y encriptado',\n processingTitle: 'El pago se está procesando',\n processingSubtitle: 'Por favor no cierre la ventana',\n successTitle: 'Pago exitoso!',\n redirectMessage: 'Serás redirigido en',\n download: 'Descargar comprobante',\n downloadDescription: 'Le enviamos el recibo a su email.',\n paymentDetails: 'Detalles de la compra',\n paymentMethod: 'Método de pago',\n paymentDate: 'Fecha',\n paymentEmail: 'Correo electrónico',\n paymentReference: 'Número de referencia',\n purchaseDetails: 'Detalles de la compra',\n purchaseDetail: 'Detalle',\n purchaseSubtotal: 'Subtotal',\n purchaseTotal: 'Total',\n purchaseMontoTotal: 'Monto total',\n nextCharge: 'Próximo cobro',\n atEndOfTrial: 'Al finalizar tu prueba',\n onDayOfMonth: 'El día {{day}} de cada mes',\n perMonth: 'por mes',\n onDate: 'El {{date}}',\n trialPill_one: '{{days}} día gratis',\n trialPill_other: '{{days}} días gratis',\n },\n renewal: {\n title: 'Renovar suscripción',\n renewalAmount: 'Monto total',\n subscriptionDetails: 'Detalles',\n nextRenewal: 'Próxima renovación',\n totalToRenew: 'Total',\n subtotal: 'Subtotal',\n loading: 'Cargando...',\n month: 'mes',\n year: 'año',\n week: 'semana',\n paymentMethodAlert:\n 'Este mes puedes pagar con otro método de pago, pero el próximo cargo será a tu tarjeta que termina en {{cardLastFour}}.',\n },\n changeCard: {\n title: 'Solicitud de cambio de tarjeta',\n successTitle: '¡Tarjeta actualizada exitosamente!',\n successDescription:\n 'Usaremos tu nueva tarjeta terminada en {{cardLastFour}} para los próximos cobros.',\n paymentMethod: 'Método de pago',\n paymentDate: 'Fecha',\n customerEmail: 'Correo electrónico',\n defaultBrand: 'Tarjeta',\n defaultEmail: '-',\n processingTitle: 'Guardando tu tarjeta',\n processingSubtitle: 'Estamos actualizando tu suscripción, esto tomará unos segundos.',\n errorTitle: 'Tarjeta inválida',\n errorDescription: 'Puedes intentar con otra tarjeta.',\n },\n sandbox: {\n testMode: 'Modo de prueba',\n cards: 'Tarjetas',\n docs: 'Leer la documentación',\n completeMyAccountRegistration: 'Completar registro de cuenta',\n successPayment: 'Pago exitoso',\n cardNumber: 'Número de tarjeta',\n expiryDate: 'Fecha de vencimiento',\n exp: 'Exp.',\n cvv: 'CVV',\n rejectedPayment: 'Pago rechazado',\n cardTest: 'Tarjetas de prueba',\n },\n otp: {\n description: 'Ingresa el código de',\n descriptionDigits: '6 dígitos',\n descriptionEmail: 'que te enviamos a',\n change: 'cambiar',\n resendCode: 'Reenviar código',\n resendCodeIn: 'Reenviar código en',\n codeResent: 'Te reenviamos el código a tu email.',\n infoTitle: 'Puede tardar unos segundos.',\n infoMessage: 'Revisa tu casilla de spam o promociones.',\n continueAsGuest: 'Continuar como invitado',\n secureMessage: 'Seguro y encriptado',\n verifyingCode: 'Verificando código',\n error: 'Código inválido',\n },\n timeline: {\n dayOne: 'Día 1 - Hoy',\n startTrial_one: 'Comienza tu prueba gratis por {{trialDays}} día.',\n startTrial_other: 'Comienza tu prueba gratis por {{trialDays}} días.',\n reminder: 'Día {{day}} - Recordatorio',\n lastDaysReminder: 'Últimos {{days}} días de prueba gratuita.',\n lastDay: 'Día {{day}} - Último día',\n subscriptionStart: 'Comienza tu suscripción por {{amount}}',\n subscriptionRenewal: 'Renovación de suscripción',\n renewalAmount: 'Renovación de suscripción por {{amount}}/mes',\n today: 'Hoy',\n chargeFullToday: 'Realizaremos el primer cobro de tu suscripción {{amount}}',\n firstCharge: 'Primer cobro',\n firstChargeDescription: 'Se cobrará {{amount}} el {{day}} de {{month}}',\n after: 'Después',\n recurringCharge: 'El {{day}} de cada mes se renovará automáticamente por {{amount}}',\n proratedCharge: '(proporcional hasta el {{day}} de {{month}})',\n },\n} as const;\n","export const ptTranslations = {\n common: {\n welcome: 'Bem-vindo',\n hello: 'Olá',\n loading: 'Carregando...',\n error: 'Ocorreu um erro',\n success: 'Sucesso',\n loadingOptions: 'Carregando opções...',\n },\n session: {\n refreshedTitle: 'Sessão atualizada',\n refreshedMessage: 'Sua sessão expirou e foi atualizada. Você pode continuar com sua compra.',\n },\n search: {\n searchCountries: 'Pesquisar país...',\n searchBanks: 'Pesquisar banco...',\n searchOptions: 'Pesquisar opções...',\n searchAddresses: 'Pesquisar endereço...',\n searchStates: 'Pesquisar estado...',\n },\n buttons: {\n submit: 'Enviar',\n cancel: 'Cancelar',\n save: 'Salvar',\n delete: 'Excluir',\n payNow: 'Pagar agora',\n continue: 'Continuar',\n continueWithPaymentMethod: 'Continuar com {{paymentMethod}}',\n renewSubscription: 'Renovar assinatura',\n updateCard: 'Atualizar cartão',\n subscribe: 'Assinar',\n secureEncrypted: 'Seguro e criptografado',\n startTrial: 'Iniciar teste gratuito por {{trialDays}} dias',\n redirecting: 'Redirecionando em {{seconds}} segundos',\n },\n paymentMethods: {\n card: 'Cartão',\n cardDescription: 'Cartão de crédito ou débito',\n saveCard: 'Salvar meu cartão',\n cash: 'Dinheiro',\n cashDescription: 'Dinheiro na sucursal',\n bank_transfer: 'Transferência bancária',\n bank_transfer_qr: 'Transferência por QR',\n transferDescription: 'Transferência bancária',\n errorTitle: 'Pagamento rejeitado',\n },\n paymentErrors: {\n //Message generic for card\n genericErrorCard:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n\n //Message generic for APM\n genericErrorMessagePIX: 'Tente novamente em alguns minutos ou com outro método de pagamento.',\n genericErrorMessageQR: 'Tente novamente em alguns minutos ou com outro método de pagamento.',\n genericErrorMessagePSE: 'Tente novamente em alguns minutos ou com outro método de pagamento.',\n genericErrorMessageBankTransfer:\n 'Tente novamente em alguns minutos ou com outro método de pagamento.',\n genericErrorMessage: 'Tente novamente em alguns minutos ou com outro método de pagamento.',\n\n //Title generic for card\n genericErrorTitleCard: 'Pagamento rejeitado',\n\n //Title generic for APM\n genericErrorTitlePIX: 'Não foi possível gerar seu código PIX',\n genericErrorTitleQR: 'Ocorreu um erro ao tentar gerar o QR',\n genericErrorTitlePSE: 'Ocorreu um erro ao direcionar para PSE',\n genericErrorTitleBankTransfer: 'Não foi possível processar a solicitação de pagamento',\n genericErrorTitle: 'Não foi possível processar a solicitação de pagamento',\n\n // Generic errors\n genericError:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n internalError:\n 'Seu pagamento não foi concluído. Tente novamente em alguns minutos ou com outro método de pagamento.',\n providerError:\n 'Seu pagamento não foi concluído. Tente novamente em alguns minutos ou com outro método de pagamento.',\n\n // Payment status errors\n pending: 'O pagamento está sendo processado.',\n approved: 'O pagamento foi aprovado com sucesso.',\n rejected:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente novamente, ou entre em contato com sua instituição financeira para autorizar a transação.',\n declined: 'O pagamento foi rejeitado.',\n error: 'Ocorreu um erro durante o processamento do pagamento.',\n refunded: 'O pagamento foi reembolsado.',\n cancelled: 'O pagamento foi cancelado.',\n partiallyRefunded: 'O pagamento foi parcialmente reembolsado.',\n expired: 'O pagamento expirou.',\n genericReject:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n invalidCardNumber:\n 'Dados do cartão inválidos. Por favor valide os dados e tente novamente ou tente com outro método de pagamento',\n insufficientFunds:\n 'Pagamento rejeitado por fundos insuficientes. Tente novamente com outro cartão com disponibilidade de fundos ou com outro método de pagamento.',\n invalidCardCvc:\n 'Dados do cartão inválidos. Por favor valide os dados e tente novamente ou tente com outro método de pagamento',\n invalidCardExpirationDate:\n 'Dados do cartão inválidos. Por favor valide os dados e tente novamente ou tente com outro método de pagamento',\n duplicatePayment:\n 'O erro de pagamento duplicado ocorre quando o mesmo pagamento é processado mais de uma vez.',\n cardDisabled:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n cardTypeNotAllowed:\n 'Tipo de cartão não suportado. Por favor use outro tipo de cartão ou método de pagamento.',\n APMError: 'Não pudemos gerar sua solicitação de pagamento. ',\n APMErrorBankTransfer: 'Não pudemos gerar sua solicitação de pagamento.',\n APMErrorGeneric: 'Não pudemos processar o pagamento.',\n pinAttemptsExceeded:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n blacklistedCard:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n processingError:\n 'Pagamento rejeitado durante o processamento. Por favor tente novamente, use outro cartão ou método de pagamento',\n speedLimitExceeded:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n APMMessageError: 'Por favor tente novamente em alguns minutos.',\n // Card errors\n invalidCard: 'O cartão é inválido.',\n invalidCardHolderName: 'O nome do titular do cartão é inválido.',\n invalidCardTokenizeCountry: 'O cartão não pode ser processado neste país.',\n\n // Customer errors\n invalidCustomerEmail:\n 'O email inserido é inválido. Por favor insira um email válido e tente novamente.',\n invalidCustomerPhone:\n 'O telefone inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerBillingAddress:\n 'O endereço inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerAddress:\n 'O endereço inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerCity:\n 'A província ou estado inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerState: 'O estado/província do cliente é inválido.',\n invalidCustomerZip:\n 'O código postal inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerCountry:\n 'O país inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerDocument:\n 'O documento inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerDocumentNumber:\n 'O número do documento inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerDocumentType:\n 'O tipo de documento inserido é inválido. Por favor revise os dados e tente novamente.',\n\n // Required fields errors\n requiredCustomerEmail: 'O email é um dado obrigatório para processar o pagamento.',\n requiredCustomerPhone:\n 'Seu telefone é um dado obrigatório para processar o pagamento. Por favor revise os dados e tente novamente.',\n requiredCustomerBillingAddress:\n 'Seu endereço é um dado obrigatório para processar o pagamento. Por favor revise os dados e tente novamente.',\n requiredCustomerAddress:\n 'Seu endereço é um dado obrigatório para processar o pagamento. Por favor insira um endereço válido e tente novamente',\n requiredCustomerCity:\n 'A cidade é um dado obrigatório para processar o pagamento. Por favor insira-a e tente novamente.',\n requiredCustomerState:\n 'A província ou estado é um dado obrigatório para processar o pagamento. Por favor insira-o e tente novamente.',\n requiredCustomerZip:\n 'O código postal é um dado obrigatório para processar o pagamento. Por favor insira-o e tente novamente.',\n requiredCustomerCountry:\n 'O país é um dado obrigatório para processar o pagamento. Por favor insira-o e tente novamente.',\n requiredCustomerDocument:\n 'O documento é um dado obrigatório para processar o pagamento. Por favor insira um documento válido e tente novamente.',\n requiredCustomerDocumentNumber:\n 'O número do documento é um dado obrigatório para processar o pagamento. Por favor insira um número de documento válido e tente novamente.',\n requiredCustomerDocumentType:\n 'O tipo de documento é um dado obrigatório para processar o pagamento. Por favor insira um tipo de documento válido e tente novamente.',\n\n // Checkout errors\n invalidCheckoutRequest:\n 'Tentativa de pagamento rejeitada. Por favor tente novamente em alguns minutos.',\n invalidSession:\n 'Seu pagamento não foi concluído. A sessão expirou. Recarregue a página e tente novamente.',\n unavailablePaymentMethod:\n 'Método de pagamento não disponível. Por favor tente novamente com outro método de pagamento.',\n invalidAmount:\n 'Pagamento rejeitado por valor inválido. Por favor entre em contato com o comerciante para modificar o valor e tente novamente',\n invalidCurrency: 'A moeda inserida é inválida. Por favor revise os dados e tente novamente.',\n invalidCountry: 'O país inserido é inválido. Por favor revise os dados e tente novamente.',\n maxAttempts:\n 'Pagamento rejeitado por exceder o limite de tentativas. Por favor tente novamente com outro método de pagamento.',\n paymentExpired:\n 'A tentativa de pagamento expirou. Por favor gere uma nova tentativa de pagamento para completar seu pagamento',\n\n // Checkout with APM errors\n invalidCheckoutPaymentMethod:\n 'Método de pagamento inválido. Por favor tente novamente com outra forma de pagamento disponível',\n // Additional error messages\n addressVerificationFailed:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n cardLimitExceeded:\n 'Limite de gastos do cartão excedido. Por favor tente novamente com outro cartão ou método de pagamento.',\n restrictedCard: 'Cartão restrito. Indique ao usuário usar outro cartão.',\n issuerUnavailable:\n 'Pagamento rejeitado pela entidade emissora. Indique ao usuário tentar mais tarde.',\n invalidInstallmentPlan:\n 'Plano de parcelas inválido. Indique ao usuário selecionar outra opção de parcelas.',\n transactionNotAllowed:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n processorUnavailable:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente novamente em alguns minutos ou com outro cartão ou método de pagamento.',\n\n // Checkout with card errors\n bankRejected:\n 'Pagamento rejeitado pelo emissor. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n fraudHighRisk:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n callBankForAuthorize:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n blacklisted:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n expiredCard:\n 'Dados do cartão inválidos. Por favor valide os dados e tente novamente ou tente com outro método de pagamento',\n\n // Additional error messages\n hardDecline:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n softDecline:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n humanDecline:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n internal:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n required3ds:\n 'É necessário completar a autenticação do seu banco para continuar com o pagamento. Siga as instruções de verificação e tente novamente.',\n // Sandbox errors\n sandboxError:\n 'Erro no ambiente de testes. Por favor tente novamente ou verifique a configuração do ambiente.',\n },\n summary: {\n totalAmount: 'Total',\n totalAmountToday: 'Total a pagar hoje',\n subtotal: 'Subtotal',\n trialPeriodDaysDetails_one: '{{trialDays}} dia de teste gratuito',\n trialPeriodDaysDetails_other: '{{trialDays}} dias de teste gratuito',\n totalAmountLastTrialPeriod: 'Total após o teste',\n free: 'GRATIS',\n installments: 'Parcelas',\n installmentDescription: '{{installment}} x {{amount}}',\n summary: 'Resumo',\n details: 'Detalhes',\n hour_one: 'hora',\n hour_other: '{{count}} horas',\n month_one: 'mês',\n month_other: '{{count}} meses',\n week_one: 'semana',\n week_other: '{{count}} semanas',\n day_one: 'dia',\n day_other: '{{count}} dias',\n year_one: 'ano',\n year_other: '{{count}} anos',\n planFrequency: '{{frequency}}',\n planDiscountDescriptionWithDuration:\n 'Cupom de desconto aplicado de {{discount}} por {{duration}}.',\n planDiscountDescriptionWithoutDuration: 'Cupom de desconto aplicado de {{discount}}.',\n trialPill_one: '{{days}} dia gratis depois por',\n trialPill_other: '{{days}} dias gratis depois por',\n discount: 'Desconto',\n },\n billingAddress: {\n title: 'Endereço de Faturamento',\n addressPlaceholder: 'Endereço',\n cityPlaceholder: 'Cidade',\n zipPlaceholder: 'CEP',\n countryPlaceholder: 'Selecionar país',\n statePlaceholder: 'Selecionar estado',\n manualEntry: 'Digitar endereço manualmente',\n searchPlaceholder: 'Pesquisar endereço',\n sameAsShipping: 'Igual ao endereço de envio',\n searchStates: 'Pesquisar estado...',\n additionalInformation: 'Adicionar informações adicionais',\n addInformationPlaceholder: 'Departamento, piso (opcional)',\n addInformationLabel: 'Informações adicionais',\n },\n shippingAddress: {\n title: 'Endereço de Envio',\n addressPlaceholder: 'Address street',\n cityPlaceholder: 'Cidade',\n zipPlaceholder: 'CEP',\n countryPlaceholder: 'Selecionar país',\n statePlaceholder: 'Selecionar estado',\n searchStates: 'Pesquisar estado...',\n manualEntry: 'Digitar endereço manualmente',\n searchPlaceholder: 'Pesquisar endereço',\n additionalInformation: 'Adicionar informações adicionais',\n addInformationPlaceholder: 'Departamento, piso (opcional)',\n addInformationLabel: 'Informações adicionais',\n },\n bankSelector: {\n label: 'Selecione seu banco',\n placeholder: 'Escolha um banco',\n searchPlaceholder: 'Pesquisar banco...',\n },\n userInformation: {\n personalInformation: 'Informações pessoais',\n emailPlaceholder: 'Email',\n fullNamePlaceholder: 'Nome completo',\n countryCodePlaceholder: '+55',\n phoneNumberPlaceholder: 'Número de telefone',\n countryPlaceholder: 'Selecionar país',\n rebillAccount: 'Continuar com minha conta da Rebill',\n otpPlaceholder: 'Código de verificação',\n greeting: 'Olá {{name}}!',\n signOut: 'Sair',\n searchCountriesPlaceholder: 'Pesquisar país...',\n emailCorrectionSuggestion: 'Você quis dizer {{email}}?',\n suggestionsHeader: 'Sugestão',\n suggestionsLabel: 'Sugestões de e-mail',\n },\n footer: {\n poweredBy: 'Desenvolvido por',\n termsAndConditions: 'Termos e condições',\n },\n discountCoupons: {\n addDiscount: 'Adicionar desconto',\n apply: 'Aplicar',\n discount: 'Desconto',\n error: 'Cupom inválido',\n },\n installments: {\n interest: '* Os juros serão aplicados pela sua instituição bancária.',\n select: 'Selecione suas parcelas',\n selectMexican: 'Selecione suas parcelas',\n selectBrazilian: 'Selecione suas parcelas',\n single: 'parcela de',\n plural: 'parcelas de',\n singleMexican: 'parcela de',\n pluralMexican: 'parcelas de',\n brazilian: 'x de',\n disabledMexican: 'Pagos em parcelas apenas com cartão de crédito',\n disabledBrazilian: 'Pagos em parcelas apenas com cartão de crédito',\n disabled: 'Pagos em parcelas apenas com cartão de crédito',\n samePrice: 'Mesmo preço',\n },\n document: {\n typePlaceholder: 'Tipo',\n numberPlaceholder: 'Número de identificação',\n },\n referenceCode: {\n title: 'Referência de Pagamento',\n expirationLabel: 'Você tem {{time}} para pagar.',\n referenceLabel: 'Código de referência',\n providerLabel: 'Nome do comércio',\n instructionsLabel: 'Ver Instruções',\n instructionsTitle: 'Instruções',\n },\n qrCode: {\n title: 'Código QR',\n expirationLabel: 'Você tem {{time}} para pagar.',\n scanInstruction: 'Escaneie o código QR com seu app bancário ou carteira virtual.',\n instructionsLabel: 'Ver Instruções',\n instructionsTitle: 'Instruções',\n paymentMethod: 'Método de Pagamento',\n provider: 'Provedor',\n detailLabel: 'Detalhes do produto:',\n nameLabel: 'Nome do produto:',\n copyCode: 'Copiar código',\n },\n apmCheckout: {\n paymentInformation: 'Informações de Pagamento',\n expirationDate: 'Data de Vencimento',\n instructions: 'Instruções',\n viewBranches: 'Ver agências',\n download: 'Download',\n redirectMessage:\n 'Você será redirecionado para a plataforma {{paymentMethodName}} para completar seu pagamento.',\n redirectMessagePrefix: 'Você será redirecionado para a plataforma',\n redirectMessageSuffix: 'para completar seu pagamento.',\n accountNumber: 'Número da conta',\n bankName: 'Banco',\n reference: 'Referência',\n bankTransferInstructions: 'Instruções de transferência bancária',\n // Instruções para transferência bancária\n step1Instruction:\n 'No menu \"Pagar\", selecione a opção \"De serviços\" e insira o seguinte \"Número de convênio\".',\n step1Label: 'Número de convênio CIE:',\n step2Instruction: 'Insira os dados de registro para concluir a operação.',\n step2Label: 'Referência:',\n // Instruções gerais para transferência bancária\n generalInstruction:\n 'Acesse a seleção de transferências e pagamentos ou pagamentos para outros bancos e forneça os dados de transferência.',\n dataLabel: 'Dados',\n destinationBank: 'Banco de destino:',\n clabe: 'CLABE:',\n paymentReference: 'Referência de pagamento:',\n nameSurname: 'Beneficiário:',\n viewInstructions: 'Ver Instruções',\n paymentTransferSystem: 'Sistema de Transferência de Pagamentos',\n },\n bankTransfer: {\n transferData: 'Dados de transferência',\n step1Instruction: 'Abra o aplicativo ou o internet banking do seu banco.',\n step1Label: 'Número de convênio CIE:',\n step2Instruction: 'Vá até a opção de fazer pagamentos ou transferências.',\n step2Label: 'Referência:',\n step3Instruction:\n 'Se for uma nova conta, adicione-a e insira as informações do beneficiário e a chave CLABE.',\n step4Instruction:\n 'Copie e cole os dados do beneficiário, o valor e a referência que aparecem na sua tela.',\n step5Instruction: 'Confirme os detalhes da transferência e conclua o pagamento.',\n step6Instruction: 'Salve ou compartilhe o comprovante de pagamento.',\n },\n downloadTemplate: {\n title: 'Instruções de Pagamento - {{paymentMethod}}',\n totalAmount: 'Valor total',\n paymentCode: 'Código de pagamento',\n tellCashierData: 'Informe estes dados ao caixa',\n expirationText: 'Você tem tempo para pagar até {{date}}',\n merchantName: 'Nome do comércio:',\n concept: 'Conceito:',\n instructions: 'Instruções',\n fallbackProductTitle: 'Nome do produto',\n fallbackProductDescription: 'Detalhes do produto',\n },\n validation: {\n emailInvalid: 'O endereço de email não é válido',\n emailRequired: 'O endereço de email é obrigatório',\n fullNameRequired: 'O nome completo é obrigatório',\n fullNameInvalid: 'O nome completo não é válido',\n countryRequired: 'O país é obrigatório',\n stateRequired: 'O estado é obrigatório',\n addressRequired: 'O endereço é obrigatório',\n cityRequired: 'A cidade é obrigatória',\n zipRequired: 'O CEP é obrigatório',\n bankRequired: 'Você deve selecionar um banco',\n phoneRequired: 'O número de telefone é obrigatório',\n phoneInvalid: 'Por favor, insira um número de telefone válido',\n installmentsRequired: 'Você deve selecionar um número de parcelas',\n phoneNumberInvalid: 'O número de telefone não é válido',\n cardInvalid: 'O cartão é obrigatório',\n cardInvalidDescription: 'Por favor, complete as informações do cartão',\n documentTypeRequired: 'O tipo de documento é obrigatório',\n documentNumberRequired: 'O número de documento é obrigatório',\n documentInvalid: 'O número de documento não é válido',\n documentNumberNumericOnly: 'Digite apenas números (sem pontos nem traços).',\n tokenError: 'Erro interno',\n tokenErrorDescription: 'Tivemos um problema, por favor tente novamente mais tarde.',\n },\n processing: {\n securityText: 'Seguro e encriptado',\n processingTitle: 'O pagamento está sendo processado',\n processingSubtitle: 'Por favor, não feche a janela',\n successTitle: 'Pagamento realizado com sucesso!',\n redirectMessage: 'Você será redirecionado em',\n download: 'Descarregar recibo',\n downloadDescription: 'Enviamos o recibo para seu email.',\n paymentDetails: 'Detalhes do pagamento',\n paymentMethod: 'Método de pagamento',\n paymentDate: 'Data',\n paymentEmail: 'Email',\n paymentReference: 'Número de referência',\n purchaseDetails: 'Detalhes da compra',\n purchaseDetail: 'Detalhe',\n purchaseSubtotal: 'Subtotal',\n purchaseTotal: 'Total',\n purchaseMontoTotal: 'Valor total',\n nextCharge: 'Próxima cobrança',\n atEndOfTrial: 'Ao finalizar seu teste',\n onDayOfMonth: 'No dia {{day}} de cada mês',\n perMonth: 'por mês',\n onDate: 'Em {{date}}',\n trialPill_one: '{{days}} dia gratis',\n trialPill_other: '{{days}} dias gratis',\n },\n renewal: {\n title: 'Renovar assinatura',\n renewalAmount: 'Valor total',\n subscriptionDetails: 'Detalhes',\n nextRenewal: 'Próxima renovação',\n totalToRenew: 'Total',\n subtotal: 'Subtotal',\n loading: 'Carregando...',\n monthly: 'mês',\n yearly: 'ano',\n weekly: 'semana',\n paymentMethodAlert:\n 'Este mês você pode pagar com outro método de pagamento, mas a próxima cobrança será no seu cartão terminado em {{cardLastFour}}.',\n },\n changeCard: {\n title: 'Solicitação de mudança de cartão',\n successTitle: 'Cartão atualizado com sucesso!',\n successDescription:\n 'Usaremos seu novo cartão terminado em {{cardLastFour}} para as próximas cobranças.',\n paymentMethod: 'Método de pagamento',\n paymentDate: 'Data',\n customerEmail: 'Email',\n defaultBrand: 'Cartão',\n defaultEmail: '-',\n processingTitle: 'Salvando seu cartão',\n processingSubtitle: 'Aguarde um momento enquanto atualizamos os dados da sua assinatura.',\n errorTitle: 'Cartão inválido',\n errorDescription: 'Você pode tentar com outro cartão.',\n },\n sandbox: {\n testMode: 'Modo de teste',\n cards: 'Cartões',\n docs: 'Ler a documentação',\n completeMyAccountRegistration: 'Completar registro de conta',\n successPayment: 'Pagamento realizado com sucesso',\n cardNumber: 'Número do cartão',\n expiryDate: 'Data de vencimento',\n cvv: 'CVV',\n rejectedPayment: 'Pagamento rejeitado',\n exp: 'Exp.',\n cardTest: 'Cartões de teste',\n },\n otp: {\n sessionSecurity: 'Segurança de sessão',\n email: 'Email',\n notYou: 'Não sou eu',\n description: 'Digite o código de',\n descriptionDigits: '6 dígitos',\n descriptionEmail: 'que enviamos para',\n change: 'alterar',\n resendCode: 'Reenviar código',\n resendCodeIn: 'Reenviar código em',\n codeResent: 'Reenviamos o código para seu email.',\n infoTitle: 'Pode demorar alguns segundos.',\n infoMessage: 'Verifique sua pasta de spam ou promoções.',\n continueAsGuest: 'Continuar como convidado',\n secureMessage: 'Seguro e criptografado',\n verifyingCode: 'Verificando código',\n error: 'Código inválido',\n },\n timeline: {\n dayOne: 'Dia 1 - Hoje',\n startTrial_one: 'Comece sua avaliação gratuita por {{trialDays}} dia.',\n startTrial_other: 'Comece sua avaliação gratuita por {{trialDays}} dias.',\n reminder: 'Dia {{day}} - Lembrete',\n lastDaysReminder: 'Últimos {{days}} dias de avaliação gratuita.',\n lastDay: 'Dia {{day}} - Último dia',\n subscriptionStart: 'Sua assinatura começa por {{amount}}',\n subscriptionRenewal: 'Renovação de assinatura',\n renewalAmount: 'Renovação de assinatura por {{amount}}/mês',\n today: 'Hoje',\n chargeFullToday: 'Faremos a primeira cobrança da sua assinatura {{amount}}',\n firstCharge: 'Primeira cobrança',\n firstChargeDescription: '{{amount}} será cobrado no dia {{day}} de {{month}}',\n after: 'Depois',\n recurringCharge: 'No dia {{day}} de cada mês será renovado automaticamente por {{amount}}',\n proratedCharge: 'Cobrança proporcional de {{amount}} até o dia {{day}} do mês.',\n },\n} as const;\n","import i18n from 'i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport { sessionState } from '../store/session.store';\nimport { enTranslation } from './locales/en';\nimport { esTranslation } from './locales/es';\nimport { ptTranslations } from './locales/pt';\n\ni18n.use(LanguageDetector).init({\n resources: {\n en: {\n translation: enTranslation,\n },\n es: {\n translation: esTranslation,\n },\n pt: {\n translation: ptTranslations,\n },\n },\n fallbackLng: 'en',\n debug: process.env.NODE_ENV === 'development',\n interpolation: {\n escapeValue: false,\n },\n});\n\nexport const initializeI18nWithSessionLanguage = (language?: string) => {\n const sessionLanguage = language || sessionState.data.userInformation?.language;\n if (sessionLanguage) i18n.changeLanguage(sessionLanguage);\n};\n\nexport default i18n;\n","import { LOCALES_ENUM } from '../models/enums/locales.enum';\nimport i18n from './i18n.config';\n\nexport class I18nService {\n static async changeLanguage(lang: string): Promise<void> {\n await i18n.changeLanguage(lang);\n }\n\n static getCurrentLanguage(): LOCALES_ENUM {\n const language = i18n.language;\n return language.split('-')[0] as LOCALES_ENUM;\n }\n\n static translate(key: string, options?: any): string {\n return i18n.t(key, options) as string;\n }\n\n static getAvailableLanguages(): string[] {\n return Object.keys(i18n.options.resources || {});\n }\n}\n"],"names":["getRenderingRef","forceUpdate","CURRENCY_ENUM","PAYMENT_METHOD_ENUM","PLAN_FREQUENCY_ENUM","SESSION_ITEM_TYPE_ENUM","SESSION_TYPE_ENUM","SESSION_DISCOUNT_TYPE_ENUM","sessionState","i18n","LanguageDetector"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"i18n.service-mf_l7h7q.js","sources":["node_modules/.pnpm/i18next@25.6.0/node_modules/i18next/dist/esm/i18next.js","node_modules/.pnpm/i18next-browser-languagedetector@8.2.0/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","node_modules/.pnpm/@stencil+store@2.2.0_@stencil+core@4.38.1/node_modules/@stencil/store/dist/index.js","src/models/enums/currency.enum.ts","src/models/enums/payment-methods.enum.ts","src/models/enums/session.enum.ts","src/models/countries.model.ts","src/utils/country-code-mapper.ts","src/utils/currency-formatter.ts","src/models/session.model.ts","src/store/session.store.ts","src/i18n/locales/en.ts","src/i18n/locales/es.ts","src/i18n/locales/pt.ts","src/i18n/i18n.config.ts","src/i18n/i18n.service.ts"],"sourcesContent":["const isString = obj => typeof obj === 'string';\nconst defer = () => {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nconst makeString = object => {\n if (object == null) return '';\n return '' + object;\n};\nconst copy = (a, s, t) => {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || isString(object);\nconst getLastOfPath = (object, path, Empty) => {\n const stack = !isString(path) ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nconst setPath = (object, path, newValue) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last?.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n};\nconst pushPath = (object, path, newValue, concat) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n};\nconst getPath = (object, path) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n if (!Object.prototype.hasOwnProperty.call(obj, k)) return undefined;\n return obj[k];\n};\nconst getPathWithDefaults = (data, defaultData, key) => {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n};\nconst deepExtend = (target, source, overwrite) => {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (isString(target[prop]) || target[prop] instanceof String || isString(source[prop]) || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n};\nconst regexEscape = str => str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\nvar _entityMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n '/': '&#x2F;'\n};\nconst escape = data => {\n if (isString(data)) {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n};\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nconst looksLikeObjectPath = (key, nsSeparator, keySeparator) => {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n};\nconst deepFind = (obj, path, keySeparator = '.') => {\n if (!obj) return undefined;\n if (obj[path]) {\n if (!Object.prototype.hasOwnProperty.call(obj, path)) return undefined;\n return obj[path];\n }\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n};\nconst getCleanedCode = code => code?.replace('_', '-');\n\nconst consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n console?.[type]?.apply?.(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger, options = {}) {\n this.init(concreteLogger, options);\n }\n init(concreteLogger, options = {}) {\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log(...args) {\n return this.forward(args, 'log', '', true);\n }\n warn(...args) {\n return this.forward(args, 'warn', '', true);\n }\n error(...args) {\n return this.forward(args, 'error', '');\n }\n deprecate(...args) {\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (isString(args[0])) args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event, ...args) {\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data, options = {\n ns: ['translation'],\n defaultNS: 'translation'\n }) {\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key, options = {}) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (isString(key) && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || !isString(key)) return result;\n return deepFind(this.data?.[lng]?.[ns], key, keySeparator);\n }\n addResource(lng, ns, key, value, options = {\n silent: false\n }) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources, options = {\n silent: false\n }) {\n for (const m in resources) {\n if (isString(resources[m]) || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite, options = {\n silent: false,\n skipCopy: false\n }) {\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n value = this.processors[processor]?.process(value, key, options, translator) ?? value;\n });\n return value;\n }\n};\n\nconst PATH_KEY = Symbol('i18next/PATH_KEY');\nfunction createProxy() {\n const state = [];\n const handler = Object.create(null);\n let proxy;\n handler.get = (target, key) => {\n proxy?.revoke?.();\n if (key === PATH_KEY) return state;\n state.push(key);\n proxy = Proxy.revocable(target, handler);\n return proxy.proxy;\n };\n return Proxy.revocable(Object.create(null), handler).proxy;\n}\nfunction keysFromSelector(selector, opts) {\n const {\n [PATH_KEY]: path\n } = selector(createProxy());\n return path.join(opts?.keySeparator ?? '.');\n}\n\nconst checkedLoadedFor = {};\nconst shouldHandleAsObject = res => !isString(res) && typeof res !== 'boolean' && typeof res !== 'number';\nclass Translator extends EventEmitter {\n constructor(services, options = {}) {\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key, o = {\n interpolation: {}\n }) {\n const opt = {\n ...o\n };\n if (key == null) return false;\n const resolved = this.resolve(key, opt);\n if (resolved?.res === undefined) return false;\n const isObject = shouldHandleAsObject(resolved.res);\n if (opt.returnObjects === false && isObject) {\n return false;\n }\n return true;\n }\n extractFromKey(key, opt) {\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n let namespaces = opt.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !opt.keySeparator && !this.options.userDefinedNsSeparator && !opt.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n translate(keys, o, lastKey) {\n let opt = typeof o === 'object' ? {\n ...o\n } : o;\n if (typeof opt !== 'object' && this.options.overloadTranslationOptionHandler) {\n opt = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof opt === 'object') opt = {\n ...opt\n };\n if (!opt) opt = {};\n if (keys == null) return '';\n if (typeof keys === 'function') keys = keysFromSelector(keys, {\n ...this.options,\n ...opt\n });\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = opt.returnDetails !== undefined ? opt.returnDetails : this.options.returnDetails;\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], opt);\n const namespace = namespaces[namespaces.length - 1];\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const lng = opt.lng || this.language;\n const appendNamespaceToCIMode = opt.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng?.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, opt);\n let res = resolved?.res;\n const resUsedKey = resolved?.usedKey || key;\n const resExactUsedKey = resolved?.exactUsedKey || key;\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = opt.joinArrays !== undefined ? opt.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const hasDefaultValue = Translator.hasDefaultValue(opt);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, opt) : '';\n const defaultValueSuffixOrdinalFallback = opt.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const defaultValue = needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] || opt[`defaultValue${defaultValueSuffix}`] || opt[`defaultValue${defaultValueSuffixOrdinalFallback}`] || opt.defaultValue;\n let resForObjHndl = res;\n if (handleAsObjectInI18nFormat && !res && hasDefaultValue) {\n resForObjHndl = defaultValue;\n }\n const handleAsObject = shouldHandleAsObject(resForObjHndl);\n const resType = Object.prototype.toString.apply(resForObjHndl);\n if (handleAsObjectInI18nFormat && resForObjHndl && handleAsObject && noObject.indexOf(resType) < 0 && !(isString(joinArrays) && Array.isArray(resForObjHndl))) {\n if (!opt.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, resForObjHndl, {\n ...opt,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(resForObjHndl);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in resForObjHndl) {\n if (Object.prototype.hasOwnProperty.call(resForObjHndl, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n if (hasDefaultValue && !res) {\n copy[m] = this.translate(deepKey, {\n ...opt,\n defaultValue: shouldHandleAsObject(defaultValue) ? defaultValue[m] : undefined,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n } else {\n copy[m] = this.translate(deepKey, {\n ...opt,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n }\n if (copy[m] === deepKey) copy[m] = resForObjHndl[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && isString(joinArrays) && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, opt, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = opt.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...opt,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, opt.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(opt.lng || this.language);\n } else {\n lngs.push(opt.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, opt);\n } else if (this.backendConnector?.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, opt);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, opt);\n if (needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, opt[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, opt, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) {\n res = `${namespace}${nsSeparator}${key}`;\n }\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}${nsSeparator}${key}` : key, usedDefault ? res : undefined, opt);\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, opt, resolved, lastKey) {\n if (this.i18nFormat?.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...opt\n }, opt.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!opt.skipInterpolation) {\n if (opt.interpolation) this.interpolator.init({\n ...opt,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...opt.interpolation\n }\n }\n });\n const skipOnVariables = isString(res) && (opt?.interpolation?.skipOnVariables !== undefined ? opt.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = opt.replace && !isString(opt.replace) ? opt.replace : opt;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, opt.lng || this.language || resolved.usedLng, opt);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) opt.nest = false;\n }\n if (!opt.lng && resolved && resolved.res) opt.lng = this.language || resolved.usedLng;\n if (opt.nest !== false) res = this.interpolator.nest(res, (...args) => {\n if (lastKey?.[0] === args[0] && !opt.context) {\n this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return this.translate(...args, key);\n }, opt);\n if (opt.interpolation) this.interpolator.reset();\n }\n const postProcess = opt.postProcess || this.options.postProcess;\n const postProcessorNames = isString(postProcess) ? [postProcess] : postProcess;\n if (res != null && postProcessorNames?.length && opt.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(opt)\n },\n ...opt\n } : opt, this);\n }\n return res;\n }\n resolve(keys, opt = {}) {\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (isString(keys)) keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, opt);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const needsContextHandling = opt.context !== undefined && (isString(opt.context) || typeof opt.context === 'number') && opt.context !== '';\n const codes = opt.lngs ? opt.lngs : this.languageUtils.toResolveHierarchy(opt.lng || this.language, opt.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils?.hasLoadedNamespace && !this.utils?.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat?.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, opt);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, opt.count, opt);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(key + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator || '_'}${opt.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(contextKey + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, opt);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key, options = {}) {\n if (this.i18nFormat?.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails(options = {}) {\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && !isString(options.replace);\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (isString(code) && code.indexOf('-') > -1) {\n let formattedCode;\n try {\n formattedCode = Intl.getCanonicalLocales(code)[0];\n } catch (e) {}\n if (formattedCode && this.options.lowerCaseLng) {\n formattedCode = formattedCode.toLowerCase();\n }\n if (formattedCode) return formattedCode;\n if (this.options.lowerCaseLng) {\n return code.toLowerCase();\n }\n return code;\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngScOnly = this.getScriptPartFromCode(code);\n if (this.isSupportedCode(lngScOnly)) return found = lngScOnly;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (isString(fallbacks)) fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes((fallbackCode === false ? [] : fallbackCode) || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (isString(code) && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (isString(code)) {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nconst dummyRule = {\n select: count => count === 1 ? 'one' : 'other',\n resolvedOptions: () => ({\n pluralCategories: ['one', 'other']\n })\n};\nclass PluralResolver {\n constructor(languageUtils, options = {}) {\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.pluralRulesCache = {};\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n clearCache() {\n this.pluralRulesCache = {};\n }\n getRule(code, options = {}) {\n const cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n const type = options.ordinal ? 'ordinal' : 'cardinal';\n const cacheKey = JSON.stringify({\n cleanedCode,\n type\n });\n if (cacheKey in this.pluralRulesCache) {\n return this.pluralRulesCache[cacheKey];\n }\n let rule;\n try {\n rule = new Intl.PluralRules(cleanedCode, {\n type\n });\n } catch (err) {\n if (!Intl) {\n this.logger.error('No Intl support, please use an Intl polyfill!');\n return dummyRule;\n }\n if (!code.match(/-|_/)) return dummyRule;\n const lngPart = this.languageUtils.getLanguagePartFromCode(code);\n rule = this.getRule(lngPart, options);\n }\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n }\n needsPlural(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n return rule?.resolvedOptions().pluralCategories.length > 1;\n }\n getPluralFormsOfKey(code, key, options = {}) {\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n if (!rule) return [];\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n getSuffix(code, count, options = {}) {\n const rule = this.getRule(code, options);\n if (rule) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return this.getSuffix('dev', count, options);\n }\n}\n\nconst deepFindWithDefaults = (data, defaultData, key, keySeparator = '.', ignoreJSONStructure = true) => {\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && isString(key)) {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n};\nconst regexSafe = val => val.replace(/\\$/g, '$$$$');\nclass Interpolator {\n constructor(options = {}) {\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options?.interpolation?.format || (value => value);\n this.init(options);\n }\n init(options = {}) {\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp?.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}((?:[^()\"']+|\"[^\"]*\"|'[^']*'|\\\\((?:[^()]|\"[^\"]*\"|'[^']*')*\\\\))*?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options?.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options?.interpolation?.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = isString(temp) ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (!isString(value) && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc, options = {}) {\n let match;\n let value;\n let clonedOptions;\n const handleHasOptions = (key, inheritedOptions) => {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if ((matchedSingleQuotes?.length ?? 0) % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n };\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && !isString(clonedOptions.replace) ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n const keyEndIndex = /{.*}/.test(match[1]) ? match[1].lastIndexOf('}') + 1 : match[1].indexOf(this.formatSeparator);\n if (keyEndIndex !== -1) {\n formatters = match[1].slice(keyEndIndex).split(this.formatSeparator).map(elem => elem.trim()).filter(Boolean);\n match[1] = match[1].slice(0, keyEndIndex);\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && !isString(value)) return value;\n if (!isString(value)) value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (formatters.length) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nconst parseFormatStr = formatStr => {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n};\nconst createCachedFormatter = fn => {\n const cache = {};\n return (v, l, o) => {\n let optForCache = o;\n if (o && o.interpolationkey && o.formatParams && o.formatParams[o.interpolationkey] && o[o.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [o.interpolationkey]: undefined\n };\n }\n const key = l + JSON.stringify(optForCache);\n let frm = cache[key];\n if (!frm) {\n frm = fn(getCleanedCode(l), o);\n cache[key] = frm;\n }\n return frm(v);\n };\n};\nconst createNonCachedFormatter = fn => (v, l, o) => fn(getCleanedCode(l), o)(v);\nclass Formatter {\n constructor(options = {}) {\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.init(options);\n }\n init(services, options = {\n interpolation: {}\n }) {\n this.formatSeparator = options.interpolation.formatSeparator || ',';\n const cf = options.cacheInBuiltFormats ? createCachedFormatter : createNonCachedFormatter;\n this.formats = {\n number: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: cf((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: cf((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: cf((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng, options = {}) {\n const formats = format.split(this.formatSeparator);\n if (formats.length > 1 && formats[0].indexOf('(') > 1 && formats[0].indexOf(')') < 0 && formats.find(f => f.indexOf(')') > -1)) {\n const lastIndex = formats.findIndex(f => f.indexOf(')') > -1);\n formats[0] = [formats[0], ...formats.splice(1, lastIndex)].join(this.formatSeparator);\n }\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options?.formatParams?.[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nconst removePending = (q, name) => {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n};\nclass Connector extends EventEmitter {\n constructor(backend, store, services, options = {}) {\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n this.backend?.init?.(services, options.backend, options);\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (!err && data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n if (err && data) this.state[name] = 0;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName, tried = 0, wait = this.retryTimeout, callback) {\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces, options = {}, callback) {\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (isString(languages)) languages = this.languageUtils.toResolveHierarchy(languages);\n if (isString(namespaces)) namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name, prefix = '') {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate, options = {}, clb = () => {}) {\n if (this.services?.utils?.hasLoadedNamespace && !this.services?.utils?.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend?.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nconst get = () => ({\n debug: false,\n initAsync: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: args => {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (isString(args[1])) ret.defaultValue = args[1];\n if (isString(args[2])) ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n },\n cacheInBuiltFormats: true\n});\nconst transformOptions = options => {\n if (isString(options.ns)) options.ns = [options.ns];\n if (isString(options.fallbackLng)) options.fallbackLng = [options.fallbackLng];\n if (isString(options.fallbackNS)) options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs?.indexOf?.('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n if (typeof options.initImmediate === 'boolean') options.initAsync = options.initImmediate;\n return options;\n};\n\nconst noop = () => {};\nconst bindMemberFunctions = inst => {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n};\nclass I18n extends EventEmitter {\n constructor(options = {}, callback) {\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initAsync) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init(options = {}, callback) {\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (options.defaultNS == null && options.ns) {\n if (isString(options.ns)) {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n const createClassOnDemand = ClassOrObject => {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n };\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n const usingLegacyFormatFunction = this.options.interpolation.format && this.options.interpolation.format !== defOpts.interpolation.format;\n if (usingLegacyFormatFunction) {\n this.logger.deprecate(`init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting`);\n }\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n if (s.formatter.init) s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = (...args) => this.store[fcName](...args);\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = (...args) => {\n this.store[fcName](...args);\n return this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initAsync) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language, callback = noop) {\n let usedCallback = callback;\n const usedLng = isString(language) ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng?.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n this.options.preload?.forEach?.(l => append(l));\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (typeof lngs === 'function') {\n callback = lngs;\n lngs = undefined;\n }\n if (typeof ns === 'function') {\n callback = ns;\n ns = undefined;\n }\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n if (!this.resolvedLanguage && this.languages.indexOf(l) < 0 && this.store.hasLanguageSomeTranslations(l)) {\n this.resolvedLanguage = l;\n this.languages.unshift(l);\n }\n }\n changeLanguage(lng, callback) {\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n if (this.isLanguageChangingTo === lng) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n }\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve((...args) => this.t(...args));\n if (callback) callback(err, (...args) => this.t(...args));\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const fl = isString(lngs) ? lngs : lngs && lngs[0];\n const l = this.store.hasLanguageSomeTranslations(fl) ? fl : this.services.languageUtils.getBestMatchFromCodes(isString(lngs) ? [lngs] : lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n this.services.languageDetector?.cacheUserLanguage?.(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n const fixedT = (key, opts, ...rest) => {\n let o;\n if (typeof opts !== 'object') {\n o = this.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n o = {\n ...opts\n };\n }\n o.lng = o.lng || fixedT.lng;\n o.lngs = o.lngs || fixedT.lngs;\n o.ns = o.ns || fixedT.ns;\n if (o.keyPrefix !== '') o.keyPrefix = o.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = this.options.keySeparator || '.';\n let resultKey;\n if (o.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => {\n if (typeof k === 'function') k = keysFromSelector(k, {\n ...this.options,\n ...opts\n });\n return `${o.keyPrefix}${keySeparator}${k}`;\n });\n } else {\n if (typeof key === 'function') key = keysFromSelector(key, {\n ...this.options,\n ...opts\n });\n resultKey = o.keyPrefix ? `${o.keyPrefix}${keySeparator}${key}` : key;\n }\n return this.t(resultKey, o);\n };\n if (isString(lng)) {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t(...args) {\n return this.translator?.translate(...args);\n }\n exists(...args) {\n return this.translator?.exists(...args);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns, options = {}) {\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 0 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (isString(ns)) ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (isString(lngs)) lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages?.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n try {\n const l = new Intl.Locale(lng);\n if (l && l.getTextInfo) {\n const ti = l.getTextInfo();\n if (ti && ti.direction) return ti.direction;\n }\n } catch (e) {}\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services?.languageUtils || new LanguageUtil(get());\n if (lng.toLowerCase().indexOf('-latn') > 1) return 'ltr';\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance(options = {}, callback) {\n return new I18n(options, callback);\n }\n cloneInstance(options = {}, callback = noop) {\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n const clonedData = Object.keys(this.store.data).reduce((prev, l) => {\n prev[l] = {\n ...this.store.data[l]\n };\n prev[l] = Object.keys(prev[l]).reduce((acc, n) => {\n acc[n] = {\n ...prev[l][n]\n };\n return acc;\n }, prev[l]);\n return prev;\n }, {});\n clone.store = new ResourceStore(clonedData, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', (event, ...args) => {\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, keysFromSelector as keyFromSelector, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","const {\n slice,\n forEach\n} = [];\nfunction defaults(obj) {\n forEach.call(slice.call(arguments, 1), source => {\n if (source) {\n for (const prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nfunction hasXSS(input) {\n if (typeof input !== 'string') return false;\n\n // Common XSS attack patterns\n const xssPatterns = [/<\\s*script.*?>/i, /<\\s*\\/\\s*script\\s*>/i, /<\\s*img.*?on\\w+\\s*=/i, /<\\s*\\w+\\s*on\\w+\\s*=.*?>/i, /javascript\\s*:/i, /vbscript\\s*:/i, /expression\\s*\\(/i, /eval\\s*\\(/i, /alert\\s*\\(/i, /document\\.cookie/i, /document\\.write\\s*\\(/i, /window\\.location/i, /innerHTML/i];\n return xssPatterns.some(pattern => pattern.test(input));\n}\n\n// eslint-disable-next-line no-control-regex\nconst fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nconst serializeCookie = function (name, val) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n path: '/'\n };\n const opt = options;\n const value = encodeURIComponent(val);\n let str = `${name}=${value}`;\n if (opt.maxAge > 0) {\n const maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += `; Max-Age=${Math.floor(maxAge)}`;\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n str += `; Domain=${opt.domain}`;\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n str += `; Path=${opt.path}`;\n }\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n str += `; Expires=${opt.expires.toUTCString()}`;\n }\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n if (opt.sameSite) {\n const sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n if (opt.partitioned) str += '; Partitioned';\n return str;\n};\nconst cookie = {\n create(name, value, minutes, domain) {\n let cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, value, cookieOptions);\n },\n read(name) {\n const nameEQ = `${name}=`;\n const ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n },\n remove(name, domain) {\n this.create(name, '', -1, domain);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n // Deconstruct the options object and extract the lookupCookie property\n lookup(_ref) {\n let {\n lookupCookie\n } = _ref;\n if (lookupCookie && typeof document !== 'undefined') {\n return cookie.read(lookupCookie) || undefined;\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupCookie, cookieMinutes, cookieDomain, and cookieOptions properties\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupCookie,\n cookieMinutes,\n cookieDomain,\n cookieOptions\n } = _ref2;\n if (lookupCookie && typeof document !== 'undefined') {\n cookie.create(lookupCookie, lng, cookieMinutes, cookieDomain, cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n // Deconstruct the options object and extract the lookupQuerystring property\n lookup(_ref) {\n let {\n lookupQuerystring\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n let {\n search\n } = window.location;\n if (!window.location.search && window.location.hash?.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n const query = search.substring(1);\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n return found;\n }\n};\n\nvar hash = {\n name: 'hash',\n // Deconstruct the options object and extract the lookupHash property and the lookupFromHashIndex property\n lookup(_ref) {\n let {\n lookupHash,\n lookupFromHashIndex\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n const {\n hash\n } = window.location;\n if (hash && hash.length > 2) {\n const query = hash.substring(1);\n if (lookupHash) {\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupHash) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n if (found) return found;\n if (!found && lookupFromHashIndex > -1) {\n const language = hash.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromHashIndex === 'number' ? lookupFromHashIndex : 0;\n return language[index]?.replace('/', '');\n }\n }\n }\n return found;\n }\n};\n\nlet hasLocalStorageSupport = null;\nconst localStorageAvailable = () => {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n try {\n hasLocalStorageSupport = typeof window !== 'undefined' && window.localStorage !== null;\n if (!hasLocalStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n return hasLocalStorageSupport;\n};\nvar localStorage = {\n name: 'localStorage',\n // Deconstruct the options object and extract the lookupLocalStorage property\n lookup(_ref) {\n let {\n lookupLocalStorage\n } = _ref;\n if (lookupLocalStorage && localStorageAvailable()) {\n return window.localStorage.getItem(lookupLocalStorage) || undefined; // Undefined ensures type consistency with the previous version of this function\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupLocalStorage property\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupLocalStorage\n } = _ref2;\n if (lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(lookupLocalStorage, lng);\n }\n }\n};\n\nlet hasSessionStorageSupport = null;\nconst sessionStorageAvailable = () => {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n try {\n hasSessionStorageSupport = typeof window !== 'undefined' && window.sessionStorage !== null;\n if (!hasSessionStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n return hasSessionStorageSupport;\n};\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup(_ref) {\n let {\n lookupSessionStorage\n } = _ref;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n return window.sessionStorage.getItem(lookupSessionStorage) || undefined;\n }\n return undefined;\n },\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupSessionStorage\n } = _ref2;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup(options) {\n const found = [];\n if (typeof navigator !== 'undefined') {\n const {\n languages,\n userLanguage,\n language\n } = navigator;\n if (languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (let i = 0; i < languages.length; i++) {\n found.push(languages[i]);\n }\n }\n if (userLanguage) {\n found.push(userLanguage);\n }\n if (language) {\n found.push(language);\n }\n }\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n // Deconstruct the options object and extract the htmlTag property\n lookup(_ref) {\n let {\n htmlTag\n } = _ref;\n let found;\n const internalHtmlTag = htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n if (internalHtmlTag && typeof internalHtmlTag.getAttribute === 'function') {\n found = internalHtmlTag.getAttribute('lang');\n }\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n // Deconstruct the options object and extract the lookupFromPathIndex property\n lookup(_ref) {\n let {\n lookupFromPathIndex\n } = _ref;\n if (typeof window === 'undefined') return undefined;\n const language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromPathIndex === 'number' ? lookupFromPathIndex : 0;\n return language[index]?.replace('/', '');\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup(_ref) {\n let {\n lookupFromSubdomainIndex\n } = _ref;\n // If given get the subdomain index else 1\n const internalLookupFromSubdomainIndex = typeof lookupFromSubdomainIndex === 'number' ? lookupFromSubdomainIndex + 1 : 1;\n // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group match which should be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n const language = typeof window !== 'undefined' && window.location?.hostname?.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i);\n\n // if there is no match (null) return undefined\n if (!language) return undefined;\n // return the given group match\n return language[internalLookupFromSubdomainIndex];\n }\n};\n\n// some environments, throws when accessing document.cookie\nlet canCookies = false;\ntry {\n // eslint-disable-next-line no-unused-expressions\n document.cookie;\n canCookies = true;\n // eslint-disable-next-line no-empty\n} catch (e) {}\nconst order = ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'];\nif (!canCookies) order.splice(1, 1);\nconst getDefaults = () => ({\n order,\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'],\n // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n convertDetectedLanguage: l => l\n});\nclass Browser {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n init() {\n let services = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n languageUtils: {}\n };\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {\n this.options.convertDetectedLanguage = l => l.replace('-', '_');\n }\n\n // backwards compatibility\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n this.addDetector(hash);\n }\n addDetector(detector) {\n this.detectors[detector.name] = detector;\n return this;\n }\n detect() {\n let detectionOrder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.order;\n let detected = [];\n detectionOrder.forEach(detectorName => {\n if (this.detectors[detectorName]) {\n let lookup = this.detectors[detectorName].lookup(this.options);\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n detected = detected.filter(d => d !== undefined && d !== null && !hasXSS(d)).map(d => this.options.convertDetectedLanguage(d));\n if (this.services && this.services.languageUtils && this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n cacheUserLanguage(lng) {\n let caches = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(cacheName => {\n if (this.detectors[cacheName]) this.detectors[cacheName].cacheUserLanguage(lng, this.options);\n });\n }\n}\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","import { getRenderingRef, forceUpdate } from '@stencil/core';\n\nconst appendToMap = (map, propName, value) => {\n const items = map.get(propName);\n if (!items) {\n map.set(propName, [value]);\n }\n else if (!items.includes(value)) {\n items.push(value);\n }\n};\nconst debounce = (fn, ms) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = 0;\n fn(...args);\n }, ms);\n };\n};\n\n/**\n * Check if a possible element isConnected.\n * The property might not be there, so we check for it.\n *\n * We want it to return true if isConnected is not a property,\n * otherwise we would remove these elements and would not update.\n *\n * Better leak in Edge than to be useless.\n */\nconst isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;\nconst cleanupElements = debounce((map) => {\n for (let key of map.keys()) {\n map.set(key, map.get(key).filter(isConnected));\n }\n}, 2_000);\nconst stencilSubscription = () => {\n if (typeof getRenderingRef !== 'function') {\n // If we are not in a stencil project, we do nothing.\n // This function is not really exported by @stencil/core.\n return {};\n }\n const elmsToUpdate = new Map();\n return {\n dispose: () => elmsToUpdate.clear(),\n get: (propName) => {\n const elm = getRenderingRef();\n if (elm) {\n appendToMap(elmsToUpdate, propName, elm);\n }\n },\n set: (propName) => {\n const elements = elmsToUpdate.get(propName);\n if (elements) {\n elmsToUpdate.set(propName, elements.filter(forceUpdate));\n }\n cleanupElements(elmsToUpdate);\n },\n reset: () => {\n elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));\n cleanupElements(elmsToUpdate);\n },\n };\n};\n\nconst unwrap = (val) => (typeof val === 'function' ? val() : val);\nconst createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {\n const unwrappedState = unwrap(defaultState);\n let states = new Map(Object.entries(unwrappedState ?? {}));\n const handlers = {\n dispose: [],\n get: [],\n set: [],\n reset: [],\n };\n // Track onChange listeners to enable removeListener functionality\n const changeListeners = new Map();\n const reset = () => {\n // When resetting the state, the default state may be a function - unwrap it to invoke it.\n // otherwise, the state won't be properly reset\n states = new Map(Object.entries(unwrap(defaultState) ?? {}));\n handlers.reset.forEach((cb) => cb());\n };\n const dispose = () => {\n // Call first dispose as resetting the state would\n // cause less updates ;)\n handlers.dispose.forEach((cb) => cb());\n reset();\n };\n const get = (propName) => {\n handlers.get.forEach((cb) => cb(propName));\n return states.get(propName);\n };\n const set = (propName, value) => {\n const oldValue = states.get(propName);\n if (shouldUpdate(value, oldValue, propName)) {\n states.set(propName, value);\n handlers.set.forEach((cb) => cb(propName, value, oldValue));\n }\n };\n const state = (typeof Proxy === 'undefined'\n ? {}\n : new Proxy(unwrappedState, {\n get(_, propName) {\n return get(propName);\n },\n ownKeys(_) {\n return Array.from(states.keys());\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n has(_, propName) {\n return states.has(propName);\n },\n set(_, propName, value) {\n set(propName, value);\n return true;\n },\n }));\n const on = (eventName, callback) => {\n handlers[eventName].push(callback);\n return () => {\n removeFromArray(handlers[eventName], callback);\n };\n };\n const onChange = (propName, cb) => {\n const setHandler = (key, newValue) => {\n if (key === propName) {\n cb(newValue);\n }\n };\n const resetHandler = () => cb(unwrap(defaultState)[propName]);\n // Register the handlers\n const unSet = on('set', setHandler);\n const unReset = on('reset', resetHandler);\n // Track the relationship between the user callback and internal handlers\n changeListeners.set(cb, { setHandler, resetHandler, propName });\n return () => {\n unSet();\n unReset();\n changeListeners.delete(cb);\n };\n };\n const use = (...subscriptions) => {\n const unsubs = subscriptions.reduce((unsubs, subscription) => {\n if (subscription.set) {\n unsubs.push(on('set', subscription.set));\n }\n if (subscription.get) {\n unsubs.push(on('get', subscription.get));\n }\n if (subscription.reset) {\n unsubs.push(on('reset', subscription.reset));\n }\n if (subscription.dispose) {\n unsubs.push(on('dispose', subscription.dispose));\n }\n return unsubs;\n }, []);\n return () => unsubs.forEach((unsub) => unsub());\n };\n const forceUpdate = (key) => {\n const oldValue = states.get(key);\n handlers.set.forEach((cb) => cb(key, oldValue, oldValue));\n };\n const removeListener = (propName, listener) => {\n const listenerInfo = changeListeners.get(listener);\n if (listenerInfo && listenerInfo.propName === propName) {\n // Remove the specific handlers that were created for this listener\n removeFromArray(handlers.set, listenerInfo.setHandler);\n removeFromArray(handlers.reset, listenerInfo.resetHandler);\n changeListeners.delete(listener);\n }\n };\n return {\n state,\n get,\n set,\n on,\n onChange,\n use,\n dispose,\n reset,\n forceUpdate,\n removeListener,\n };\n};\nconst removeFromArray = (array, item) => {\n const index = array.indexOf(item);\n if (index >= 0) {\n array[index] = array[array.length - 1];\n array.length--;\n }\n};\n\nconst createStore = (defaultState, shouldUpdate) => {\n const map = createObservableMap(defaultState, shouldUpdate);\n map.use(stencilSubscription());\n return map;\n};\n\nexport { createObservableMap, createStore };\n","export enum CURRENCY_ENUM {\n ARS = 'ARS', // peso argentino\n BOB = 'BOB', // peso boliviano\n CLP = 'CLP', // peso chileno\n UYU = 'UYU', // peso uruguayo\n MXN = 'MXN', // peso mexicano\n DOP = 'DOP', // peso dominicano\n COP = 'COP', // peso colombiano\n PEN = 'PEN', // soles (perú)\n BRL = 'BRL', // real (brasil)\n EUR = 'EUR', // euros\n USD = 'USD', // dólar\n PYG = 'PYG', // guaraníes\n CRC = 'CRC', // colón costarricense\n GTQ = 'GTQ', // quetzal\n ECS = 'ECS', // dólar ecuatoriano\n SVC = 'SVC', // dólar salvadoreño\n PAB = 'PAB', // balboa\n NIO = 'NIO', // córdoba\n GBP = 'GBP', // libra esterlina\n JPY = 'JPY', // yen\n INDIFFERENT = 'INDIFFERENT', // international\n}\n","// Payment method enums\nexport enum PAYMENT_METHOD_ENUM {\n CARD = 'card',\n CASH = 'cash',\n BANK_TRANSFER = 'bank_transfer',\n}\n","// Status enums\nexport enum STATUS_ENUM {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n}\n\n// Pricing mode enums\nexport enum PRICING_MODE_ENUM {\n FIXED = 'fixed',\n VARIABLE = 'variable',\n}\n\n// Plan frequency enums\nexport enum PLAN_FREQUENCY_ENUM {\n MINUTE = 'minute',\n DAY = 'day',\n MONTH = 'month',\n YEAR = 'year',\n}\n\n// Plan type enums\nexport enum PLAN_TYPE_ENUM {\n UNITS = 'units',\n UNLIMITED = 'unlimited',\n}\n\n// Session type enums\nexport enum SESSION_ITEM_TYPE_ENUM {\n PRODUCT = 'product',\n PLAN = 'plan',\n INSTANT_LINK = 'instant-link',\n}\n\nexport enum SESSION_TYPE_ENUM {\n CHECKOUT_LANDING = 'checkout-landing',\n INSTANT = 'instant',\n SDK_ITEM = 'sdk-item',\n}\nexport enum SESSION_DISCOUNT_TYPE_ENUM {\n PERCENTAGE = 'PERCENTAGE',\n FIXED_AMOUNT = 'FIXED_AMOUNT',\n}\n","export interface CountryOption {\n code: string;\n dialCode: string;\n name: string;\n flag: string;\n}\n\nexport const COUNTRIES: CountryOption[] = [\n {\n code: 'af',\n dialCode: '+93',\n name: 'Afghanistan',\n flag: '🇦🇫',\n },\n {\n code: 'ax',\n dialCode: '+358',\n name: 'Åland Islands',\n flag: '🇦🇽',\n },\n {\n code: 'al',\n dialCode: '+355',\n name: 'Albania',\n flag: '🇦🇱',\n },\n {\n code: 'dz',\n dialCode: '+213',\n name: 'Algeria',\n flag: '🇩🇿',\n },\n {\n code: 'as',\n dialCode: '+1684',\n name: 'American Samoa',\n flag: '🇦🇸',\n },\n {\n code: 'ad',\n dialCode: '+376',\n name: 'Andorra',\n flag: '🇦🇩',\n },\n {\n code: 'ao',\n dialCode: '+244',\n name: 'Angola',\n flag: '🇦🇴',\n },\n {\n code: 'ai',\n dialCode: '+1264',\n name: 'Anguilla',\n flag: '🇦🇮',\n },\n {\n code: 'aq',\n dialCode: '+672',\n name: 'Antarctica',\n flag: '🇦🇶',\n },\n {\n code: 'ag',\n dialCode: '+1268',\n name: 'Antigua and Barbuda',\n flag: '🇦🇬',\n },\n {\n code: 'ar',\n dialCode: '+54 9',\n name: 'Argentina',\n flag: '🇦🇷',\n },\n {\n code: 'am',\n dialCode: '+374',\n name: 'Armenia',\n flag: '🇦🇲',\n },\n {\n code: 'aw',\n dialCode: '+297',\n name: 'Aruba',\n flag: '🇦🇼',\n },\n {\n code: 'au',\n dialCode: '+61',\n name: 'Australia',\n flag: '🇦🇺',\n },\n {\n code: 'at',\n dialCode: '+43',\n name: 'Austria',\n flag: '🇦🇹',\n },\n {\n code: 'az',\n dialCode: '+994',\n name: 'Azerbaijan',\n flag: '🇦🇿',\n },\n {\n code: 'bs',\n dialCode: '+1242',\n name: 'Bahamas',\n flag: '🇧🇸',\n },\n {\n code: 'bh',\n dialCode: '+973',\n name: 'Bahrain',\n flag: '🇧🇭',\n },\n {\n code: 'bd',\n dialCode: '+880',\n name: 'Bangladesh',\n flag: '🇧🇩',\n },\n {\n code: 'bb',\n dialCode: '+1246',\n name: 'Barbados',\n flag: '🇧🇧',\n },\n {\n code: 'by',\n dialCode: '+375',\n name: 'Belarus',\n flag: '🇧🇾',\n },\n {\n code: 'be',\n dialCode: '+32',\n name: 'Belgium',\n flag: '🇧🇪',\n },\n {\n code: 'bz',\n dialCode: '+501',\n name: 'Belize',\n flag: '🇧🇿',\n },\n {\n code: 'bj',\n dialCode: '+229',\n name: 'Benin',\n flag: '🇧🇯',\n },\n {\n code: 'bm',\n dialCode: '+1441',\n name: 'Bermuda',\n flag: '🇧🇲',\n },\n {\n code: 'bt',\n dialCode: '+975',\n name: 'Bhutan',\n flag: '🇧🇹',\n },\n {\n code: 'bo',\n dialCode: '+591',\n name: 'Bolivia',\n flag: '🇧🇴',\n },\n {\n code: 'ba',\n dialCode: '+387',\n name: 'Bosnia and Herzegovina',\n flag: '🇧🇦',\n },\n {\n code: 'bw',\n dialCode: '+267',\n name: 'Botswana',\n flag: '🇧🇼',\n },\n {\n code: 'bv',\n dialCode: '+47',\n name: 'Bouvet Island',\n flag: '🇧🇻',\n },\n {\n code: 'br',\n dialCode: '+55',\n name: 'Brazil',\n flag: '🇧🇷',\n },\n {\n code: 'io',\n dialCode: '+246',\n name: 'British Indian Ocean Territory',\n flag: '🇮🇴',\n },\n {\n code: 'vg',\n dialCode: '+1284',\n name: 'British Virgin Islands',\n flag: '🇻🇬',\n },\n {\n code: 'bn',\n dialCode: '+673',\n name: 'Brunei',\n flag: '🇧🇳',\n },\n {\n code: 'bg',\n dialCode: '+359',\n name: 'Bulgaria',\n flag: '🇧🇬',\n },\n {\n code: 'bf',\n dialCode: '+226',\n name: 'Burkina Faso',\n flag: '🇧🇫',\n },\n {\n code: 'bi',\n dialCode: '+257',\n name: 'Burundi',\n flag: '🇧🇮',\n },\n {\n code: 'kh',\n dialCode: '+855',\n name: 'Cambodia',\n flag: '🇰🇭',\n },\n {\n code: 'cm',\n dialCode: '+237',\n name: 'Cameroon',\n flag: '🇨🇲',\n },\n {\n code: 'ca',\n dialCode: '+1',\n name: 'Canada',\n flag: '🇨🇦',\n },\n {\n code: 'cv',\n dialCode: '+238',\n name: 'Cape Verde',\n flag: '🇨🇻',\n },\n {\n code: 'bq',\n dialCode: '+599',\n name: 'Caribbean Netherlands',\n flag: '🇧🇶',\n },\n {\n code: 'ky',\n dialCode: '+1345',\n name: 'Cayman Islands',\n flag: '🇰🇾',\n },\n {\n code: 'cf',\n dialCode: '+236',\n name: 'Central African Republic',\n flag: '🇨🇫',\n },\n {\n code: 'td',\n dialCode: '+235',\n name: 'Chad',\n flag: '🇹🇩',\n },\n {\n code: 'cl',\n dialCode: '+56',\n name: 'Chile',\n flag: '🇨🇱',\n },\n {\n code: 'cn',\n dialCode: '+86',\n name: 'China',\n flag: '🇨🇳',\n },\n {\n code: 'cx',\n dialCode: '+61',\n name: 'Christmas Island',\n flag: '🇨🇽',\n },\n {\n code: 'cc',\n dialCode: '+61',\n name: 'Cocos Islands',\n flag: '🇨🇨',\n },\n {\n code: 'co',\n dialCode: '+57',\n name: 'Colombia',\n flag: '🇨🇴',\n },\n {\n code: 'km',\n dialCode: '+269',\n name: 'Comoros',\n flag: '🇰🇲',\n },\n {\n code: 'ck',\n dialCode: '+682',\n name: 'Cook Islands',\n flag: '🇨🇰',\n },\n {\n code: 'cr',\n dialCode: '+506',\n name: 'Costa Rica',\n flag: '🇨🇷',\n },\n {\n code: 'ci',\n dialCode: '+225',\n name: \"Côte d'Ivoire\",\n flag: '🇨🇮',\n },\n {\n code: 'hr',\n dialCode: '+385',\n name: 'Croatia',\n flag: '🇭🇷',\n },\n {\n code: 'cu',\n dialCode: '+53',\n name: 'Cuba',\n flag: '🇨🇺',\n },\n {\n code: 'cw',\n dialCode: '+599',\n name: 'Curaçao',\n flag: '🇨🇼',\n },\n {\n code: 'cy',\n dialCode: '+357',\n name: 'Cyprus',\n flag: '🇨🇾',\n },\n {\n code: 'cz',\n dialCode: '+420',\n name: 'Czech Republic',\n flag: '🇨🇿',\n },\n {\n code: 'cd',\n dialCode: '+243',\n name: 'Democratic Republic of the Congo',\n flag: '🇨🇩',\n },\n {\n code: 'dk',\n dialCode: '+45',\n name: 'Denmark',\n flag: '🇩🇰',\n },\n {\n code: 'dj',\n dialCode: '+253',\n name: 'Djibouti',\n flag: '🇩🇯',\n },\n {\n code: 'dm',\n dialCode: '+1767',\n name: 'Dominica',\n flag: '🇩🇲',\n },\n {\n code: 'do',\n dialCode: '+1',\n name: 'Dominican Republic',\n flag: '🇩🇴',\n },\n {\n code: 'ec',\n dialCode: '+593',\n name: 'Ecuador',\n flag: '🇪🇨',\n },\n {\n code: 'eg',\n dialCode: '+20',\n name: 'Egypt',\n flag: '🇪🇬',\n },\n {\n code: 'sv',\n dialCode: '+503',\n name: 'El Salvador',\n flag: '🇸🇻',\n },\n {\n code: 'gq',\n dialCode: '+240',\n name: 'Equatorial Guinea',\n flag: '🇬🇶',\n },\n {\n code: 'er',\n dialCode: '+291',\n name: 'Eritrea',\n flag: '🇪🇷',\n },\n {\n code: 'ee',\n dialCode: '+372',\n name: 'Estonia',\n flag: '🇪🇪',\n },\n {\n code: 'sz',\n dialCode: '+268',\n name: 'Eswatini',\n flag: '🇸🇿',\n },\n {\n code: 'et',\n dialCode: '+251',\n name: 'Ethiopia',\n flag: '🇪🇹',\n },\n {\n code: 'fk',\n dialCode: '+500',\n name: 'Falkland Islands',\n flag: '🇫🇰',\n },\n {\n code: 'fo',\n dialCode: '+298',\n name: 'Faroe Islands',\n flag: '🇫🇴',\n },\n {\n code: 'fj',\n dialCode: '+679',\n name: 'Fiji',\n flag: '🇫🇯',\n },\n {\n code: 'fi',\n dialCode: '+358',\n name: 'Finland',\n flag: '🇫🇮',\n },\n {\n code: 'fr',\n dialCode: '+33',\n name: 'France',\n flag: '🇫🇷',\n },\n {\n code: 'gf',\n dialCode: '+594',\n name: 'French Guiana',\n flag: '🇬🇫',\n },\n {\n code: 'pf',\n dialCode: '+689',\n name: 'French Polynesia',\n flag: '🇵🇫',\n },\n {\n code: 'tf',\n dialCode: '+262',\n name: 'French Southern Territories',\n flag: '🇹🇫',\n },\n {\n code: 'ga',\n dialCode: '+241',\n name: 'Gabon',\n flag: '🇬🇦',\n },\n {\n code: 'gm',\n dialCode: '+220',\n name: 'Gambia',\n flag: '🇬🇲',\n },\n {\n code: 'ge',\n dialCode: '+995',\n name: 'Georgia',\n flag: '🇬🇪',\n },\n {\n code: 'de',\n dialCode: '+49',\n name: 'Germany',\n flag: '🇩🇪',\n },\n {\n code: 'gh',\n dialCode: '+233',\n name: 'Ghana',\n flag: '🇬🇭',\n },\n {\n code: 'gi',\n dialCode: '+350',\n name: 'Gibraltar',\n flag: '🇬🇮',\n },\n {\n code: 'gr',\n dialCode: '+30',\n name: 'Greece',\n flag: '🇬🇷',\n },\n {\n code: 'gl',\n dialCode: '+299',\n name: 'Greenland',\n flag: '🇬🇱',\n },\n {\n code: 'gd',\n dialCode: '+1473',\n name: 'Grenada',\n flag: '🇬🇩',\n },\n {\n code: 'gp',\n dialCode: '+590',\n name: 'Guadeloupe',\n flag: '🇬🇵',\n },\n {\n code: 'gu',\n dialCode: '+1671',\n name: 'Guam',\n flag: '🇬🇺',\n },\n {\n code: 'gt',\n dialCode: '+502',\n name: 'Guatemala',\n flag: '🇬🇹',\n },\n {\n code: 'gg',\n dialCode: '+44',\n name: 'Guernsey',\n flag: '🇬🇬',\n },\n {\n code: 'gn',\n dialCode: '+224',\n name: 'Guinea',\n flag: '🇬🇳',\n },\n {\n code: 'gw',\n dialCode: '+245',\n name: 'Guinea-Bissau',\n flag: '🇬🇼',\n },\n {\n code: 'gy',\n dialCode: '+592',\n name: 'Guyana',\n flag: '🇬🇾',\n },\n {\n code: 'ht',\n dialCode: '+509',\n name: 'Haiti',\n flag: '🇭🇹',\n },\n {\n code: 'hm',\n dialCode: '+672',\n name: 'Heard Island and McDonald Islands',\n flag: '🇭🇲',\n },\n {\n code: 'hn',\n dialCode: '+504',\n name: 'Honduras',\n flag: '🇭🇳',\n },\n {\n code: 'hk',\n dialCode: '+852',\n name: 'Hong Kong',\n flag: '🇭🇰',\n },\n {\n code: 'hu',\n dialCode: '+36',\n name: 'Hungary',\n flag: '🇭🇺',\n },\n {\n code: 'is',\n dialCode: '+354',\n name: 'Iceland',\n flag: '🇮🇸',\n },\n {\n code: 'in',\n dialCode: '+91',\n name: 'India',\n flag: '🇮🇳',\n },\n {\n code: 'id',\n dialCode: '+62',\n name: 'Indonesia',\n flag: '🇮🇩',\n },\n {\n code: 'ir',\n dialCode: '+98',\n name: 'Iran',\n flag: '🇮🇷',\n },\n {\n code: 'iq',\n dialCode: '+964',\n name: 'Iraq',\n flag: '🇮🇶',\n },\n {\n code: 'ie',\n dialCode: '+353',\n name: 'Ireland',\n flag: '🇮🇪',\n },\n {\n code: 'im',\n dialCode: '+44',\n name: 'Isle of Man',\n flag: '🇮🇲',\n },\n {\n code: 'il',\n dialCode: '+972',\n name: 'Israel',\n flag: '🇮🇱',\n },\n {\n code: 'it',\n dialCode: '+39',\n name: 'Italy',\n flag: '🇮🇹',\n },\n {\n code: 'jm',\n dialCode: '+1876',\n name: 'Jamaica',\n flag: '🇯🇲',\n },\n {\n code: 'jp',\n dialCode: '+81',\n name: 'Japan',\n flag: '🇯🇵',\n },\n {\n code: 'je',\n dialCode: '+44',\n name: 'Jersey',\n flag: '🇯🇪',\n },\n {\n code: 'jo',\n dialCode: '+962',\n name: 'Jordan',\n flag: '🇯🇴',\n },\n {\n code: 'kz',\n dialCode: '+7',\n name: 'Kazakhstan',\n flag: '🇰🇿',\n },\n {\n code: 'ke',\n dialCode: '+254',\n name: 'Kenya',\n flag: '🇰🇪',\n },\n {\n code: 'ki',\n dialCode: '+686',\n name: 'Kiribati',\n flag: '🇰🇮',\n },\n {\n code: 'kw',\n dialCode: '+965',\n name: 'Kuwait',\n flag: '🇰🇼',\n },\n {\n code: 'kg',\n dialCode: '+996',\n name: 'Kyrgyzstan',\n flag: '🇰🇬',\n },\n {\n code: 'la',\n dialCode: '+856',\n name: 'Laos',\n flag: '🇱🇦',\n },\n {\n code: 'lv',\n dialCode: '+371',\n name: 'Latvia',\n flag: '🇱🇻',\n },\n {\n code: 'lb',\n dialCode: '+961',\n name: 'Lebanon',\n flag: '🇱🇧',\n },\n {\n code: 'ls',\n dialCode: '+266',\n name: 'Lesotho',\n flag: '🇱🇸',\n },\n {\n code: 'lr',\n dialCode: '+231',\n name: 'Liberia',\n flag: '🇱🇷',\n },\n {\n code: 'ly',\n dialCode: '+218',\n name: 'Libya',\n flag: '🇱🇾',\n },\n {\n code: 'li',\n dialCode: '+423',\n name: 'Liechtenstein',\n flag: '🇱🇮',\n },\n {\n code: 'lt',\n dialCode: '+370',\n name: 'Lithuania',\n flag: '🇱🇹',\n },\n {\n code: 'lu',\n dialCode: '+352',\n name: 'Luxembourg',\n flag: '🇱🇺',\n },\n {\n code: 'mo',\n dialCode: '+853',\n name: 'Macao',\n flag: '🇲🇴',\n },\n {\n code: 'mg',\n dialCode: '+261',\n name: 'Madagascar',\n flag: '🇲🇬',\n },\n {\n code: 'mw',\n dialCode: '+265',\n name: 'Malawi',\n flag: '🇲🇼',\n },\n {\n code: 'my',\n dialCode: '+60',\n name: 'Malaysia',\n flag: '🇲🇾',\n },\n {\n code: 'mv',\n dialCode: '+960',\n name: 'Maldives',\n flag: '🇲🇻',\n },\n {\n code: 'ml',\n dialCode: '+223',\n name: 'Mali',\n flag: '🇲🇱',\n },\n {\n code: 'mt',\n dialCode: '+356',\n name: 'Malta',\n flag: '🇲🇹',\n },\n {\n code: 'mh',\n dialCode: '+692',\n name: 'Marshall Islands',\n flag: '🇲🇭',\n },\n {\n code: 'mq',\n dialCode: '+596',\n name: 'Martinique',\n flag: '🇲🇶',\n },\n {\n code: 'mr',\n dialCode: '+222',\n name: 'Mauritania',\n flag: '🇲🇷',\n },\n {\n code: 'mu',\n dialCode: '+230',\n name: 'Mauritius',\n flag: '🇲🇺',\n },\n {\n code: 'yt',\n dialCode: '+262',\n name: 'Mayotte',\n flag: '🇾🇹',\n },\n {\n code: 'mx',\n dialCode: '+52',\n name: 'Mexico',\n flag: '🇲🇽',\n },\n {\n code: 'fm',\n dialCode: '+691',\n name: 'Micronesia',\n flag: '🇫🇲',\n },\n {\n code: 'md',\n dialCode: '+373',\n name: 'Moldova',\n flag: '🇲🇩',\n },\n {\n code: 'mc',\n dialCode: '+377',\n name: 'Monaco',\n flag: '🇲🇨',\n },\n {\n code: 'mn',\n dialCode: '+976',\n name: 'Mongolia',\n flag: '🇲🇳',\n },\n {\n code: 'me',\n dialCode: '+382',\n name: 'Montenegro',\n flag: '🇲🇪',\n },\n {\n code: 'ms',\n dialCode: '+1664',\n name: 'Montserrat',\n flag: '🇲🇸',\n },\n {\n code: 'ma',\n dialCode: '+212',\n name: 'Morocco',\n flag: '🇲🇦',\n },\n {\n code: 'mz',\n dialCode: '+258',\n name: 'Mozambique',\n flag: '🇲🇿',\n },\n {\n code: 'mm',\n dialCode: '+95',\n name: 'Myanmar',\n flag: '🇲🇲',\n },\n {\n code: 'na',\n dialCode: '+264',\n name: 'Namibia',\n flag: '🇳🇦',\n },\n {\n code: 'nr',\n dialCode: '+674',\n name: 'Nauru',\n flag: '🇳🇷',\n },\n {\n code: 'np',\n dialCode: '+977',\n name: 'Nepal',\n flag: '🇳🇵',\n },\n {\n code: 'nl',\n dialCode: '+31',\n name: 'Netherlands',\n flag: '🇳🇱',\n },\n {\n code: 'nc',\n dialCode: '+687',\n name: 'New Caledonia',\n flag: '🇳🇨',\n },\n {\n code: 'nz',\n dialCode: '+64',\n name: 'New Zealand',\n flag: '🇳🇿',\n },\n {\n code: 'ni',\n dialCode: '+505',\n name: 'Nicaragua',\n flag: '🇳🇮',\n },\n {\n code: 'ne',\n dialCode: '+227',\n name: 'Niger',\n flag: '🇳🇪',\n },\n {\n code: 'ng',\n dialCode: '+234',\n name: 'Nigeria',\n flag: '🇳🇬',\n },\n {\n code: 'nu',\n dialCode: '+683',\n name: 'Niue',\n flag: '🇳🇺',\n },\n {\n code: 'nf',\n dialCode: '+672',\n name: 'Norfolk Island',\n flag: '🇳🇫',\n },\n {\n code: 'kp',\n dialCode: '+850',\n name: 'North Korea',\n flag: '🇰🇵',\n },\n {\n code: 'mk',\n dialCode: '+389',\n name: 'North Macedonia',\n flag: '🇲🇰',\n },\n {\n code: 'mp',\n dialCode: '+1670',\n name: 'Northern Mariana Islands',\n flag: '🇲🇵',\n },\n {\n code: 'no',\n dialCode: '+47',\n name: 'Norway',\n flag: '🇳🇴',\n },\n {\n code: 'om',\n dialCode: '+968',\n name: 'Oman',\n flag: '🇴🇲',\n },\n {\n code: 'pk',\n dialCode: '+92',\n name: 'Pakistan',\n flag: '🇵🇰',\n },\n {\n code: 'pw',\n dialCode: '+680',\n name: 'Palau',\n flag: '🇵🇼',\n },\n {\n code: 'ps',\n dialCode: '+970',\n name: 'Palestine',\n flag: '🇵🇸',\n },\n {\n code: 'pa',\n dialCode: '+507',\n name: 'Panama',\n flag: '🇵🇦',\n },\n {\n code: 'pg',\n dialCode: '+675',\n name: 'Papua New Guinea',\n flag: '🇵🇬',\n },\n {\n code: 'py',\n dialCode: '+595',\n name: 'Paraguay',\n flag: '🇵🇾',\n },\n {\n code: 'pe',\n dialCode: '+51',\n name: 'Peru',\n flag: '🇵🇪',\n },\n {\n code: 'ph',\n dialCode: '+63',\n name: 'Philippines',\n flag: '🇵🇭',\n },\n {\n code: 'pn',\n dialCode: '+872',\n name: 'Pitcairn',\n flag: '🇵🇳',\n },\n {\n code: 'pl',\n dialCode: '+48',\n name: 'Poland',\n flag: '🇵🇱',\n },\n {\n code: 'pt',\n dialCode: '+351',\n name: 'Portugal',\n flag: '🇵🇹',\n },\n {\n code: 'pr',\n dialCode: '+1',\n name: 'Puerto Rico',\n flag: '🇵🇷',\n },\n {\n code: 'qa',\n dialCode: '+974',\n name: 'Qatar',\n flag: '🇶🇦',\n },\n {\n code: 'cg',\n dialCode: '+242',\n name: 'Republic of the Congo',\n flag: '🇨🇬',\n },\n {\n code: 're',\n dialCode: '+262',\n name: 'Réunion',\n flag: '🇷🇪',\n },\n {\n code: 'ro',\n dialCode: '+40',\n name: 'Romania',\n flag: '🇷🇴',\n },\n {\n code: 'ru',\n dialCode: '+7',\n name: 'Russia',\n flag: '🇷🇺',\n },\n {\n code: 'rw',\n dialCode: '+250',\n name: 'Rwanda',\n flag: '🇷🇼',\n },\n {\n code: 'bl',\n dialCode: '+590',\n name: 'Saint Barthélemy',\n flag: '🇧🇱',\n },\n {\n code: 'sh',\n dialCode: '+290',\n name: 'Saint Helena',\n flag: '🇸🇭',\n },\n {\n code: 'kn',\n dialCode: '+1869',\n name: 'Saint Kitts and Nevis',\n flag: '🇰🇳',\n },\n {\n code: 'lc',\n dialCode: '+1758',\n name: 'Saint Lucia',\n flag: '🇱🇨',\n },\n {\n code: 'mf',\n dialCode: '+590',\n name: 'Saint Martin',\n flag: '🇲🇫',\n },\n {\n code: 'pm',\n dialCode: '+508',\n name: 'Saint Pierre and Miquelon',\n flag: '🇵🇲',\n },\n {\n code: 'vc',\n dialCode: '+1784',\n name: 'Saint Vincent and the Grenadines',\n flag: '🇻🇨',\n },\n {\n code: 'ws',\n dialCode: '+685',\n name: 'Samoa',\n flag: '🇼🇸',\n },\n {\n code: 'sm',\n dialCode: '+378',\n name: 'San Marino',\n flag: '🇸🇲',\n },\n {\n code: 'st',\n dialCode: '+239',\n name: 'São Tomé and Príncipe',\n flag: '🇸🇹',\n },\n {\n code: 'sa',\n dialCode: '+966',\n name: 'Saudi Arabia',\n flag: '🇸🇦',\n },\n {\n code: 'sn',\n dialCode: '+221',\n name: 'Senegal',\n flag: '🇸🇳',\n },\n {\n code: 'rs',\n dialCode: '+381',\n name: 'Serbia',\n flag: '🇷🇸',\n },\n {\n code: 'sc',\n dialCode: '+248',\n name: 'Seychelles',\n flag: '🇸🇨',\n },\n {\n code: 'sl',\n dialCode: '+232',\n name: 'Sierra Leone',\n flag: '🇸🇱',\n },\n {\n code: 'sg',\n dialCode: '+65',\n name: 'Singapore',\n flag: '🇸🇬',\n },\n {\n code: 'sx',\n dialCode: '+1721',\n name: 'Sint Maarten',\n flag: '🇸🇽',\n },\n {\n code: 'sk',\n dialCode: '+421',\n name: 'Slovakia',\n flag: '🇸🇰',\n },\n {\n code: 'si',\n dialCode: '+386',\n name: 'Slovenia',\n flag: '🇸🇮',\n },\n {\n code: 'sb',\n dialCode: '+677',\n name: 'Solomon Islands',\n flag: '🇸🇧',\n },\n {\n code: 'so',\n dialCode: '+252',\n name: 'Somalia',\n flag: '🇸🇴',\n },\n {\n code: 'za',\n dialCode: '+27',\n name: 'South Africa',\n flag: '🇿🇦',\n },\n {\n code: 'gs',\n dialCode: '+500',\n name: 'South Georgia and the South Sandwich Islands',\n flag: '🇬🇸',\n },\n {\n code: 'kr',\n dialCode: '+82',\n name: 'South Korea',\n flag: '🇰🇷',\n },\n {\n code: 'ss',\n dialCode: '+211',\n name: 'South Sudan',\n flag: '🇸🇸',\n },\n {\n code: 'es',\n dialCode: '+34',\n name: 'Spain',\n flag: '🇪🇸',\n },\n {\n code: 'lk',\n dialCode: '+94',\n name: 'Sri Lanka',\n flag: '🇱🇰',\n },\n {\n code: 'sd',\n dialCode: '+249',\n name: 'Sudan',\n flag: '🇸🇩',\n },\n {\n code: 'sr',\n dialCode: '+597',\n name: 'Suriname',\n flag: '🇸🇷',\n },\n {\n code: 'sj',\n dialCode: '+47',\n name: 'Svalbard and Jan Mayen',\n flag: '🇸🇯',\n },\n {\n code: 'se',\n dialCode: '+46',\n name: 'Sweden',\n flag: '🇸🇪',\n },\n {\n code: 'ch',\n dialCode: '+41',\n name: 'Switzerland',\n flag: '🇨🇭',\n },\n {\n code: 'sy',\n dialCode: '+963',\n name: 'Syria',\n flag: '🇸🇾',\n },\n {\n code: 'tw',\n dialCode: '+886',\n name: 'Taiwan',\n flag: '🇹🇼',\n },\n {\n code: 'tj',\n dialCode: '+992',\n name: 'Tajikistan',\n flag: '🇹🇯',\n },\n {\n code: 'tz',\n dialCode: '+255',\n name: 'Tanzania',\n flag: '🇹🇿',\n },\n {\n code: 'th',\n dialCode: '+66',\n name: 'Thailand',\n flag: '🇹🇭',\n },\n {\n code: 'tl',\n dialCode: '+670',\n name: 'Timor-Leste',\n flag: '🇹🇱',\n },\n {\n code: 'tg',\n dialCode: '+228',\n name: 'Togo',\n flag: '🇹🇬',\n },\n {\n code: 'tk',\n dialCode: '+690',\n name: 'Tokelau',\n flag: '🇹🇰',\n },\n {\n code: 'to',\n dialCode: '+676',\n name: 'Tonga',\n flag: '🇹🇴',\n },\n {\n code: 'tt',\n dialCode: '+1868',\n name: 'Trinidad and Tobago',\n flag: '🇹🇹',\n },\n {\n code: 'tn',\n dialCode: '+216',\n name: 'Tunisia',\n flag: '🇹🇳',\n },\n {\n code: 'tr',\n dialCode: '+90',\n name: 'Turkey',\n flag: '🇹🇷',\n },\n {\n code: 'tm',\n dialCode: '+993',\n name: 'Turkmenistan',\n flag: '🇹🇲',\n },\n {\n code: 'tc',\n dialCode: '+1649',\n name: 'Turks and Caicos Islands',\n flag: '🇹🇨',\n },\n {\n code: 'tv',\n dialCode: '+688',\n name: 'Tuvalu',\n flag: '🇹🇻',\n },\n {\n code: 'vi',\n dialCode: '+1340',\n name: 'U.S. Virgin Islands',\n flag: '🇻🇮',\n },\n {\n code: 'ug',\n dialCode: '+256',\n name: 'Uganda',\n flag: '🇺🇬',\n },\n {\n code: 'ua',\n dialCode: '+380',\n name: 'Ukraine',\n flag: '🇺🇦',\n },\n {\n code: 'ae',\n dialCode: '+971',\n name: 'United Arab Emirates',\n flag: '🇦🇪',\n },\n {\n code: 'gb',\n dialCode: '+44',\n name: 'United Kingdom',\n flag: '🇬🇧',\n },\n {\n code: 'us',\n dialCode: '+1',\n name: 'United States',\n flag: '🇺🇸',\n },\n {\n code: 'um',\n dialCode: '+1',\n name: 'United States Minor Outlying Islands',\n flag: '🇺🇲',\n },\n {\n code: 'uy',\n dialCode: '+598',\n name: 'Uruguay',\n flag: '🇺🇾',\n },\n {\n code: 'uz',\n dialCode: '+998',\n name: 'Uzbekistan',\n flag: '🇺🇿',\n },\n {\n code: 'vu',\n dialCode: '+678',\n name: 'Vanuatu',\n flag: '🇻🇺',\n },\n {\n code: 'va',\n dialCode: '+379',\n name: 'Vatican City',\n flag: '🇻🇦',\n },\n {\n code: 've',\n dialCode: '+58',\n name: 'Venezuela',\n flag: '🇻🇪',\n },\n {\n code: 'vn',\n dialCode: '+84',\n name: 'Vietnam',\n flag: '🇻🇳',\n },\n {\n code: 'wf',\n dialCode: '+681',\n name: 'Wallis and Futuna',\n flag: '🇼🇫',\n },\n {\n code: 'eh',\n dialCode: '+212',\n name: 'Western Sahara',\n flag: '🇪🇭',\n },\n {\n code: 'ye',\n dialCode: '+967',\n name: 'Yemen',\n flag: '🇾🇪',\n },\n {\n code: 'zm',\n dialCode: '+260',\n name: 'Zambia',\n flag: '🇿🇲',\n },\n {\n code: 'zw',\n dialCode: '+263',\n name: 'Zimbabwe',\n flag: '🇿🇼',\n },\n];\n","import { COUNTRIES } from '../models/countries.model';\nimport { sessionState } from '../store/session.store';\n\n/**\n * Maps a dial code (e.g., \"+57\") to a country code (e.g., \"co\")\n * @param dialCode - The dial code with + prefix (e.g., \"+57\", \"+54\")\n * @returns The country code (e.g., \"co\", \"ar\") or null if not found\n */\nexport function mapDialCodeToCountryCode(dialCode: string): string | null {\n if (!dialCode) {\n return null;\n }\n\n // Remove any spaces and ensure it starts with +\n const cleanDialCode = dialCode.trim().startsWith('+') ? dialCode.trim() : `+${dialCode.trim()}`;\n\n // Find the country that matches this dial code\n const country = COUNTRIES.find(c => c.dialCode === cleanDialCode);\n\n return country?.code || sessionState.data.country;\n}\n","import { CURRENCY_ENUM } from '../models/enums/currency.enum';\n\n/**\n * Mapeo de monedas a locales específicos para formateo\n */\nconst locationByCurrency: Record<CURRENCY_ENUM, string> = {\n [CURRENCY_ENUM.ARS]: 'es-AR', // Argentina\n [CURRENCY_ENUM.BOB]: 'es-BO', // Bolivia\n [CURRENCY_ENUM.CLP]: 'es-CL', // Chile\n [CURRENCY_ENUM.UYU]: 'es-UY', // Uruguay\n [CURRENCY_ENUM.MXN]: 'es-MX', // México\n [CURRENCY_ENUM.DOP]: 'es-DO', // República Dominicana\n [CURRENCY_ENUM.COP]: 'es-CO', // Colombia\n [CURRENCY_ENUM.PEN]: 'es-PE', // Perú\n [CURRENCY_ENUM.BRL]: 'pt-BR', // Brasil\n [CURRENCY_ENUM.EUR]: 'es-ES', // España (Euros)\n [CURRENCY_ENUM.USD]: 'en-US', // Estados Unidos\n [CURRENCY_ENUM.PYG]: 'es-PY', // Paraguay\n [CURRENCY_ENUM.CRC]: 'es-CR', // Costa Rica\n [CURRENCY_ENUM.GTQ]: 'es-GT', // Guatemala\n [CURRENCY_ENUM.ECS]: 'es-EC', // Ecuador\n [CURRENCY_ENUM.SVC]: 'es-SV', // El Salvador\n [CURRENCY_ENUM.PAB]: 'es-PA', // Panamá\n [CURRENCY_ENUM.NIO]: 'es-NI', // Nicaragua\n [CURRENCY_ENUM.GBP]: 'en-GB', // Reino Unido\n [CURRENCY_ENUM.JPY]: 'ja-JP', // Japón\n [CURRENCY_ENUM.INDIFFERENT]: 'en-US', // Internacional (default)\n};\n\nexport const countryByCurrency: Record<CURRENCY_ENUM, string> = {\n [CURRENCY_ENUM.ARS]: 'AR',\n [CURRENCY_ENUM.BOB]: 'BO',\n [CURRENCY_ENUM.CLP]: 'CL',\n [CURRENCY_ENUM.UYU]: 'UY',\n [CURRENCY_ENUM.MXN]: 'MX',\n [CURRENCY_ENUM.DOP]: 'DO',\n [CURRENCY_ENUM.COP]: 'CO',\n [CURRENCY_ENUM.PEN]: 'PE',\n [CURRENCY_ENUM.BRL]: 'BR',\n [CURRENCY_ENUM.EUR]: 'ES',\n [CURRENCY_ENUM.USD]: 'US',\n [CURRENCY_ENUM.PYG]: 'PY',\n [CURRENCY_ENUM.CRC]: 'CR',\n [CURRENCY_ENUM.GTQ]: 'GT',\n [CURRENCY_ENUM.ECS]: 'EC',\n [CURRENCY_ENUM.SVC]: 'SV',\n [CURRENCY_ENUM.PAB]: 'PA',\n [CURRENCY_ENUM.NIO]: 'NI',\n [CURRENCY_ENUM.GBP]: 'GB',\n [CURRENCY_ENUM.JPY]: 'JP',\n [CURRENCY_ENUM.INDIFFERENT]: 'US',\n};\n\n/**\n * Opciones por defecto para el formateo de números\n */\nconst defaultOptions: Intl.NumberFormatOptions = {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n};\n\n/**\n * Formatea un monto según la moneda especificada usando Intl.NumberFormat\n * @param amount - El monto a formatear\n * @param currency - La moneda a usar para el formateo\n * @param options - Opciones adicionales para el formateo (opcional)\n * @returns String formateado del monto o string vacío si los parámetros son inválidos\n */\nexport const formatAmountToIntlFormat = (\n amount: number | undefined,\n currency: CURRENCY_ENUM | undefined,\n options?: Intl.NumberFormatOptions,\n): string => {\n if (amount === undefined || amount === null) return '';\n if (!currency) return '';\n\n const locale = window.navigator.language || locationByCurrency[currency];\n\n return new Intl.NumberFormat(locale, {\n ...defaultOptions,\n ...options,\n currency,\n style: 'currency',\n }).format(amount);\n};\n\n/**\n * Formatea un monto sin el símbolo de moneda\n * @param amount - El monto a formatear\n * @param currency - La moneda a usar para el formateo\n * @param options - Opciones adicionales para el formateo (opcional)\n * @returns String formateado del monto sin símbolo de moneda\n */\nexport const formatAmountWithoutCurrency = (\n amount: number | undefined,\n currency: CURRENCY_ENUM | undefined,\n options?: Intl.NumberFormatOptions,\n): string => {\n if (amount === undefined || amount === null) return '';\n if (!currency) return '';\n\n const locale = window.navigator.language || locationByCurrency[currency];\n\n return new Intl.NumberFormat(locale, {\n ...defaultOptions,\n ...options,\n style: 'decimal',\n }).format(amount);\n};\n\n/**\n * Formatea un monto con opciones personalizadas\n * @param amount - El monto a formatear\n * @param currency - La moneda a usar para el formateo\n * @param customOptions - Opciones completamente personalizadas\n * @returns String formateado del monto\n */\nexport const formatAmountWithCustomOptions = (\n amount: number | undefined,\n currency: CURRENCY_ENUM | undefined,\n customOptions: Intl.NumberFormatOptions,\n): string => {\n if (amount === undefined || amount === null) return '';\n if (!currency) return '';\n\n const locale = window.navigator.language || locationByCurrency[currency];\n\n return new Intl.NumberFormat(locale, customOptions).format(amount);\n};\n\n/**\n * Obtiene el locale apropiado para una moneda específica\n * @param currency - La moneda\n * @returns El locale correspondiente a la moneda\n */\nexport const getLocaleForCurrency = (currency: CURRENCY_ENUM): string => {\n return locationByCurrency[currency];\n};\n\n/**\n * Verifica si una moneda es válida\n * @param currency - La moneda a verificar\n * @returns true si la moneda es válida, false en caso contrario\n */\nexport const isValidCurrency = (currency: string): currency is CURRENCY_ENUM => {\n return Object.values(CURRENCY_ENUM).includes(currency as CURRENCY_ENUM);\n};\n\n/**\n * Formatea un monto con o sin moneda (función wrapper para compatibilidad)\n */\nexport const formatAmount = (\n amount: number | string,\n currency: string,\n withCurrency: boolean = true,\n): string => {\n if (typeof amount === 'string') {\n return amount;\n }\n\n const currencyEnum = currency as CURRENCY_ENUM;\n return withCurrency\n ? formatAmountToIntlFormat(amount, currencyEnum)\n : formatAmountWithoutCurrency(amount, currencyEnum);\n};\n","import { I18nService } from '../i18n/i18n.service';\nimport { Payment, PaymentMethodDetails } from '../store/session.store';\nimport { mapDialCodeToCountryCode } from '../utils/country-code-mapper';\nimport { countryByCurrency } from '../utils/currency-formatter';\nimport { DisplayConfig } from './display.model';\nimport { CURRENCY_ENUM } from './enums/currency.enum';\nimport { DEBIT_STRATEGY_ENUM } from './enums/debit-strategy.enum';\nimport { ENUM_INSTALLMENT_MODEL } from './enums/installment.enum';\nimport { LOCALES_ENUM } from './enums/locales.enum';\nimport { PAYMENT_METHOD_ENUM } from './enums/payment-methods.enum';\nimport {\n PLAN_FREQUENCY_ENUM,\n PLAN_TYPE_ENUM,\n PRICING_MODE_ENUM,\n SESSION_ITEM_TYPE_ENUM,\n SESSION_TYPE_ENUM,\n STATUS_ENUM,\n} from './enums/session.enum';\n\n// Common types used across different session types\nexport interface LocalizedText {\n text: string;\n language: LOCALES_ENUM;\n}\n\nexport interface PaymentMethod {\n methods: PAYMENT_METHOD_ENUM[];\n currency: string;\n}\n\nexport interface Price {\n id: string;\n amount: number;\n planAmount?: number;\n currency: CURRENCY_ENUM;\n paymentMethods: PaymentMethod[];\n isPriceFixed: boolean | null;\n targetCurrency: string;\n country: string;\n}\n\nexport interface RedirectUrls {\n approved: string | null;\n}\n\n// Product types\nexport interface Product {\n id?: string;\n name: LocalizedText[];\n description?: LocalizedText[];\n status?: STATUS_ENUM;\n pricingMode?: PRICING_MODE_ENUM;\n notes?: string | null;\n photos?: string[] | null;\n metadata?: Record<string, any> | null;\n stock?: number | null;\n createdAt?: string;\n}\n\n// Plan types\nexport interface Plan {\n id?: string;\n name: LocalizedText[];\n description: LocalizedText[];\n status?: STATUS_ENUM;\n frequency: {\n count: number;\n period: PLAN_FREQUENCY_ENUM;\n };\n trialPeriodDays?: number;\n trialPeriodEndsAt?: string;\n trialPeriodEndsReminderAt?: string;\n debitStrategy?: DEBIT_STRATEGY_ENUM;\n debitDay?: number;\n type: PLAN_TYPE_ENUM;\n pricingMode: PRICING_MODE_ENUM;\n metadata: Record<string, any> | null;\n createdAt: string;\n}\n\n// Payment Link types\nexport interface PrefilledData {\n email: string;\n fullName: string;\n countryCode: string;\n phoneNumber: string;\n city: string;\n state: string;\n country: string;\n zipCode: string;\n language: string;\n streetAddress: string;\n}\n\nexport interface BasePaymentLink {\n id: string;\n organizationId: string;\n status: STATUS_ENUM;\n title: LocalizedText[];\n description: LocalizedText[];\n notes: string;\n metadata: Record<string, any> | null;\n isSingleUse: boolean;\n paymentsCount: number;\n expirationDate: string | null;\n redirectUrls: RedirectUrls;\n prefilledFields: {\n customer: PrefilledData;\n } | null;\n fieldsSettings: Record<string, any> | null;\n customJs: string | null;\n customCss: string | null;\n customFields: Record<string, any> | null;\n discountPercentage: number | null;\n prices: Price[];\n showLogo: boolean;\n showCoupon: boolean;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface ProductPaymentLink extends BasePaymentLink {\n product: Product;\n plan?: never;\n}\n\nexport interface PlanPaymentLink extends BasePaymentLink {\n plan: Plan;\n product?: never;\n}\n\nexport interface InstantLinkPaymentLink extends BasePaymentLink {\n product?: never;\n plan?: never;\n}\n\nexport type PaymentLink = ProductPaymentLink | PlanPaymentLink | InstantLinkPaymentLink;\n\nexport interface Organization {\n id: string;\n name: string;\n logoUrl: string;\n}\n\n// Session types\nexport interface BaseSession {\n id: string;\n paymentLink: PaymentLink;\n createdAt: string;\n updatedAt: string;\n organization: Organization;\n country: string;\n refresh?: boolean;\n hasInstallments?: boolean;\n paymentMethodMetadata?: Record<string, unknown>;\n installments?: {\n installments: {\n model: ENUM_INSTALLMENT_MODEL;\n cft: number;\n installment: number;\n totalAmount: number;\n installmentAmount: number;\n cftAmount: number;\n }[];\n };\n}\n\n// Instant session types (different structure)\nexport interface InstantPaymentSession {\n id: string;\n organizationId: string;\n price: {\n amount: number;\n currency: string;\n targetCurrency: string;\n paymentMethods: Array<{\n methods: PAYMENT_METHOD_ENUM[];\n currency: string;\n }>;\n country: string;\n };\n organization: {\n id: string;\n name: string;\n logoUrl: string | null;\n };\n product?: Product;\n plan?: Plan;\n createdAt: string;\n updatedAt: string;\n country?: string;\n}\n\nexport interface BillingAddress {\n address: string;\n city: string;\n state: string;\n country: string;\n zip: string;\n}\n\nexport interface ShippingAddress {\n address: string;\n city: string;\n state: string;\n country: string;\n zip: string;\n}\n\nexport interface UserInformation {\n email: string;\n fullName: string;\n countryCode: string;\n phoneNumber: string;\n city: string;\n state: string;\n country: string;\n zip: string;\n language: string;\n streetAddress: string;\n}\n\nexport interface ProductSession extends BaseSession {\n paymentLink: ProductPaymentLink;\n}\n\nexport interface PlanSession extends BaseSession {\n paymentLink: PlanPaymentLink;\n}\n\nexport interface InstantLinkSession extends BaseSession {\n paymentLink: InstantLinkPaymentLink;\n}\n\nexport interface SDKItemBaseSession {\n id: string;\n price: Price;\n organizationId: string;\n organization: Organization;\n paymentMethods: PaymentMethod[];\n createdAt: string;\n updatedAt: string;\n country: string;\n}\n\nexport interface SDKProductItemSession extends SDKItemBaseSession {\n product: Product;\n plan: never;\n}\n\nexport interface SDKPlanItemSession extends SDKItemBaseSession {\n plan: Plan;\n product: never;\n}\n\nexport type CheckoutLandingSession = ProductSession | PlanSession | InstantLinkSession;\n\nexport type CheckoutSession = CheckoutLandingSession | InstantPaymentSession | SDKItemSession;\n\nexport type SDKItemSession = SDKProductItemSession | SDKPlanItemSession;\n\n// Type guards to distinguish between session types\n// TODO: An instant session is related to a product or plan, so it should be a product or plan session\nexport function isProductSession(session: CheckoutSession): session is ProductSession {\n return ('paymentLink' in session && 'product' in session.paymentLink) || 'product' in session;\n}\n\nexport function isPlanSession(session: CheckoutSession): session is PlanSession {\n return ('paymentLink' in session && 'plan' in session.paymentLink) || 'plan' in session;\n}\n\n// Session model class that can receive rebill checkout component\nexport class SessionModel {\n private session: CheckoutSession;\n private sessionType: SESSION_TYPE_ENUM;\n private externalPayment?: Payment | null;\n\n constructor(session: CheckoutSession, sessionType: SESSION_TYPE_ENUM) {\n this.sessionType = sessionType;\n this.session = {\n ...session,\n country: session.country,\n };\n }\n\n toObject(): CheckoutSession {\n return this.session;\n }\n\n getPrefilledData() {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return {};\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n return {};\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n return sessionWithPaymentLink.paymentLink.prefilledFields?.customer\n ? {\n email: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.email,\n fullName: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.fullName,\n countryCode: (() => {\n const originalCountryCode =\n sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.countryCode;\n if (originalCountryCode) {\n if (originalCountryCode.startsWith('+') || /^\\d+$/.test(originalCountryCode)) {\n const mappedCode = mapDialCodeToCountryCode(originalCountryCode);\n return mappedCode || 'ar'; // Fallback to Argentina if mapping fails\n }\n return originalCountryCode;\n }\n return this.getCountry();\n })(),\n phoneNumber: {\n number: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.phoneNumber,\n countryCode:\n sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.countryCode,\n },\n address: {\n billingAddress: {\n address:\n sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.streetAddress,\n city: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.city,\n state: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.state,\n country: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.country,\n zip: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.zipCode,\n },\n },\n language: sessionWithPaymentLink.paymentLink.prefilledFields?.customer?.language,\n }\n : {};\n }\n return {};\n }\n\n getUserInformation() {\n const prefilledData = this.getPrefilledData();\n return {\n email: prefilledData.email,\n fullName: prefilledData.fullName,\n countryCode: prefilledData.countryCode,\n phoneNumber: prefilledData.phoneNumber,\n address: prefilledData.address,\n language: prefilledData.language,\n };\n }\n /**\n * Get the session data\n */\n getSession(): CheckoutSession {\n return this.session;\n }\n\n /**\n * Get the session ID\n */\n getId(): string {\n return this.session.id;\n }\n\n getAllowCoupon(displayConfig?: DisplayConfig): boolean {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n // Para sesiones INSTANT, usar la prop display.discountCode (por defecto true)\n return displayConfig?.discountCode !== false;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n // Para sesiones SDK_ITEM, usar la prop display.discountCode (por defecto true)\n return displayConfig?.discountCode !== false;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n return sessionWithPaymentLink.paymentLink.showCoupon;\n }\n return false;\n }\n\n /**\n * Check if this is a product session\n */\n isProductSession(): boolean {\n return isProductSession(this.session);\n }\n\n /**\n * Check if this is a plan session\n */\n isPlanSession(): boolean {\n return isPlanSession(this.session);\n }\n\n /**\n * Get the session type\n */\n getSessionType(): SESSION_TYPE_ENUM {\n return this.sessionType;\n }\n\n /**\n * Get the session type\n */\n getItemSessionType(): SESSION_ITEM_TYPE_ENUM {\n return this.getProduct()\n ? SESSION_ITEM_TYPE_ENUM.PRODUCT\n : this.getPlan()\n ? SESSION_ITEM_TYPE_ENUM.PLAN\n : SESSION_ITEM_TYPE_ENUM.INSTANT_LINK;\n }\n\n getItemId(): string | null {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return null;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n if (this.isProductSession()) {\n return (this.session as SDKProductItemSession).product?.id;\n }\n if (this.isPlanSession()) {\n return (this.session as SDKPlanItemSession).plan?.id;\n }\n return null;\n }\n if (this.isProductSession()) {\n return (this.session as ProductSession).paymentLink?.product?.id;\n }\n if (this.isPlanSession()) {\n return (this.session as PlanSession).paymentLink?.plan?.id;\n }\n return null;\n }\n\n getProduct(): Product | null {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return (this.session as InstantPaymentSession).product || null;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n if (this.isProductSession()) {\n return (this.session as SDKProductItemSession).product || null;\n }\n }\n if (this.isProductSession()) {\n return (this.session as ProductSession).paymentLink.product;\n }\n return null;\n }\n\n /**\n * Get the plan if this is a plan session\n */\n getPlan(): Plan | null {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return (this.session as InstantPaymentSession).plan || null;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n if (this.isPlanSession()) {\n return (this.session as SDKPlanItemSession).plan || null;\n }\n }\n if (this.isPlanSession()) {\n return (this.session as PlanSession).paymentLink.plan;\n }\n return null;\n }\n\n /**\n * Get the session creation date\n */\n getCreatedAt(): string {\n return this.session.createdAt;\n }\n\n getOrganization(): Organization {\n return this.session.organization;\n }\n\n /**\n * Get the session last update date\n */\n getUpdatedAt(): string {\n return this.session.updatedAt;\n }\n\n /**\n * Get the session title in a specific language\n */\n getTitle(): string {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return (\n (this.session as InstantPaymentSession).product?.name[0]?.text ||\n (this.session as InstantPaymentSession).plan?.name[0]?.text\n );\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n if (this.isProductSession()) {\n return (\n (this.session as SDKProductItemSession).product?.name?.find(\n n => n.language === I18nService.getCurrentLanguage(),\n )?.text ||\n (this.session as SDKProductItemSession).product?.name?.[0]?.text ||\n ''\n );\n }\n if (this.isPlanSession()) {\n return (\n (this.session as SDKPlanItemSession).plan?.name?.find(\n n => n.language === I18nService.getCurrentLanguage(),\n )?.text ||\n (this.session as SDKPlanItemSession).plan?.name?.[0]?.text ||\n ''\n );\n }\n return '';\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n const title = sessionWithPaymentLink.paymentLink.title?.find(\n t => t.language === I18nService.getCurrentLanguage(),\n );\n return title?.text || sessionWithPaymentLink.paymentLink.title?.[0]?.text || '';\n }\n return '';\n }\n\n /**\n * Get the session description in a specific language\n */\n getDescription(): string {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n if (this.isProductSession()) {\n return (\n (this.session as SDKProductItemSession).product?.description?.find(\n d => d.language === I18nService.getCurrentLanguage(),\n )?.text ||\n (this.session as SDKProductItemSession).product?.description?.[0]?.text ||\n ''\n );\n }\n if (this.isPlanSession()) {\n return (\n (this.session as SDKPlanItemSession).plan?.description?.find(\n d => d.language === I18nService.getCurrentLanguage(),\n )?.text ||\n (this.session as SDKPlanItemSession).plan?.description?.[0]?.text ||\n ''\n );\n }\n return '';\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n if (this.isProductSession()) {\n return (\n (this.session as SDKProductItemSession).product?.description?.find(\n d => d.language === I18nService.getCurrentLanguage(),\n )?.text ||\n (this.session as SDKProductItemSession).product?.description?.[0]?.text ||\n ''\n );\n }\n if (this.isPlanSession()) {\n return (\n (this.session as SDKPlanItemSession).plan?.description?.find(\n d => d.language === I18nService.getCurrentLanguage(),\n )?.text ||\n (this.session as SDKPlanItemSession).plan?.description?.[0]?.text ||\n ''\n );\n }\n return '';\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const itemType = this.getItemSessionType();\n if (itemType === SESSION_ITEM_TYPE_ENUM.PLAN) {\n return (\n this.getPlan()?.description?.find(d => d.language === I18nService.getCurrentLanguage())\n ?.text ||\n this.getPlan()?.description?.[0]?.text ||\n ''\n );\n }\n if (itemType === SESSION_ITEM_TYPE_ENUM.PRODUCT) {\n return (\n this.getProduct()?.description?.find(d => d.language === I18nService.getCurrentLanguage())\n ?.text ||\n this.getProduct()?.description?.[0]?.text ||\n ''\n );\n }\n if (itemType === SESSION_ITEM_TYPE_ENUM.INSTANT_LINK) {\n const sessionWithPaymentLink = this.session as InstantLinkSession;\n const descriptionList = sessionWithPaymentLink.paymentLink?.description;\n const localized = descriptionList?.find(\n d => d.language === I18nService.getCurrentLanguage(),\n );\n return localized?.text || descriptionList?.[0]?.text || '';\n }\n }\n return '';\n }\n\n getCurrency(): CURRENCY_ENUM {\n return this.getPrice().currency;\n }\n\n /**\n * Get the prices for this session\n */\n getPrice(): Price {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n const instantPrice = (this.session as InstantPaymentSession).price;\n return {\n id: 'instant_price',\n amount: instantPrice.amount,\n currency: instantPrice.currency as CURRENCY_ENUM,\n paymentMethods: instantPrice.paymentMethods,\n isPriceFixed: true,\n targetCurrency: instantPrice.targetCurrency,\n country: this.getCountry(),\n };\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n return (this.session as SDKItemBaseSession).price;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n return sessionWithPaymentLink.paymentLink.prices[0];\n }\n throw new Error('Price not found because the session type is not instant or checkout landing');\n }\n\n /**\n * Get the organization ID\n */\n getOrganizationId(): string {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return (this.session as InstantPaymentSession).organizationId;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n return (this.session as SDKItemBaseSession).organizationId;\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n return sessionWithPaymentLink.paymentLink.organizationId;\n }\n throw new Error(\n 'Organization ID not found because the session type is not instant or checkout landing',\n );\n }\n\n /**\n * Get the pricing mode\n */\n getPricingMode(): PRICING_MODE_ENUM {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return PRICING_MODE_ENUM.FIXED; // TODO: Instant sessions should support other pricing modes because they are related to a product or plan\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n if (this.isProductSession()) {\n return (\n (this.session as SDKProductItemSession).product?.pricingMode || PRICING_MODE_ENUM.FIXED\n );\n }\n if (this.isPlanSession()) {\n return (this.session as SDKPlanItemSession).plan?.pricingMode || PRICING_MODE_ENUM.FIXED;\n }\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n return this.getProduct()?.pricingMode || PRICING_MODE_ENUM.FIXED;\n }\n return this.getPlan()?.pricingMode || PRICING_MODE_ENUM.FIXED;\n }\n\n getEnabledPaymentMethods(): PAYMENT_METHOD_ENUM[] {\n let paymentMethods: PAYMENT_METHOD_ENUM[] = [];\n\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n const methods = (this.session as InstantPaymentSession).price.paymentMethods[0].methods;\n paymentMethods = Array.from(new Set(methods));\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n const methods = (this.session as InstantPaymentSession).price.paymentMethods[0].methods;\n paymentMethods = Array.from(new Set(methods));\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n paymentMethods = sessionWithPaymentLink.paymentLink.prices[0].paymentMethods[0].methods;\n }\n\n if (\n this.isPlanSession() &&\n this.getPlan()?.trialPeriodDays &&\n this.getPlan().trialPeriodDays > 0\n ) {\n return paymentMethods.filter(method => method === PAYMENT_METHOD_ENUM.CARD);\n }\n\n return paymentMethods;\n }\n //Verificar si sirve para todos los tipos de session\n getPaymentMethodDetails(): PaymentMethodDetails[] {\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n\n if (\n 'paymentMethods' in sessionWithPaymentLink &&\n Array.isArray(sessionWithPaymentLink.paymentMethods)\n ) {\n return sessionWithPaymentLink.paymentMethods.map(provider => ({\n name: provider.name,\n type: provider.type,\n }));\n }\n }\n\n if (\n this.sessionType === SESSION_TYPE_ENUM.INSTANT ||\n this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM\n ) {\n const instantSession = this.session as InstantPaymentSession;\n if ('paymentMethods' in instantSession && Array.isArray(instantSession.paymentMethods)) {\n return instantSession.paymentMethods.map(provider => ({\n name: provider.name,\n type: provider.type,\n }));\n }\n }\n\n return [];\n }\n\n /**\n * Get plan frequency (only for plan sessions)\n */\n getPlanFrequency(): PLAN_FREQUENCY_ENUM | null {\n if (this.isPlanSession()) {\n return this.getPlan()?.frequency.period || null;\n }\n return null;\n }\n getPlanFrequencyCount(): number | null {\n if (this.isPlanSession()) {\n return this.getPlan()?.frequency.count || null;\n }\n return null;\n }\n\n /**\n * Get plan type (only for plan sessions)\n */\n getPlanType(): PLAN_TYPE_ENUM | null {\n if (this.isPlanSession()) {\n return this.getPlan()?.type || null;\n }\n return null;\n }\n\n getTrial(): {\n trialPeriodEndsAt: string;\n trialPeriodEndsReminderAt: string;\n trialPeriodDays: number;\n } | null {\n if (this.isPlanSession()) {\n return {\n trialPeriodEndsAt: this.getPlan()?.trialPeriodEndsAt,\n trialPeriodDays: this.getPlan()?.trialPeriodDays,\n trialPeriodEndsReminderAt: this.getPlan()?.trialPeriodEndsReminderAt,\n };\n }\n return null;\n }\n\n getCountry(): string {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return (this.session as InstantPaymentSession).price.country || '';\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n return (this.session as SDKItemBaseSession).country;\n }\n return this.session.country;\n }\n getCountryCurrency(): string {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return (\n (this.session as InstantPaymentSession).price.country ??\n countryByCurrency[(this.session as InstantPaymentSession).price.currency] ??\n ''\n );\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n return (\n (this.session as SDKItemBaseSession).price.country ??\n countryByCurrency[(this.session as SDKItemBaseSession).price.currency] ??\n ''\n );\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n return this.getPrice().country || '';\n }\n return '';\n }\n\n getRedirectSuccess(): string {\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n return null; // TODO: Validate Instant session API response, should return a redirect URL\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n return null; // TODO: Validate SDK item session API response, should return a redirect URL\n }\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionWithPaymentLink = this.session as ProductSession | PlanSession;\n return sessionWithPaymentLink.paymentLink?.redirectUrls?.approved || '';\n }\n return '';\n }\n\n getMetadata(): Record<string, any> {\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n // TODO: Priority to query params in the URL\n if ((this.session as InstantLinkSession)?.paymentLink?.metadata) {\n return (this.session as InstantLinkSession).paymentLink.metadata;\n }\n const itemType = this.getItemSessionType();\n switch (itemType) {\n case SESSION_ITEM_TYPE_ENUM.PRODUCT:\n return this.getProduct()?.metadata || {};\n case SESSION_ITEM_TYPE_ENUM.PLAN:\n return this.getPlan()?.metadata || {};\n case SESSION_ITEM_TYPE_ENUM.INSTANT_LINK:\n return (this.session as InstantLinkSession).paymentLink.metadata || {};\n }\n }\n if (this.sessionType === SESSION_TYPE_ENUM.INSTANT) {\n if (this.isProductSession()) {\n return (this.session as InstantPaymentSession).product?.metadata || {};\n }\n if (this.isPlanSession()) {\n return (this.session as InstantPaymentSession).plan?.metadata || {};\n }\n }\n if (this.sessionType === SESSION_TYPE_ENUM.SDK_ITEM) {\n if (this.isProductSession()) {\n return (this.session as SDKProductItemSession).product?.metadata || {};\n }\n if (this.isPlanSession()) {\n return (this.session as SDKPlanItemSession).plan?.metadata || {};\n }\n }\n return {};\n }\n //is sandbox si el id de la org comienza con test\n isSandbox(): boolean {\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const organizationId = this.getOrganizationId();\n return organizationId ? organizationId.startsWith('test') : false;\n }\n return false;\n }\n getDebitStrategy(): DEBIT_STRATEGY_ENUM | null {\n if (this.isPlanSession()) {\n return this.getPlan()?.debitStrategy || null;\n }\n return null;\n }\n\n getDebitDay(): number | null {\n if (this.isPlanSession()) {\n return this.getPlan()?.debitDay || null;\n }\n return null;\n }\n\n getPlanAmount(): number | null {\n if (this.isPlanSession()) {\n return this.getPrice().planAmount || null;\n }\n return null;\n }\n getPayment(): Payment | null {\n if (this.externalPayment) {\n return this.externalPayment;\n }\n return null;\n }\n getInstallments(): {\n isAvailableInstallments: boolean;\n installments: {\n model: ENUM_INSTALLMENT_MODEL;\n cft: number;\n installment: number;\n totalAmount: number;\n installmentAmount: number;\n cftAmount: number;\n }[];\n } | null {\n if (this.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const sessionInstallments = (this.session as CheckoutLandingSession).installments;\n if (!sessionInstallments || !sessionInstallments.installments) {\n return {\n installments: [],\n isAvailableInstallments: false,\n };\n }\n return {\n ...sessionInstallments,\n isAvailableInstallments: !!sessionInstallments?.installments?.length,\n };\n }\n return null;\n }\n}\n","import { createStore } from '@stencil/store';\nimport {\n CreateAPMCheckoutResponse,\n CreateCardCheckoutResponse,\n} from '../api/entities/checkout/types';\nimport { initializeI18nWithSessionLanguage } from '../i18n/i18n.config';\nimport {\n CheckoutLandingSession,\n CheckoutSession,\n CURRENCY_ENUM,\n InstantPaymentSession,\n SDKItemSession,\n SESSION_DISCOUNT_TYPE_ENUM,\n SESSION_ITEM_TYPE_ENUM,\n SESSION_TYPE_ENUM,\n SessionModel,\n} from '../models';\nimport { DEBIT_STRATEGY_ENUM } from '../models/enums/debit-strategy.enum';\nimport { ENUM_INSTALLMENT_MODEL } from '../models/enums/installment.enum';\nimport { LOCALES_ENUM } from '../models/enums/locales.enum';\nimport { PAYMENT_METHOD_ENUM } from '../models/enums/payment-methods.enum';\nimport { PaymentMessageE } from '../models/enums/payment-status.enum';\nimport { PROVIDER_ENUM } from '../models/enums/provider.enum';\nimport { mapDialCodeToCountryCode } from '../utils/country-code-mapper';\n\n// Interfaces específicas para metadatos de métodos de pago\nexport interface BankTransferMetadata {\n name: string;\n type: string;\n bankCode: string;\n bankName: string;\n ticketId: string;\n bankProcessDate: string;\n trazabilityCode: string;\n paymentDescription: string;\n originalTransactionState: string;\n}\n\nexport interface CardMetadata {\n // Campos específicos para tarjetas si los necesitas\n [key: string]: unknown;\n}\n\nexport type PaymentMethodMetadata = BankTransferMetadata | CardMetadata | Record<string, unknown>;\n\nexport interface Payment {\n id: string;\n traceId: string;\n createdAt: string;\n updatedAt: string;\n organizationId: string;\n amount: number;\n currency: string;\n customer: {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n phoneNumbers: {\n number: string;\n countryCode: string;\n }[];\n };\n status: string;\n metadata: Record<string, unknown>;\n paymentMethodType: PAYMENT_METHOD_ENUM;\n paymentMethodMetadata: PaymentMethodMetadata;\n card?: {\n id: string;\n name: string;\n expiration: {\n month: string;\n year: string;\n };\n lastFour: string;\n brand: string;\n };\n quantity: number;\n paymentProviderReference: string | null;\n paymentProviderDescription: string | null;\n installments: number | null;\n priceFixedIn: string | null;\n conversionRate: number | null;\n couponId: string | null;\n description: {\n text: string;\n language: string;\n };\n processingMode: string;\n processingFee: number | null;\n errorDetail?: string | null;\n subscriptionId?: string | null;\n country: string;\n timezone: string | null;\n}\n\nexport interface UserInformation {\n email?: string;\n fullName?: string;\n countryCode?: string;\n phoneNumber?: {\n number: string;\n countryCode: string;\n };\n documentType?: string;\n documentNumber?: string;\n address?: {\n billingAddress?: {\n address?: string;\n city?: string;\n state?: string;\n country?: string;\n zip?: string;\n addInformation?: string;\n };\n shippingAddress?: {\n address?: string;\n city?: string;\n state?: string;\n country?: string;\n zip?: string;\n addInformation?: string;\n };\n };\n language?: string;\n}\n\nexport interface PaymentMethodDetails {\n name: string;\n type: string;\n}\n\nexport interface SessionState {\n _session: SessionModel | null;\n sessionRefreshed: boolean;\n data: {\n sessionId: string;\n customerId?: string | null;\n accessToken?: string | null;\n sessionType: SESSION_TYPE_ENUM | null;\n cardTokenId?: string;\n cardId?: string;\n country: string;\n organization: {\n name: string;\n logoUrl: string;\n id: string;\n };\n pricing: {\n currency?: CURRENCY_ENUM;\n subtotal: number;\n totalWithoutInstallment: number; // total - discountAmount\n total: number; // total = subtotal - discountAmount + intallmentAmount\n installments?: number; // Cantidad de cuotas\n totalInterestInstallmentAmount: number; // Total de intereses de la cuota\n discountAmount: number; // Descuento aplicado\n discountCouponCode: string; // Código del descuento\n country: string;\n trialDays?: number | null;\n planAmount?: number;\n };\n cardInformation?: {\n brand: string;\n type: string;\n isoCountry: string;\n bank: string;\n lastFour?: string;\n installments: {\n isAvailableInstallments: boolean;\n installments: {\n model: ENUM_INSTALLMENT_MODEL;\n cft: number;\n installment: number;\n totalAmount: number;\n installmentAmount: number;\n cftAmount: number;\n }[];\n selectedInstallment?: {\n cft: number;\n cftAmount: number;\n installment: number; // Cantidad de cuotas\n installmentAmount: number;\n totalAmount: number;\n model: ENUM_INSTALLMENT_MODEL;\n };\n };\n };\n userInformation: UserInformation;\n itemInformation: {\n id: string;\n type: SESSION_ITEM_TYPE_ENUM | null;\n title: string;\n description: string;\n paymentMethods: PAYMENT_METHOD_ENUM[];\n paymentMethodDetails: PaymentMethodDetails[];\n redirectSuccess: string;\n trial: {\n trialPeriodEndsAt: string | null;\n trialPeriodEndsReminderAt: string | null;\n trialPeriodDays: number | null;\n };\n debitStrategy: DEBIT_STRATEGY_ENUM | null;\n debitDay: number | null;\n };\n discount: {\n couponCode: string | null;\n discountAmount: number;\n amount: number;\n discountDuration?: number | null;\n discountType: SESSION_DISCOUNT_TYPE_ENUM | null;\n discountedPercentage?: number;\n };\n prefilledData: UserInformation;\n providerKey: string;\n bankId?: {\n code: string;\n name: string;\n };\n paymentStatus: PaymentMessageE | null;\n paymentDate: string | null;\n paymentReference: string | null;\n paymentMethodSelected: PAYMENT_METHOD_ENUM | null;\n fetchingInstallments: boolean;\n payment?: CreateCardCheckoutResponse | CreateAPMCheckoutResponse | Payment | null;\n };\n form: {\n isComplete: boolean;\n isLoading: boolean;\n };\n currentLocale: LOCALES_ENUM;\n metadata: Record<string, any>;\n isInitialized: boolean;\n isSandbox: boolean;\n deviceId: string;\n provider: PROVIDER_ENUM;\n saveCard?: boolean;\n createdAt: string | null;\n cardMode?: 'input' | 'select' | null;\n}\n\nconst initialState: SessionState = {\n _session: null,\n sessionRefreshed: false,\n data: {\n sessionId: '',\n sessionType: null,\n country: '',\n organization: {\n name: '',\n logoUrl: '',\n id: '',\n },\n pricing: {\n total: 0,\n subtotal: 0,\n totalWithoutInstallment: 0,\n discountAmount: 0,\n totalInterestInstallmentAmount: 0,\n discountCouponCode: null,\n country: '',\n planAmount: 0,\n },\n cardInformation: {\n brand: null,\n type: null,\n isoCountry: null,\n bank: null,\n lastFour: null,\n installments: {\n isAvailableInstallments: false,\n installments: [\n {\n model: null,\n cft: null,\n installment: null,\n totalAmount: null,\n installmentAmount: null,\n cftAmount: null,\n },\n ],\n selectedInstallment: {\n cft: null,\n cftAmount: null,\n installment: null, // Cantidad de cuotas\n installmentAmount: null,\n totalAmount: null,\n model: null,\n },\n },\n },\n userInformation: {\n email: '',\n fullName: '',\n countryCode: '',\n phoneNumber: {\n number: '',\n countryCode: '',\n },\n documentType: '',\n documentNumber: '',\n address: {},\n },\n itemInformation: {\n id: '',\n type: null,\n title: '',\n description: '',\n paymentMethods: [],\n paymentMethodDetails: [],\n redirectSuccess: '',\n trial: {\n trialPeriodEndsAt: null,\n trialPeriodEndsReminderAt: null,\n trialPeriodDays: null,\n },\n debitStrategy: null,\n debitDay: null,\n },\n discount: {\n couponCode: null,\n discountAmount: 0,\n amount: 0,\n discountType: null,\n discountedPercentage: 0,\n discountDuration: null,\n },\n prefilledData: {\n email: '',\n fullName: '',\n countryCode: '',\n phoneNumber: {\n number: '',\n countryCode: '',\n },\n address: {\n billingAddress: {\n address: '',\n city: '',\n state: '',\n country: '',\n zip: '',\n addInformation: '',\n },\n },\n language: '',\n },\n providerKey: '',\n bankId: {\n code: '',\n name: '',\n },\n paymentStatus: null,\n paymentDate: null,\n paymentReference: null,\n paymentMethodSelected: null,\n fetchingInstallments: false,\n payment: null,\n },\n form: {\n isComplete: false,\n isLoading: false,\n },\n metadata: {},\n currentLocale: null,\n isInitialized: false,\n isSandbox: false,\n deviceId: null,\n provider: null,\n saveCard: false,\n createdAt: null,\n cardMode: 'select',\n};\n\nconst { state, onChange, reset } = createStore(initialState);\nexport { onChange };\n\nexport class SessionStore {\n static initializeSession({\n session,\n type,\n payment,\n }: {\n session: CheckoutSession | InstantPaymentSession | SDKItemSession;\n type: SESSION_TYPE_ENUM;\n payment?: Payment | null;\n }): void {\n state._session = new SessionModel(session, type);\n state.data.sessionId = state._session.getId();\n state.data.sessionType = type;\n state.data.organization.name = state._session.getOrganization().name;\n state.data.organization.logoUrl = state._session.getOrganization().logoUrl;\n state.data.organization.id = state._session.getOrganization().id;\n state.data.pricing.currency = state._session.getCurrency();\n state.data.pricing.total = state._session.getPrice().amount;\n state.data.pricing.subtotal = state._session.getPrice().amount;\n state.data.pricing.totalWithoutInstallment = state._session.getPrice().amount;\n state.data.pricing.country = state._session.getCountryCurrency();\n state.data.itemInformation.title = state._session.getTitle();\n state.data.itemInformation.description = state._session.getDescription();\n state.data.itemInformation.paymentMethods = state._session.getEnabledPaymentMethods();\n state.data.itemInformation.paymentMethodDetails = state._session.getPaymentMethodDetails();\n state.data.country = state._session.getCountry();\n state.data.itemInformation.id = state._session.getItemId();\n state.data.itemInformation.type = state._session.getItemSessionType();\n state.data.itemInformation.redirectSuccess = state._session.getRedirectSuccess();\n state.data.itemInformation.trial = state._session.getTrial();\n state.data.prefilledData = state._session.getPrefilledData();\n state.data.userInformation = state._session.getUserInformation();\n state.metadata = state._session.getMetadata();\n state.isSandbox = state._session.isSandbox();\n state.data.itemInformation.debitStrategy = state._session.getDebitStrategy();\n state.data.itemInformation.debitDay = state._session.getDebitDay();\n state.data.pricing.planAmount = state._session.getPlanAmount();\n state.data.payment = state._session.getPayment();\n payment && SessionStore.setPayment(payment);\n const sessionLanguage = state.data.prefilledData?.language;\n if (sessionLanguage) initializeI18nWithSessionLanguage(sessionLanguage);\n state.data.cardInformation.installments = state._session.getInstallments();\n if (type === SESSION_TYPE_ENUM.CHECKOUT_LANDING) {\n const checkoutSession = session as CheckoutLandingSession;\n if (checkoutSession.refresh) {\n state.sessionRefreshed = true;\n }\n }\n\n state.data = { ...state.data };\n state.isInitialized = true;\n }\n\n static setDiscount(\n discount: {\n couponCode: string | null;\n discountAmount: number;\n amount: number;\n discountType: SESSION_DISCOUNT_TYPE_ENUM | null;\n discountedPercentage?: number;\n discountDuration?: number | null;\n } | null,\n ) {\n if (discount) {\n state.data.discount = discount;\n state.data.pricing.discountAmount = discount.discountAmount || 0;\n state.data.pricing.discountCouponCode = discount.couponCode || '';\n } else {\n state.data.pricing.discountAmount = 0;\n state.data.pricing.discountCouponCode = '';\n state.data.discount = {\n couponCode: null,\n discountAmount: 0,\n amount: 0,\n discountType: null,\n discountedPercentage: 0,\n };\n }\n SessionStore.calculateTotal();\n\n state.data = { ...state.data };\n }\n\n static setCardTokenId(cardTokenId: string | null) {\n state.data.cardTokenId = cardTokenId || null;\n // Si se setea cardTokenId, limpiar cardId (exclusión mutua)\n if (cardTokenId) {\n state.data.cardId = null;\n }\n state.data = { ...state.data };\n }\n\n static changeLanguage(language: LOCALES_ENUM) {\n state.currentLocale = language;\n state.data.itemInformation.title = state._session?.getTitle() || '';\n state.data.itemInformation.description = state._session?.getDescription() || '';\n state.data = { ...state.data };\n }\n\n static setBillingAddress(address?: {\n address?: string;\n city?: string;\n state?: string;\n country?: string;\n zip?: string;\n addInformation?: string;\n }) {\n if (!state.data.userInformation.address) {\n state.data.userInformation.address = {};\n }\n if (!state.data.userInformation.address.billingAddress) {\n state.data.userInformation.address.billingAddress = {};\n }\n state.data.userInformation.address.billingAddress = {\n ...state.data.userInformation.address.billingAddress,\n ...address,\n };\n state.data = { ...state.data };\n }\n\n static setUserInformation(userInformation: {\n email?: string;\n fullName?: string;\n countryCode?: string;\n phoneNumber?: {\n number: string;\n countryCode: string;\n };\n documentType?: string;\n documentNumber?: string;\n address?: {\n billingAddress?: {\n address?: string;\n city?: string;\n state?: string;\n country?: string;\n zip?: string;\n addInformation?: string;\n };\n shippingAddress?: {\n address?: string;\n city?: string;\n state?: string;\n country?: string;\n zip?: string;\n addInformation?: string;\n };\n };\n }) {\n state.data.userInformation = { ...state.data.userInformation, ...userInformation };\n state.data = { ...state.data };\n }\n\n static setUserPhoneNumber(phoneNumber: { number: string; countryCode: string }) {\n state.data.userInformation.phoneNumber = phoneNumber;\n state.data = { ...state.data };\n }\n\n static setProviderKey(providerKey: string) {\n state.data.providerKey = providerKey;\n state.data = { ...state.data };\n }\n\n static setBankId(bankId: { code: string; name: string }) {\n state.data.bankId = bankId;\n state.data = { ...state.data };\n }\n\n static clearSession(): void {\n state._session = null;\n state.isInitialized = false;\n }\n\n static onChange(\n key: keyof SessionState,\n callback: (session: SessionState[keyof SessionState]) => void,\n ) {\n return onChange(key, callback);\n }\n\n static reset() {\n reset();\n }\n\n static calculateTotal() {\n state.data.pricing.total =\n state.data.pricing.subtotal -\n state.data.pricing.discountAmount +\n state.data.pricing.totalInterestInstallmentAmount;\n state.data.pricing.totalWithoutInstallment =\n state.data.pricing.subtotal - state.data.pricing.discountAmount;\n state.data = { ...state.data };\n }\n\n static setIsAvailableInstallments(isAvailableInstallments: boolean) {\n if (!isAvailableInstallments) {\n SessionStore.setSelectedInstallment(null);\n }\n state.data.cardInformation.installments.isAvailableInstallments = isAvailableInstallments;\n state.data = { ...state.data };\n }\n\n /**\n * Establece la cuota seleccionada\n */\n static setSelectedInstallment(installment: string | null): void {\n if (!installment) {\n state.data.cardInformation.installments.selectedInstallment = null;\n state.data.pricing.totalInterestInstallmentAmount = 0;\n state.data.pricing.installments = null;\n SessionStore.calculateTotal();\n state.data = { ...state.data };\n return;\n }\n const selectedInstallment = state.data.cardInformation.installments.installments.find(\n i => i.installment.toString() === installment.toString(),\n );\n if (selectedInstallment) {\n state.data.cardInformation.installments.selectedInstallment = selectedInstallment;\n state.data.pricing.installments = selectedInstallment.installment;\n state.data.pricing.totalInterestInstallmentAmount = selectedInstallment.cftAmount;\n }\n SessionStore.calculateTotal();\n state.data = { ...state.data };\n }\n\n static setCardInformation(cardInformation: {\n brand: string;\n type: string;\n isoCountry: string;\n bank: string;\n lastFour?: string;\n installments: {\n installments: {\n model: ENUM_INSTALLMENT_MODEL;\n cft: number;\n installment: number;\n totalAmount: number;\n installmentAmount: number;\n cftAmount: number;\n }[];\n };\n }) {\n if (cardInformation) {\n state.data.cardInformation = {\n ...cardInformation,\n installments: { ...state.data.cardInformation.installments },\n };\n SessionStore.setIsAvailableInstallments(!!cardInformation.installments?.installments?.length);\n if (state.data.pricing.installments) {\n SessionStore.setSelectedInstallment(state.data.pricing?.installments?.toString());\n }\n } else {\n state.data.cardInformation = null;\n state.data.pricing.installments = null;\n }\n state.data = { ...state.data };\n }\n\n static setCheckoutResponse(\n checkoutResponse: CreateCardCheckoutResponse | CreateAPMCheckoutResponse,\n ) {\n state.data.payment = checkoutResponse;\n state.data = { ...state.data };\n }\n\n static clearCheckoutResponse() {\n state.data.payment = null;\n state.data = { ...state.data };\n }\n\n static clearCustomerIdAndToken() {\n state.data.customerId = null;\n state.data.accessToken = null;\n state.data = { ...state.data };\n }\n\n static clearUserInformation() {\n state.data.userInformation = {\n email: undefined,\n fullName: undefined,\n countryCode: undefined,\n phoneNumber: undefined,\n documentType: undefined,\n documentNumber: undefined,\n address: undefined,\n language: undefined,\n };\n state.data = { ...state.data };\n }\n\n static setCardId(cardId: string | null) {\n state.data.cardId = cardId || null;\n // Si se setea cardId, limpiar cardTokenId (exclusión mutua)\n if (cardId) {\n state.data.cardTokenId = null;\n }\n state.data = { ...state.data };\n }\n\n static setSaveCard(saveCard: boolean) {\n state.saveCard = saveCard;\n state.data = { ...state.data };\n }\n\n static setCustomerId(customerId: string) {\n state.data.customerId = customerId;\n state.data = { ...state.data };\n }\n\n static setAccessToken(accessToken: string) {\n state.data.accessToken = accessToken;\n state.data = { ...state.data };\n }\n\n static setProvider(provider: PROVIDER_ENUM) {\n state.provider = provider;\n state.data = { ...state.data };\n }\n\n static setPayment(payment: Payment) {\n state.data.payment = payment;\n\n if (payment.customer.email != null) {\n state.data.userInformation.email = payment.customer.email;\n }\n\n if (payment.customer.firstName != null && payment.customer.lastName != null) {\n state.data.userInformation.fullName = `${payment.customer.firstName} ${payment.customer.lastName}`;\n }\n\n if (payment.customer.phoneNumbers && payment.customer.phoneNumbers.length > 0) {\n if (payment.customer.phoneNumbers[0].countryCode != null) {\n const dialCode = payment.customer.phoneNumbers[0].countryCode;\n const mappedCountryCode = mapDialCodeToCountryCode(dialCode);\n const countryCode = mappedCountryCode;\n state.data.userInformation.countryCode = countryCode;\n }\n state.data.userInformation.phoneNumber = {\n number: payment.customer.phoneNumbers[0].number,\n countryCode: payment.customer.phoneNumbers[0].countryCode,\n };\n }\n\n if (payment.amount != null) {\n state.data.pricing.total = payment.amount;\n }\n\n if (payment.installments != null) {\n state.data.pricing.installments = payment.installments;\n }\n\n if (payment.currency != null) {\n state.data.pricing.currency = payment.currency as CURRENCY_ENUM;\n }\n\n if (payment.status != null) {\n state.data.paymentStatus = payment.status as PaymentMessageE;\n }\n\n if (payment.metadata != null) {\n state.metadata = payment.metadata;\n }\n\n if (payment.createdAt != null) {\n state.data.paymentDate = payment.createdAt;\n state.createdAt = payment.createdAt;\n }\n\n if (payment.paymentMethodType != null) {\n state.data.paymentMethodSelected = payment.paymentMethodType;\n }\n if (payment.traceId != null) {\n state.data.paymentReference = payment.traceId;\n }\n\n // Extraer bankCode del externalPayment para precompletar el selector de banco\n if (payment.paymentMethodMetadata && 'bankCode' in payment.paymentMethodMetadata) {\n const bankMetadata = payment.paymentMethodMetadata as BankTransferMetadata;\n if (bankMetadata.bankCode && bankMetadata.bankName) {\n SessionStore.setBankId({\n code: bankMetadata.bankCode,\n name: bankMetadata.bankName,\n });\n }\n }\n\n state.data = { ...state.data };\n }\n static setPaymentStatus(paymentStatus: PaymentMessageE) {\n state.data.paymentStatus = paymentStatus;\n state.data = { ...state.data };\n }\n\n static setPaymentMethodSelected(paymentMethod: PAYMENT_METHOD_ENUM) {\n state.data.paymentMethodSelected = paymentMethod;\n state.data = { ...state.data };\n }\n static setFetchingInstallments(fetchingInstallments: boolean) {\n state.data.fetchingInstallments = fetchingInstallments;\n state.data = { ...state.data };\n }\n\n static setCardMode(cardMode: 'input' | 'select' | null) {\n state.cardMode = cardMode;\n state.data = { ...state.data };\n }\n\n static setSessionRefreshed(value: boolean) {\n state.sessionRefreshed = value;\n }\n}\n// Exportar el estado para uso en componentes\nexport { state as sessionState };\n","export const enTranslation = {\n common: {\n welcome: 'Welcome 123',\n hello: 'Hello',\n loading: 'Loading...',\n error: 'An error occurred',\n success: 'Success',\n loadingOptions: 'Loading options...',\n },\n session: {\n refreshedTitle: 'Session updated',\n refreshedMessage:\n 'Your session expired and has been refreshed. You can continue with your purchase.',\n },\n search: {\n searchCountries: 'Search for country...',\n searchBanks: 'Search for bank...',\n searchOptions: 'Search for options...',\n searchAddresses: 'Search for address...',\n searchStates: 'Search for state...',\n },\n buttons: {\n submit: 'Submit',\n cancel: 'Cancel',\n save: 'Save',\n delete: 'Delete',\n payNow: 'Pay now',\n continue: 'Continue',\n continueWithPaymentMethod: 'Continue with {{paymentMethod}}',\n renewSubscription: 'Renew subscription',\n updateCard: 'Update card',\n subscribe: 'Subscribe',\n secureEncrypted: 'Secure and encrypted',\n startTrial: 'Start free trial for {{trialDays}} days',\n redirecting: 'Redirecting in {{seconds}} seconds',\n },\n paymentMethods: {\n card: 'Card',\n cardDescription: 'Credit or debit card',\n saveCard: 'Save my card',\n cash: 'Cash',\n cashDescription: 'Cash in branch',\n bank_transfer: 'Bank transfer',\n bank_transfer_qr: 'QR transfer',\n transferDescription: 'Bank transfer',\n errorTitle: 'Payment rejected',\n },\n paymentErrors: {\n //Message generic for card\n genericErrorCard:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n\n //Message generic for APM\n genericErrorMessagePIX: 'Please try again in a few minutes or with another payment method.',\n genericErrorMessageQR: 'Please try again in a few minutes or with another payment method.',\n genericErrorMessagePSE: 'Please try again in a few minutes or with another payment method.',\n genericErrorMessageBankTransfer:\n 'Please try again in a few minutes or with another payment method.',\n genericErrorMessage: 'Please try again in a few minutes or with another payment method.',\n\n //Title generic for card\n genericErrorTitleCard: 'Payment rejected',\n\n //Title generic for APM\n genericErrorTitlePIX: 'Could not generate your PIX code',\n genericErrorTitleQR: 'An error occurred while trying to generate the QR',\n genericErrorTitlePSE: 'An error occurred while redirecting to PSE',\n genericErrorTitleBankTransfer: 'Could not process your payment request',\n genericErrorTitle: 'Could not process your payment request',\n\n // Generic errors\n genericError:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n internalError:\n 'Your payment was not completed. Please try again in a few minutes or with another payment method.',\n providerError:\n 'Your payment was not completed. Please try again in a few minutes or with another payment method.',\n\n // Payment status errors\n pending: 'The payment is being processed.',\n approved: 'The payment was approved successfully.',\n rejected:\n 'The issuing entity did not authorize your payment. Please try again, or contact your financial institution to authorize the transaction.',\n declined: 'The payment was declined.',\n error: 'An error occurred during payment processing.',\n refunded: 'The payment has been refunded.',\n cancelled: 'The payment has been cancelled.',\n partiallyRefunded: 'The payment has been partially refunded.',\n expired: 'The payment has expired.',\n genericReject:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n invalidCardNumber:\n 'Invalid card data. Please validate the data and try again or try with another payment method',\n insufficientFunds:\n 'Payment rejected due to insufficient funds. Try again with another card with available funds or with another payment method.',\n invalidCardCvc:\n 'Invalid card data. Please validate the data and try again or try with another payment method',\n invalidCardExpirationDate:\n 'Invalid card data. Please validate the data and try again or try with another payment method',\n duplicatePayment:\n 'The duplicate payment error occurs when the same payment is processed more than once.',\n cardDisabled:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n cardTypeNotAllowed: 'Card type not supported. Please use another card type or payment method.',\n pinAttemptsExceeded:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n blacklistedCard:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n processingError:\n 'Payment rejected during processing. Please try again, use another card or payment method',\n speedLimitExceeded:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n APMMessageError: 'Please try again in a few minutes.',\n // Card errors\n invalidCard: 'The card is invalid.',\n invalidCardHolderName: 'The cardholder name is invalid.',\n invalidCardTokenizeCountry: 'The card cannot be processed in this country.',\n\n // Customer errors\n invalidCustomerEmail: 'The entered email is invalid. Please enter a valid email and try again.',\n invalidCustomerPhone: 'The entered phone is invalid. Please review the data and try again.',\n invalidCustomerBillingAddress:\n 'The entered address is invalid. Please review the data and try again.',\n invalidCustomerAddress: 'The entered address is invalid. Please review the data and try again.',\n invalidCustomerCity:\n 'The entered province or state is invalid. Please review the data and try again.',\n invalidCustomerState: 'The customer state/province is invalid.',\n invalidCustomerZip: 'The entered postal code is invalid. Please review the data and try again.',\n invalidCustomerCountry: 'The entered country is invalid. Please review the data and try again.',\n invalidCustomerDocument:\n 'The entered document is invalid. Please review the data and try again.',\n invalidCustomerDocumentNumber:\n 'The entered document number is invalid. Please review the data and try again.',\n invalidCustomerDocumentType:\n 'The entered document type is invalid. Please review the data and try again.',\n\n // Required fields errors\n requiredCustomerEmail: 'The email is mandatory data to process the payment.',\n requiredCustomerPhone:\n 'Your phone is mandatory data to process the payment. Please review the data and try again.',\n requiredCustomerBillingAddress:\n 'Your address is mandatory data to process the payment. Please review the data and try again.',\n requiredCustomerAddress:\n 'Your address is mandatory data to process the payment. Please enter a valid address and try again',\n requiredCustomerCity:\n 'The city is mandatory data to process the payment. Please enter it and try again.',\n requiredCustomerState:\n 'The province or state is mandatory data to process the payment. Please enter it and try again.',\n requiredCustomerZip:\n 'The postal code is mandatory data to process the payment. Please enter it and try again.',\n requiredCustomerCountry:\n 'The country is mandatory data to process the payment. Please enter it and try again.',\n requiredCustomerDocument:\n 'The document is mandatory data to process the payment. Please enter a valid document and try again.',\n requiredCustomerDocumentNumber:\n 'The document number is mandatory data to process the payment. Please enter a valid document number and try again.',\n requiredCustomerDocumentType:\n 'The document type is mandatory data to process the payment. Please enter a valid document type and try again.',\n\n // Checkout errors\n invalidCheckoutRequest: 'Payment attempt rejected. Please try again in a few minutes.',\n invalidSession:\n 'Your payment was not completed. The session has expired. Reload the page and try again.',\n unavailablePaymentMethod:\n 'Payment method not available. Please try again with another payment method.',\n invalidAmount:\n 'Payment rejected due to invalid amount. Please contact the merchant to modify the amount and try again',\n invalidCurrency: 'The entered currency is invalid. Please review the data and try again.',\n invalidCountry: 'The entered country is invalid. Please review the data and try again.',\n maxAttempts:\n 'Payment rejected for exceeding the attempt limit. Please try again with another payment method.',\n paymentExpired:\n 'The payment attempt has expired. Please generate a new payment attempt to complete your payment',\n\n // Checkout with APM errors\n invalidCheckoutPaymentMethod:\n 'Invalid payment method. Please try again with another available payment method',\n // Additional error messages\n addressVerificationFailed:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n cardLimitExceeded:\n 'Card spending limit exceeded. Please try again with another card or payment method.',\n restrictedCard: 'Restricted card. Indicate to the user to use another card.',\n issuerUnavailable: 'Payment rejected by the issuing entity. Indicate to the user to try later.',\n invalidInstallmentPlan:\n 'Invalid installment plan. Indicate to the user to select another installment option.',\n transactionNotAllowed:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n processorUnavailable:\n 'The issuing entity did not authorize your payment. Please try again in a few minutes or with another card or payment method.',\n APMError: 'We could not generate your payment request. ',\n APMErrorBankTransfer: 'We could not generate your payment request.',\n APMErrorGeneric: 'We could not process the payment.',\n // Checkout with card errors\n bankRejected:\n 'Payment rejected by the issuer. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n fraudHighRisk:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n callBankForAuthorize:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n blacklisted:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n expiredCard:\n 'Invalid card data. Please validate the data and try again or try with another payment method',\n\n // Additional error messages\n hardDecline:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n softDecline:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n humanDecline:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n internal:\n 'The issuing entity did not authorize your payment. Please try with another card or payment method, or contact your financial institution to authorize the transaction.',\n required3ds:\n 'It is necessary to complete the authentication of your bank to continue with the payment. Follow the verification instructions and try again.',\n // Sandbox errors\n sandboxError:\n 'Error in test environment. Please try again or check the environment configuration.',\n },\n summary: {\n totalAmount: 'Total amount',\n totalAmountToday: 'Total amount to pay today',\n trialPeriodDaysDetails_one: '{{trialDays}} day of free trial',\n trialPeriodDaysDetails_other: '{{trialDays}} days of free trial',\n totalAmountLastTrialPeriod: 'Total amount after the trial',\n free: 'FREE',\n subtotal: 'Subtotal',\n installments: 'Installments',\n installmentDescription: '{{installment}} x {{amount}} ',\n summary: 'Summary',\n details: 'Details',\n hour_one: 'hour',\n hour_other: '{{count}} hours',\n month_one: 'month',\n month_other: '{{count}} months',\n week_one: 'week',\n week_other: '{{count}} weeks',\n day_one: 'day',\n day_other: '{{count}} days',\n year_one: 'year',\n year_other: '{{count}} years',\n planFrequency: '{{frequency}}',\n planDiscountDescriptionWithDuration:\n 'Discount coupon applied of {{discount}} per {{duration}}.',\n planDiscountDescriptionWithoutDuration: 'Discount coupon applied of {{discount}}.',\n trialPill_one: '{{days}} day free after for',\n trialPill_other: '{{days}} days free after for',\n discount: 'Discount',\n },\n billingAddress: {\n title: 'Billing Address',\n addressPlaceholder: 'Address street',\n cityPlaceholder: 'City',\n zipPlaceholder: 'Zip code',\n countryPlaceholder: 'Select country',\n statePlaceholder: 'Select state',\n manualEntry: 'Enter address manually',\n searchPlaceholder: 'Search address',\n sameAsShipping: 'Same as shipping',\n searchStates: 'Search for state...',\n additionalInformation: 'Add additional information',\n addInformationPlaceholder: 'Department, floor (optional)',\n addInformationLabel: 'Additional information',\n },\n shippingAddress: {\n title: 'Shipping Address',\n addressPlaceholder: 'Address street',\n cityPlaceholder: 'City',\n zipPlaceholder: 'Zip code',\n countryPlaceholder: 'Select country',\n statePlaceholder: 'Select state',\n searchStates: 'Search for state...',\n manualEntry: 'Enter address manually',\n searchPlaceholder: 'Search address',\n additionalInformation: 'Add additional information',\n addInformationPlaceholder: 'Department, floor (optional)',\n addInformationLabel: 'Additional information',\n },\n bankSelector: {\n label: 'Select your bank',\n placeholder: 'Choose a bank',\n searchPlaceholder: 'Search for bank...',\n },\n userInformation: {\n personalInformation: 'Personal Information',\n emailPlaceholder: 'Email',\n fullNamePlaceholder: 'Full Name',\n countryCodePlaceholder: '+1',\n phoneNumberPlaceholder: 'Phone Number',\n phoneLabel: 'Contact Phone',\n rebillAccount: 'Continue with my Rebill account',\n otpPlaceholder: 'Verification code',\n greeting: 'Hello {{name}}!',\n signOut: 'Sign out',\n searchCountriesPlaceholder: 'Search for country...',\n emailCorrectionSuggestion: \"Didn't you mean to say {{email}}?\",\n suggestionsHeader: 'Suggestion',\n suggestionsLabel: 'Email suggestions',\n },\n footer: {\n poweredBy: 'Powered by',\n termsAndConditions: 'Terms & Conditions',\n },\n discountCoupons: {\n addDiscount: 'Add discount',\n apply: 'Apply',\n discount: 'Discount',\n error: 'Invalid coupon',\n },\n installments: {\n interest: '* The interests will be applied by your bank institution.',\n select: 'Select your installments',\n selectMexican: 'Select your installments',\n selectBrazilian: 'Select your installments',\n single: 'installment of',\n plural: 'installments of',\n singleMexican: 'installment of',\n pluralMexican: 'installments of',\n brazilian: 'x of',\n disabled: 'Payments in installments only with credit card',\n disabledMexican: 'Payments in installments only with credit card',\n disabledBrazilian: 'Payments in installments only with credit card',\n samePrice: 'Same price',\n },\n document: {\n typePlaceholder: 'Type',\n numberPlaceholder: 'Document number',\n },\n referenceCode: {\n title: 'Payment Reference',\n expirationLabel: 'You have {{time}} to pay.',\n referenceLabel: 'Reference Code',\n providerLabel: 'Store Name',\n instructionsLabel: 'See Instructions',\n instructionsTitle: 'Instructions',\n },\n qrCode: {\n title: 'QR Code',\n expirationLabel: 'You have {{time}} to pay.',\n scanInstruction: 'Scan the QR code with your bank app or virtual wallet.',\n instructionsLabel: 'See Instructions',\n instructionsTitle: 'Instructions',\n paymentMethod: 'Payment Method',\n provider: 'Provider',\n detailLabel: 'Product details:',\n nameLabel: 'Product name:',\n copyCode: 'Copy code',\n },\n apmCheckout: {\n paymentInformation: 'Payment Information',\n expirationDate: 'Expiration Date',\n instructions: 'Instructions',\n viewBranches: 'View Branches',\n download: 'Download',\n redirectMessage:\n 'You will be redirected to the {{paymentMethodName}} platform to complete your payment.',\n redirectMessagePrefix: 'You will be redirected to the',\n redirectMessageSuffix: 'platform to complete your payment.',\n accountNumber: 'Account Number',\n bankName: 'Bank',\n reference: 'Reference',\n bankTransferInstructions: 'Bank Transfer Instructions',\n // Bank transfer instructions\n step1Instruction:\n 'In the \"Pay\" menu, select the \"Services\" option and enter the following \"Agreement Number\".',\n step1Label: 'CIE Agreement Number:',\n step2Instruction: 'Enter the registration data to complete the operation.',\n step2Label: 'Reference:',\n // General bank transfer instructions\n generalInstruction:\n 'Go to the transfers and payments selection or payments to other banks and provide the transfer data.',\n dataLabel: 'Transfer Data',\n destinationBank: 'Destination Bank:',\n clabe: 'CLABE:',\n paymentReference: 'Payment Reference:',\n nameSurname: 'Beneficiary:',\n viewInstructions: 'View Instructions',\n paymentTransferSystem: 'Payment Transfer System',\n },\n bankTransfer: {\n transferData: 'Transfer data',\n step1Instruction: \"Open your bank's app or online banking.\",\n step1Label: 'CIE Agreement Number:',\n step2Instruction: 'Go to the option to make payments or transfers.',\n step2Label: 'Reference:',\n step3Instruction:\n \"If it's a new account, add it and enter the beneficiary information and CLABE number.\",\n step4Instruction:\n 'Copy and paste the beneficiary details, amount, and payment reference shown on your screen.',\n step5Instruction: 'Review the transfer details and complete the payment.',\n step6Instruction: 'Save or share your payment receipt.',\n },\n downloadTemplate: {\n title: 'Payment Instructions - {{paymentMethod}}',\n totalAmount: 'Total Amount',\n paymentCode: 'Payment Code',\n tellCashierData: 'Tell the cashier this information',\n expirationText: 'You have time to pay until {{date}}',\n merchantName: 'Store Name:',\n concept: 'Concept:',\n instructions: 'Instructions',\n fallbackProductTitle: 'Product Name',\n fallbackProductDescription: 'Product Details',\n },\n validation: {\n emailInvalid: 'The email address is not valid',\n emailRequired: 'The email address is required',\n fullNameRequired: 'The full name is required',\n fullNameInvalid: 'The full name is not valid',\n countryRequired: 'The country is required',\n stateRequired: 'The state is required',\n addressRequired: 'The address is required',\n cityRequired: 'The city is required',\n zipRequired: 'The zip code is required',\n bankRequired: 'You must select a bank',\n phoneRequired: 'Phone number is required',\n phoneInvalid: 'Please enter a valid phone number',\n installmentsRequired: 'You must select a number of installments',\n phoneNumberInvalid: 'The phone number is not valid',\n cardInvalid: 'Card is required',\n cardInvalidDescription: 'Please complete the card information',\n documentTypeRequired: 'The document type is required',\n documentNumberRequired: 'The document number is required',\n documentInvalid: 'The document number is not valid',\n documentNumberNumericOnly: 'Enter only numbers (no dots or dashes).',\n tokenError: 'Internal error',\n tokenErrorDescription: 'We had a problem, please try again later.',\n },\n processing: {\n securityText: 'Secure and encrypted',\n processingTitle: 'The payment is being processed',\n processingSubtitle: 'Please do not close the window',\n successTitle: 'Payment successful!',\n redirectMessage: 'You will be redirected in',\n download: 'Download receipt',\n downloadDescription: 'We sent the receipt to your email.',\n paymentDetails: 'Payment details',\n paymentMethod: 'Payment method',\n paymentDate: 'Date',\n paymentEmail: 'Email',\n paymentReference: 'Reference number',\n purchaseDetails: 'Purchase details',\n purchaseDetail: 'Detail',\n purchaseSubtotal: 'Subtotal',\n purchaseTotal: 'Total',\n purchaseMontoTotal: 'Total amount',\n nextCharge: 'Next charge',\n atEndOfTrial: 'At the end of your trial',\n onDayOfMonth: 'On day {{day}} of each month',\n perMonth: 'per month',\n onDate: 'On {{date}}',\n trialPill_one: '{{days}} day free',\n trialPill_other: '{{days}} days free',\n },\n renewal: {\n title: 'Renew subscription',\n renewalAmount: 'Total amount',\n subscriptionDetails: 'Details',\n nextRenewal: 'Next renewal',\n totalToRenew: 'Total',\n subtotal: 'Subtotal',\n loading: 'Loading...',\n monthly: 'month',\n yearly: 'year',\n weekly: 'week',\n paymentMethodAlert:\n 'This month you can pay with another payment method, but the next charge will be to your card ending in {{cardLastFour}}.',\n },\n changeCard: {\n title: 'Request card change',\n successTitle: 'Card updated successfully!',\n successDescription:\n 'We will use your updated card ending in {{cardLastFour}} for the next charges.',\n paymentMethod: 'Payment method',\n paymentDate: 'Date',\n customerEmail: 'Email',\n defaultBrand: 'Card',\n defaultEmail: '-',\n processingTitle: 'Saving your card',\n processingSubtitle: 'Please wait a moment while we update your subscription details.',\n errorTitle: 'Invalid card',\n errorDescription: 'Try again with another card.',\n },\n sandbox: {\n testMode: 'Test mode',\n cards: 'Cards',\n docs: 'Read the documentation',\n completeMyAccountRegistration: 'Complete my account registration',\n successPayment: 'Success payment',\n cardNumber: 'Card number',\n expiryDate: 'Expiry date',\n cvv: 'CVV',\n rejectedPayment: 'Rejected payment',\n exp: 'Exp.',\n cardTest: 'Card test',\n },\n otp: {\n sessionSecurity: 'Session security',\n email: 'Email',\n notYou: 'Not you?',\n description: 'Enter the code of',\n descriptionDigits: '6 digits',\n descriptionEmail: 'we sent to',\n change: 'change',\n resendCode: 'Resend code',\n resendCodeIn: 'Resend code in',\n codeResent: 'We resent the code to your email.',\n infoTitle: 'It may take a few seconds.',\n infoMessage: 'Check your spam or promotions folder.',\n continueAsGuest: 'Continue as guest',\n secureMessage: 'Secure and encrypted',\n verifyingCode: 'Verifying code',\n error: 'Invalid code',\n },\n timeline: {\n dayOne: 'Day 1 - Today',\n startTrial_one: 'Start your free trial for {{trialDays}} day.',\n startTrial_other: 'Start your free trial for {{trialDays}} days.',\n reminder: 'Day {{day}} - Reminder',\n lastDaysReminder: 'Last {{days}} days of free trial.',\n lastDay: 'Day {{day}} - Last day',\n subscriptionStart: 'Your subscription starts for {{amount}}',\n subscriptionRenewal: 'Subscription renewal',\n renewalAmount: 'Subscription renewal for {{amount}}/month',\n today: 'Today',\n chargeFullToday: 'We will make the first charge for your subscription {{amount}}',\n firstCharge: 'First charge',\n firstChargeDescription: '{{amount}} will be charged on {{day}} of {{month}}',\n after: 'After',\n recurringCharge: 'On the {{day}} of each month it will automatically renew for {{amount}}',\n proratedCharge: 'Proportional charge of {{amount}} until {{day}} of the month.',\n },\n} as const;\n","export const esTranslation = {\n common: {\n welcome: 'Bienvenido',\n hello: 'Hola',\n loading: 'Cargando...',\n error: 'Ocurrió un error',\n success: 'Éxito',\n loadingOptions: 'Cargando opciones...',\n },\n session: {\n refreshedTitle: 'Sesión actualizada',\n refreshedMessage: 'Tu sesión expiró y fue actualizada. Puedes continuar con tu compra.',\n },\n search: {\n searchCountries: 'Buscar país...',\n searchBanks: 'Buscar banco...',\n searchOptions: 'Buscar opcion...',\n searchAddresses: 'Buscar direccion...',\n searchStates: 'Buscar estado...',\n },\n buttons: {\n submit: 'Enviar',\n cancel: 'Cancelar',\n save: 'Guardar',\n delete: 'Eliminar',\n payNow: 'Pagar ahora',\n continue: 'Continuar',\n continueWithPaymentMethod: 'Continuar con {{paymentMethod}}',\n renewSubscription: 'Renovar suscripción',\n updateCard: 'Actualizar tarjeta',\n subscribe: 'Suscribirse',\n secureEncrypted: 'Seguro y encriptado',\n startTrial: 'Iniciar prueba de {{trialDays}} días gratis',\n redirecting: 'Redirigiendo en {{seconds}} segundos',\n },\n paymentMethods: {\n card: 'Tarjeta',\n cardDescription: 'Tarjeta de crédito o débito',\n saveCard: 'Guardar mi tarjeta',\n cash: 'Efectivo',\n cashDescription: 'Efectivo en sucursal',\n bank_transfer: 'Transferencia bancaria',\n bank_transfer_qr: 'Transferencia por QR',\n transferDescription: 'Transferencia bancaria',\n errorTitle: 'Pago rechazado',\n },\n paymentErrors: {\n //Message generic for card\n genericErrorCard:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n\n //Message generic for APM\n genericErrorMessagePIX: 'Inténtalo nuevamente en unos minutos o con otro método de pago.',\n genericErrorMessageQR: 'Inténtalo nuevamente en unos minutos o con otro método de pago.',\n genericErrorMessagePSE: 'Inténtalo nuevamente en unos minutos o con otro método de pago.',\n genericErrorMessageBankTransfer:\n 'Inténtalo nuevamente en unos minutos o con otro método de pago.',\n genericErrorMessage: 'Inténtalo nuevamente en unos minutos o con otro método de pago.',\n\n //Title generic for card\n genericErrorTitleCard: 'Pago rechazado',\n\n //Title generic for APM\n genericErrorTitlePIX: 'No fue posible generar su codigo PIX',\n genericErrorTitleQR: 'Se genero un error al intentar generar el QR',\n genericErrorTitlePSE: 'Se genero un error al direccionar a PSE',\n genericErrorTitleBankTransfer: 'Pago rechazado',\n genericErrorTitle: 'No fue posible procesar la solicitud de pago',\n\n // Generic errors\n genericError:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n internalError:\n 'Tu pago no se completó. Inténtalo nuevamente en unos minutos o con otro método de pago.',\n providerError:\n 'Tu pago no se completó. Inténtalo nuevamente en unos minutos o con otro método de pago.',\n\n // Payment status errors\n pending: 'El pago está siendo procesado.',\n approved: 'El pago fue aprobado exitosamente.',\n rejected:\n 'La entidad emisora no autorizó tu pago. Por favor intenta nuevamente, o contacta a tu institución financiera para autorizar la transacción.',\n declined: 'El pago fue rechazado.',\n error: 'Ha ocurrido un error durante el procesamiento del pago.',\n refunded: 'El pago ha sido reembolsado.',\n cancelled: 'El pago ha sido cancelado.',\n partiallyRefunded: 'El pago ha sido parcialmente reembolsado.',\n expired: 'El pago ha expirado.',\n genericReject:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n invalidCardNumber:\n 'Datos de tarjeta inválidos. Por favor valida los datos e intenta nuevamente o intenta con otro método de pago',\n insufficientFunds:\n 'Pago rechazado por fondos insuficientes. Intenta nuevamente con otra tarjeta con disponibilidad de fondos u con otro método de pago.',\n invalidCardCvc:\n 'Datos de tarjeta inválidos. Por favor valida los datos e intenta nuevamente o intenta con otro método de pago',\n invalidCardExpirationDate:\n 'Datos de tarjeta inválidos. Por favor valida los datos e intenta nuevamente o intenta con otro método de pago',\n duplicatePayment:\n 'El error de pago duplicado ocurre cuando el mismo pago es procesado más de una vez.',\n cardDisabled:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n cardTypeNotAllowed:\n 'Tipo de tarjeta no soportada. Por favor usa otro tipo de tarjeta o medio de pago.',\n pinAttemptsExceeded:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n blacklisted:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n processingError:\n 'Pago rechazado durante el procesamiento. Por favor intenta nuevamente, usar otra tarjeta o medio de pago',\n speedLimitExceeded:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n\n // Card errors\n invalidCard:\n 'Datos de tarjeta inválidos. Por favor valida los datos e intenta nuevamente o intenta con otro método de pago.',\n invalidCardHolderName:\n 'El país de emisión de la tarjeta no es compatible. Por favor intenta con otra tarjeta o método de pago.',\n invalidCardTokenizeCountry: 'La tarjeta no puede ser procesada en este país.',\n\n // Customer errors\n invalidCustomerEmail:\n 'El email ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerPhone:\n 'El teléfono ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerBillingAddress:\n 'La dirección ingresada es inválida. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerAddress:\n 'La direccion ingresada es inválida. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerCity:\n 'La provincia o estado ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerState: 'El estado/provincia del cliente es inválido.',\n invalidCustomerZip:\n 'El código postal ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerCountry:\n 'El país ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerDocument:\n 'El documento ingresado es inválido. Por favor revisa el dato e intenta nuevamente..',\n invalidCustomerDocumentNumber:\n 'El número de documento ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n invalidCustomerDocumentType:\n 'El tipo de documento ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n\n // Required fields errors\n requiredCustomerEmail:\n 'El correo electrónico es un dato obligatorio para procesar el pago. Por favor revisa el dato e intenta nuevamente.',\n requiredCustomerPhone:\n 'Tu teléfono es un dato obligatorio para procesar el pago. Por favor revisa el dato e intenta nuevamente.',\n requiredCustomerBillingAddress:\n 'Tu dirección es un dato obligatorio para procesar el pago. Por favor revisa el dato e intenta nuevamente.',\n requiredCustomerAddress:\n 'Tu dirección es un dato obligatorio para procesar el pago. Por favor ingresa una direccion válida e intenta nuevamente',\n requiredCustomerCity:\n 'La ciudad es un dato obligatorio para procesar el pago. Por favor ingrésala e intenta nuevamente.',\n requiredCustomerState:\n 'La provincia o estado es un dato obligatorio para procesar el pago. Por favor ingrésala e intenta nuevamente.',\n requiredCustomerZip:\n 'El código postal es un dato obligatorio para procesar el pago. Por favor ingrésalo e intenta nuevamente.',\n requiredCustomerCountry:\n 'El país es un dato obligatorio para procesar el pago. Por favor ingrésalo e intenta nuevamente.',\n requiredCustomerDocument:\n 'El documento es un dato obligatorio para procesar el pago. Por favor ingresa un documento válido e intenta nuevamente.',\n requiredCustomerDocumentNumber:\n 'El número de documento es un dato obligatorio para procesar el pago. Por favor ingresa un número de documento válido e intenta nuevamente.',\n requiredCustomerDocumentType:\n 'El tipo de documento es un dato obligatorio para procesar el pago. Por favor ingresa un tipo de documento válido e intenta nuevamente.',\n\n // Checkout errors\n invalidCheckoutRequest:\n 'Intento de pago rechazado. Por favor intenta nuevamente en unos minutos.',\n invalidSession:\n 'Tu pago no se completó. La sesión ha expirado. Recarga la página y vuelve a intentarlo.',\n unavailablePaymentMethod:\n 'Método de pago no disponible. Por favor intenta nuevamente con otro método de pago.',\n\n invalidCurrency:\n 'La moneda ingresada es inválida. Por favor revisa el dato e intenta nuevamente.',\n invalidCountry: 'El país ingresado es inválido. Por favor revisa el dato e intenta nuevamente.',\n maxAttempts:\n 'Pago rechazado por superar el límite de intentos. Por favor intenta nuevamente con otro método de pago.',\n paymentExpired:\n 'El intento de pago ha expirado. Por favor genera un nuevo intento de pago para completar tu pago',\n\n // Checkout with APM errors\n invalidCheckoutPaymentMethod:\n 'Metodo de pago invalido. Por favor intenta nuevamente con otra forma de pago disponible',\n // Additional error messages\n\n addressVerificationFailed:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n cardLimitExceeded:\n 'Se superó el límite de consumo de la tarjeta. Por favor intenta nuevamente con otra tarjeta u otro método de pago.',\n\n restrictedCard: 'Tarjeta restringida. Indica al usuario usar otra tarjeta.',\n issuerUnavailable: 'Pago rechazado la entidad emisora. Indica al usuario intentar más tarde.',\n invalidInstallmentPlan:\n 'Plan de cuotas inválido. Indica al usuario seleccionar otra opción de cuotas.',\n transactionNotAllowed:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n processorUnavailable:\n 'La entidad emisora no autorizó tu pago. Por favor intenta nuevamente en unos minutos o con otra tarjeta u otro método de pago.',\n APMError: 'No pudimos generar tu solicitud de pago. ',\n APMErrorBankTransfer: 'No pudimos generar tu solicitud de pago.',\n APMErrorGeneric: 'No fue posible procesar el pago.',\n APMMessageError: 'Intento de pago rechazado. Por favor intenta nuevamente en unos minutos.',\n\n // Checkout with card errors\n bankRejected:\n 'Pago rechazado por el emisor. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n fraudHighRisk:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n callBankForAuthorize:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n expiredCard:\n 'Datos de tarjeta inválidos. Por favor valida los datos e intenta nuevamente o intenta con otro método de pago',\n\n // Additional error messages\n hardDecline:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n softDecline:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n humanDecline:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n internal:\n 'La entidad emisora no autorizó tu pago. Por favor intenta con otra tarjeta u otro método de pago, o contacta a tu institución financiera para autorizar la transacción.',\n required3ds:\n 'Es necesario completar la autenticación de tu banco para continuar con el pago. Sigue las instrucciones de verificación y vuelve a intentarlo.',\n // Sandbox errors\n sandboxError:\n 'Error en entorno de pruebas. Por favor intenta nuevamente o revisa la configuración del entorno.',\n },\n summary: {\n totalAmount: 'Monto total',\n totalAmountToday: 'Total a pagar hoy',\n totalAmountLastTrialPeriod: 'Monto total despues de la prueba',\n trialPeriodDaysDetails_one: '{{trialDays}} día de prueba gratuita',\n trialPeriodDaysDetails_other: '{{trialDays}} días de prueba gratuita',\n free: 'GRATIS',\n subtotal: 'Subtotal',\n installments: 'Cuotas',\n installmentDescription: '{{installment}} x {{amount}}',\n summary: 'Resumen',\n details: 'Detalles',\n hour_one: 'hora',\n hour_other: '{{count}} horas',\n month_one: 'mes',\n month_other: '{{count}} meses',\n week_one: 'semana',\n week_other: '{{count}} semanas',\n day_one: 'día',\n day_other: '{{count}} días',\n year_one: 'año',\n year_other: '{{count}} años',\n planFrequency: '{{frequency}}',\n planDiscountDescriptionWithDuration: 'Descuento {{discount}} aplicado por {{duration}}.',\n planDiscountDescriptionWithoutDuration: 'Descuento {{discount}} aplicado.',\n trialPill_one: '{{days}} día gratis después por',\n trialPill_other: '{{days}} días gratis después por',\n discount: 'Descuento',\n },\n billingAddress: {\n title: 'Dirección de Facturación',\n addressPlaceholder: 'Dirección',\n cityPlaceholder: 'Ciudad',\n zipPlaceholder: 'Código postal',\n countryPlaceholder: 'Seleccionar país',\n statePlaceholder: 'Seleccionar estado',\n manualEntry: 'Ingresar dirección manualmente',\n searchPlaceholder: 'Buscar dirección',\n searchStates: 'Buscar estado...',\n sameAsShipping: 'Igual que envío',\n additionalInformation: '+ Agregar información adicional',\n addInformationPlaceholder: 'Departamento, piso (opcional)',\n addInformationLabel: 'Información adicional',\n },\n shippingAddress: {\n title: 'Dirección de Envío',\n addressPlaceholder: 'Dirección',\n cityPlaceholder: 'Ciudad',\n zipPlaceholder: 'Código postal',\n countryPlaceholder: 'Seleccionar país',\n statePlaceholder: 'Seleccionar estado',\n manualEntry: 'Ingresar dirección manualmente',\n searchStates: 'Buscar estado...',\n searchPlaceholder: 'Buscar dirección',\n additionalInformation: '+ Agregar información adicional',\n addInformationPlaceholder: 'Departamento, piso (opcional)',\n addInformationLabel: 'Información adicional',\n },\n bankSelector: {\n label: 'Selecciona tu banco',\n placeholder: 'Elige un banco',\n searchPlaceholder: 'Buscar banco...',\n },\n userInformation: {\n personalInformation: 'Información personal',\n emailPlaceholder: 'Correo electrónico',\n fullNamePlaceholder: 'Nombre completo',\n countryCodePlaceholder: '+1',\n phoneNumberPlaceholder: 'Número de teléfono',\n phoneLabel: 'Teléfono de contacto',\n rebillAccount: 'Continuar con mi cuenta de Rebill',\n otpPlaceholder: 'Código de verificación',\n greeting: 'Hola {{name}}!',\n signOut: 'Cerrar sesión',\n searchCountriesPlaceholder: 'Buscar país...',\n emailCorrectionSuggestion: '¿Quisiste decir {{email}}?',\n suggestionsHeader: 'Sugerencia',\n suggestionsLabel: 'Sugerencias de correo electrónico',\n },\n footer: {\n poweredBy: 'Desarrollado por',\n termsAndConditions: 'Términos y condiciones',\n },\n discountCoupons: {\n addDiscount: 'Agregar descuento',\n apply: 'Aplicar',\n discount: 'Descuento',\n error: 'Cupón inválido',\n },\n installments: {\n interest: '* Los intereses serán aplicados por tu entidad bancaria.',\n select: 'Selecciona tus cuotas',\n selectMexican: 'Selecciona tus mensualidades',\n selectBrazilian: 'Selecciona tus cuotas',\n single: 'cuota de',\n plural: 'cuotas de',\n singleMexican: 'mensualidad de',\n pluralMexican: 'mensualidades de',\n brazilian: 'x de',\n disabled: 'Pagos en cuotas solo con tarjeta de crédito',\n disabledMexican: 'Pagos en mensualidades solo con tarjeta de crédito',\n disabledBrazilian: 'Pagos en cuotas solo con tarjeta de crédito',\n samePrice: 'Mismo precio',\n },\n document: {\n typePlaceholder: 'Tipo',\n numberPlaceholder: 'Número de identificación',\n },\n referenceCode: {\n title: 'Referencia de Pago',\n expirationLabel: 'Tienes {{time}} para pagar.',\n referenceLabel: 'Código de referencia',\n providerLabel: 'Nombre del comercio',\n instructionsLabel: 'Ver Instrucciones',\n instructionsTitle: 'Instrucciones',\n },\n qrCode: {\n title: 'Código QR',\n expirationLabel: 'Tienes {{time}} para pagar.',\n scanInstruction: 'Escaneá el código QR con tu app bancaria o billetera virtual.',\n instructionsLabel: 'Ver Instrucciones',\n instructionsTitle: '¿Cómo pagar?',\n paymentMethod: 'Método de Pago',\n provider: 'Proveedor',\n detailLabel: 'Detalle del producto:',\n nameLabel: 'Nombre del producto:',\n copyCode: 'Copiar código',\n },\n apmCheckout: {\n paymentInformation: 'Información de Pago',\n expirationDate: 'Fecha de Vencimiento',\n instructions: 'Instrucciones',\n viewBranches: 'Ver sucursales',\n download: 'Descargar',\n redirectMessage:\n 'Serás dirigido a la plataforma de {{paymentMethodName}} para completar tu pago.',\n redirectMessagePrefix: 'Serás dirigido a la plataforma de',\n redirectMessageSuffix: 'para completar tu pago.',\n accountNumber: 'Número de cuenta',\n bankName: 'Banco',\n reference: 'Referencia',\n bankTransferInstructions: 'Instrucciones de transferencia bancaria',\n // Instrucciones para transferencia bancaria\n step1Instruction:\n 'En el menú «Pagar», seleccione la opción «De servicios» e introduzca el siguiente «Número de convenio».',\n step1Label: 'Número de convenio CIE:',\n step2Instruction: 'Ingrese los datos de registro para concluir con la operación.',\n step2Label: 'Referencia:',\n // Instrucciones generales para transferencia bancaria\n generalInstruction:\n 'Ingresa a la selección de transferencias y pagos o pagos a otros bancos y proporciona los datos de transferencia.',\n dataLabel: 'Datos',\n destinationBank: 'Banco de destino:',\n clabe: 'CLABE:',\n paymentReference: 'Referencia de pago:',\n nameSurname: 'Beneficiario:',\n viewInstructions: 'Ver Instrucciones',\n paymentTransferSystem: 'Sistema de Transferencia de Pagos',\n },\n bankTransfer: {\n transferData: 'Datos de transferencia',\n step1Instruction: 'Abre la aplicación o banca en línea de tu banco.',\n step1Label: 'Número de convenio CIE:',\n step2Instruction: 'Ve a la opción de realizar pagos o transferencias.',\n step2Label: 'Referencia:',\n step3Instruction:\n 'Si es una cuenta nueva, agrégala y captura la información del beneficiario y la CLABE.',\n step4Instruction: 'Copia y pega los datos del beneficiario, el monto y la referencia de pago.',\n step5Instruction: 'Confirma los detalles de la transferencia y completa el pago.',\n step6Instruction: 'Guarda o comparte tu comprobante de pago.',\n },\n downloadTemplate: {\n title: 'Instrucciones de Pago - {{paymentMethod}}',\n totalAmount: 'Monto total',\n paymentCode: 'Código de pago',\n tellCashierData: 'Dictale estos datos al cajero',\n expirationText: 'Tienes tiempo para pagar hasta el {{date}}',\n merchantName: 'Nombre del comercio:',\n concept: 'Concepto:',\n instructions: 'Instrucciones',\n fallbackProductTitle: 'Nombre del producto',\n fallbackProductDescription: 'Detalle del producto',\n },\n validation: {\n emailInvalid: 'El correo electrónico no es válido',\n emailRequired: 'El correo electrónico es requerido',\n fullNameRequired: 'El nombre es requerido',\n fullNameInvalid: 'El nombre no es válido',\n countryRequired: 'El país es requerido',\n stateRequired: 'El estado es requerido',\n addressRequired: 'La dirección es requerida',\n cityRequired: 'La ciudad es requerida',\n zipRequired: 'El código postal es requerido',\n bankRequired: 'Debe seleccionar un banco',\n phoneRequired: 'El número de teléfono es requerido',\n phoneInvalid: 'Por favor ingrese un número de teléfono válido',\n installmentsRequired: 'Debe seleccionar un número de cuotas',\n phoneNumberInvalid: 'El número de teléfono no es válido',\n cardInvalid: 'Tarjeta inválida',\n cardInvalidDescription: 'Por favor, complete los datos de la tarjeta',\n documentTypeRequired: 'El tipo de documento es requerido',\n documentNumberRequired: 'El número de documento es requerido',\n documentInvalid: 'El número de documento no es válido',\n documentNumberNumericOnly: 'Ingresa solo números (sin puntos ni guiones).',\n tokenError: 'Error interno',\n tokenErrorDescription: 'Tuvimos un inconveniente, por favor intente mas tarde.',\n },\n processing: {\n securityText: 'Seguro y encriptado',\n processingTitle: 'El pago se está procesando',\n processingSubtitle: 'Por favor no cierre la ventana',\n successTitle: 'Pago exitoso!',\n redirectMessage: 'Serás redirigido en',\n download: 'Descargar comprobante',\n downloadDescription: 'Le enviamos el recibo a su email.',\n paymentDetails: 'Detalles de la compra',\n paymentMethod: 'Método de pago',\n paymentDate: 'Fecha',\n paymentEmail: 'Correo electrónico',\n paymentReference: 'Número de referencia',\n purchaseDetails: 'Detalles de la compra',\n purchaseDetail: 'Detalle',\n purchaseSubtotal: 'Subtotal',\n purchaseTotal: 'Total',\n purchaseMontoTotal: 'Monto total',\n nextCharge: 'Próximo cobro',\n atEndOfTrial: 'Al finalizar tu prueba',\n onDayOfMonth: 'El día {{day}} de cada mes',\n perMonth: 'por mes',\n onDate: 'El {{date}}',\n trialPill_one: '{{days}} día gratis',\n trialPill_other: '{{days}} días gratis',\n },\n renewal: {\n title: 'Renovar suscripción',\n renewalAmount: 'Monto total',\n subscriptionDetails: 'Detalles',\n nextRenewal: 'Próxima renovación',\n totalToRenew: 'Total',\n subtotal: 'Subtotal',\n loading: 'Cargando...',\n month: 'mes',\n year: 'año',\n week: 'semana',\n paymentMethodAlert:\n 'Este mes puedes pagar con otro método de pago, pero el próximo cargo será a tu tarjeta que termina en {{cardLastFour}}.',\n },\n changeCard: {\n title: 'Solicitud de cambio de tarjeta',\n successTitle: '¡Tarjeta actualizada exitosamente!',\n successDescription:\n 'Usaremos tu nueva tarjeta terminada en {{cardLastFour}} para los próximos cobros.',\n paymentMethod: 'Método de pago',\n paymentDate: 'Fecha',\n customerEmail: 'Correo electrónico',\n defaultBrand: 'Tarjeta',\n defaultEmail: '-',\n processingTitle: 'Guardando tu tarjeta',\n processingSubtitle: 'Estamos actualizando tu suscripción, esto tomará unos segundos.',\n errorTitle: 'Tarjeta inválida',\n errorDescription: 'Puedes intentar con otra tarjeta.',\n },\n sandbox: {\n testMode: 'Modo de prueba',\n cards: 'Tarjetas',\n docs: 'Leer la documentación',\n completeMyAccountRegistration: 'Completar registro de cuenta',\n successPayment: 'Pago exitoso',\n cardNumber: 'Número de tarjeta',\n expiryDate: 'Fecha de vencimiento',\n exp: 'Exp.',\n cvv: 'CVV',\n rejectedPayment: 'Pago rechazado',\n cardTest: 'Tarjetas de prueba',\n },\n otp: {\n description: 'Ingresa el código de',\n descriptionDigits: '6 dígitos',\n descriptionEmail: 'que te enviamos a',\n change: 'cambiar',\n resendCode: 'Reenviar código',\n resendCodeIn: 'Reenviar código en',\n codeResent: 'Te reenviamos el código a tu email.',\n infoTitle: 'Puede tardar unos segundos.',\n infoMessage: 'Revisa tu casilla de spam o promociones.',\n continueAsGuest: 'Continuar como invitado',\n secureMessage: 'Seguro y encriptado',\n verifyingCode: 'Verificando código',\n error: 'Código inválido',\n },\n timeline: {\n dayOne: 'Día 1 - Hoy',\n startTrial_one: 'Comienza tu prueba gratis por {{trialDays}} día.',\n startTrial_other: 'Comienza tu prueba gratis por {{trialDays}} días.',\n reminder: 'Día {{day}} - Recordatorio',\n lastDaysReminder: 'Últimos {{days}} días de prueba gratuita.',\n lastDay: 'Día {{day}} - Último día',\n subscriptionStart: 'Comienza tu suscripción por {{amount}}',\n subscriptionRenewal: 'Renovación de suscripción',\n renewalAmount: 'Renovación de suscripción por {{amount}}/mes',\n today: 'Hoy',\n chargeFullToday: 'Realizaremos el primer cobro de tu suscripción {{amount}}',\n firstCharge: 'Primer cobro',\n firstChargeDescription: 'Se cobrará {{amount}} el {{day}} de {{month}}',\n after: 'Después',\n recurringCharge: 'El {{day}} de cada mes se renovará automáticamente por {{amount}}',\n proratedCharge: '(proporcional hasta el {{day}} de {{month}})',\n },\n} as const;\n","export const ptTranslations = {\n common: {\n welcome: 'Bem-vindo',\n hello: 'Olá',\n loading: 'Carregando...',\n error: 'Ocorreu um erro',\n success: 'Sucesso',\n loadingOptions: 'Carregando opções...',\n },\n session: {\n refreshedTitle: 'Sessão atualizada',\n refreshedMessage: 'Sua sessão expirou e foi atualizada. Você pode continuar com sua compra.',\n },\n search: {\n searchCountries: 'Pesquisar país...',\n searchBanks: 'Pesquisar banco...',\n searchOptions: 'Pesquisar opções...',\n searchAddresses: 'Pesquisar endereço...',\n searchStates: 'Pesquisar estado...',\n },\n buttons: {\n submit: 'Enviar',\n cancel: 'Cancelar',\n save: 'Salvar',\n delete: 'Excluir',\n payNow: 'Pagar agora',\n continue: 'Continuar',\n continueWithPaymentMethod: 'Continuar com {{paymentMethod}}',\n renewSubscription: 'Renovar assinatura',\n updateCard: 'Atualizar cartão',\n subscribe: 'Assinar',\n secureEncrypted: 'Seguro e criptografado',\n startTrial: 'Iniciar teste gratuito por {{trialDays}} dias',\n redirecting: 'Redirecionando em {{seconds}} segundos',\n },\n paymentMethods: {\n card: 'Cartão',\n cardDescription: 'Cartão de crédito ou débito',\n saveCard: 'Salvar meu cartão',\n cash: 'Dinheiro',\n cashDescription: 'Dinheiro na sucursal',\n bank_transfer: 'Transferência bancária',\n bank_transfer_qr: 'Transferência por QR',\n transferDescription: 'Transferência bancária',\n errorTitle: 'Pagamento rejeitado',\n },\n paymentErrors: {\n //Message generic for card\n genericErrorCard:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n\n //Message generic for APM\n genericErrorMessagePIX: 'Tente novamente em alguns minutos ou com outro método de pagamento.',\n genericErrorMessageQR: 'Tente novamente em alguns minutos ou com outro método de pagamento.',\n genericErrorMessagePSE: 'Tente novamente em alguns minutos ou com outro método de pagamento.',\n genericErrorMessageBankTransfer:\n 'Tente novamente em alguns minutos ou com outro método de pagamento.',\n genericErrorMessage: 'Tente novamente em alguns minutos ou com outro método de pagamento.',\n\n //Title generic for card\n genericErrorTitleCard: 'Pagamento rejeitado',\n\n //Title generic for APM\n genericErrorTitlePIX: 'Não foi possível gerar seu código PIX',\n genericErrorTitleQR: 'Ocorreu um erro ao tentar gerar o QR',\n genericErrorTitlePSE: 'Ocorreu um erro ao direcionar para PSE',\n genericErrorTitleBankTransfer: 'Não foi possível processar a solicitação de pagamento',\n genericErrorTitle: 'Não foi possível processar a solicitação de pagamento',\n\n // Generic errors\n genericError:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n internalError:\n 'Seu pagamento não foi concluído. Tente novamente em alguns minutos ou com outro método de pagamento.',\n providerError:\n 'Seu pagamento não foi concluído. Tente novamente em alguns minutos ou com outro método de pagamento.',\n\n // Payment status errors\n pending: 'O pagamento está sendo processado.',\n approved: 'O pagamento foi aprovado com sucesso.',\n rejected:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente novamente, ou entre em contato com sua instituição financeira para autorizar a transação.',\n declined: 'O pagamento foi rejeitado.',\n error: 'Ocorreu um erro durante o processamento do pagamento.',\n refunded: 'O pagamento foi reembolsado.',\n cancelled: 'O pagamento foi cancelado.',\n partiallyRefunded: 'O pagamento foi parcialmente reembolsado.',\n expired: 'O pagamento expirou.',\n genericReject:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n invalidCardNumber:\n 'Dados do cartão inválidos. Por favor valide os dados e tente novamente ou tente com outro método de pagamento',\n insufficientFunds:\n 'Pagamento rejeitado por fundos insuficientes. Tente novamente com outro cartão com disponibilidade de fundos ou com outro método de pagamento.',\n invalidCardCvc:\n 'Dados do cartão inválidos. Por favor valide os dados e tente novamente ou tente com outro método de pagamento',\n invalidCardExpirationDate:\n 'Dados do cartão inválidos. Por favor valide os dados e tente novamente ou tente com outro método de pagamento',\n duplicatePayment:\n 'O erro de pagamento duplicado ocorre quando o mesmo pagamento é processado mais de uma vez.',\n cardDisabled:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n cardTypeNotAllowed:\n 'Tipo de cartão não suportado. Por favor use outro tipo de cartão ou método de pagamento.',\n APMError: 'Não pudemos gerar sua solicitação de pagamento. ',\n APMErrorBankTransfer: 'Não pudemos gerar sua solicitação de pagamento.',\n APMErrorGeneric: 'Não pudemos processar o pagamento.',\n pinAttemptsExceeded:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n blacklistedCard:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n processingError:\n 'Pagamento rejeitado durante o processamento. Por favor tente novamente, use outro cartão ou método de pagamento',\n speedLimitExceeded:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n APMMessageError: 'Por favor tente novamente em alguns minutos.',\n // Card errors\n invalidCard: 'O cartão é inválido.',\n invalidCardHolderName: 'O nome do titular do cartão é inválido.',\n invalidCardTokenizeCountry: 'O cartão não pode ser processado neste país.',\n\n // Customer errors\n invalidCustomerEmail:\n 'O email inserido é inválido. Por favor insira um email válido e tente novamente.',\n invalidCustomerPhone:\n 'O telefone inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerBillingAddress:\n 'O endereço inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerAddress:\n 'O endereço inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerCity:\n 'A província ou estado inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerState: 'O estado/província do cliente é inválido.',\n invalidCustomerZip:\n 'O código postal inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerCountry:\n 'O país inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerDocument:\n 'O documento inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerDocumentNumber:\n 'O número do documento inserido é inválido. Por favor revise os dados e tente novamente.',\n invalidCustomerDocumentType:\n 'O tipo de documento inserido é inválido. Por favor revise os dados e tente novamente.',\n\n // Required fields errors\n requiredCustomerEmail: 'O email é um dado obrigatório para processar o pagamento.',\n requiredCustomerPhone:\n 'Seu telefone é um dado obrigatório para processar o pagamento. Por favor revise os dados e tente novamente.',\n requiredCustomerBillingAddress:\n 'Seu endereço é um dado obrigatório para processar o pagamento. Por favor revise os dados e tente novamente.',\n requiredCustomerAddress:\n 'Seu endereço é um dado obrigatório para processar o pagamento. Por favor insira um endereço válido e tente novamente',\n requiredCustomerCity:\n 'A cidade é um dado obrigatório para processar o pagamento. Por favor insira-a e tente novamente.',\n requiredCustomerState:\n 'A província ou estado é um dado obrigatório para processar o pagamento. Por favor insira-o e tente novamente.',\n requiredCustomerZip:\n 'O código postal é um dado obrigatório para processar o pagamento. Por favor insira-o e tente novamente.',\n requiredCustomerCountry:\n 'O país é um dado obrigatório para processar o pagamento. Por favor insira-o e tente novamente.',\n requiredCustomerDocument:\n 'O documento é um dado obrigatório para processar o pagamento. Por favor insira um documento válido e tente novamente.',\n requiredCustomerDocumentNumber:\n 'O número do documento é um dado obrigatório para processar o pagamento. Por favor insira um número de documento válido e tente novamente.',\n requiredCustomerDocumentType:\n 'O tipo de documento é um dado obrigatório para processar o pagamento. Por favor insira um tipo de documento válido e tente novamente.',\n\n // Checkout errors\n invalidCheckoutRequest:\n 'Tentativa de pagamento rejeitada. Por favor tente novamente em alguns minutos.',\n invalidSession:\n 'Seu pagamento não foi concluído. A sessão expirou. Recarregue a página e tente novamente.',\n unavailablePaymentMethod:\n 'Método de pagamento não disponível. Por favor tente novamente com outro método de pagamento.',\n invalidAmount:\n 'Pagamento rejeitado por valor inválido. Por favor entre em contato com o comerciante para modificar o valor e tente novamente',\n invalidCurrency: 'A moeda inserida é inválida. Por favor revise os dados e tente novamente.',\n invalidCountry: 'O país inserido é inválido. Por favor revise os dados e tente novamente.',\n maxAttempts:\n 'Pagamento rejeitado por exceder o limite de tentativas. Por favor tente novamente com outro método de pagamento.',\n paymentExpired:\n 'A tentativa de pagamento expirou. Por favor gere uma nova tentativa de pagamento para completar seu pagamento',\n\n // Checkout with APM errors\n invalidCheckoutPaymentMethod:\n 'Método de pagamento inválido. Por favor tente novamente com outra forma de pagamento disponível',\n // Additional error messages\n addressVerificationFailed:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n cardLimitExceeded:\n 'Limite de gastos do cartão excedido. Por favor tente novamente com outro cartão ou método de pagamento.',\n restrictedCard: 'Cartão restrito. Indique ao usuário usar outro cartão.',\n issuerUnavailable:\n 'Pagamento rejeitado pela entidade emissora. Indique ao usuário tentar mais tarde.',\n invalidInstallmentPlan:\n 'Plano de parcelas inválido. Indique ao usuário selecionar outra opção de parcelas.',\n transactionNotAllowed:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n processorUnavailable:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente novamente em alguns minutos ou com outro cartão ou método de pagamento.',\n\n // Checkout with card errors\n bankRejected:\n 'Pagamento rejeitado pelo emissor. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n fraudHighRisk:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n callBankForAuthorize:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n blacklisted:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n expiredCard:\n 'Dados do cartão inválidos. Por favor valide os dados e tente novamente ou tente com outro método de pagamento',\n\n // Additional error messages\n hardDecline:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n softDecline:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n humanDecline:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n internal:\n 'A entidade emissora não autorizou seu pagamento. Por favor tente com outro cartão ou método de pagamento, ou entre em contato com sua instituição financeira para autorizar a transação.',\n required3ds:\n 'É necessário completar a autenticação do seu banco para continuar com o pagamento. Siga as instruções de verificação e tente novamente.',\n // Sandbox errors\n sandboxError:\n 'Erro no ambiente de testes. Por favor tente novamente ou verifique a configuração do ambiente.',\n },\n summary: {\n totalAmount: 'Total',\n totalAmountToday: 'Total a pagar hoje',\n subtotal: 'Subtotal',\n trialPeriodDaysDetails_one: '{{trialDays}} dia de teste gratuito',\n trialPeriodDaysDetails_other: '{{trialDays}} dias de teste gratuito',\n totalAmountLastTrialPeriod: 'Total após o teste',\n free: 'GRATIS',\n installments: 'Parcelas',\n installmentDescription: '{{installment}} x {{amount}}',\n summary: 'Resumo',\n details: 'Detalhes',\n hour_one: 'hora',\n hour_other: '{{count}} horas',\n month_one: 'mês',\n month_other: '{{count}} meses',\n week_one: 'semana',\n week_other: '{{count}} semanas',\n day_one: 'dia',\n day_other: '{{count}} dias',\n year_one: 'ano',\n year_other: '{{count}} anos',\n planFrequency: '{{frequency}}',\n planDiscountDescriptionWithDuration:\n 'Cupom de desconto aplicado de {{discount}} por {{duration}}.',\n planDiscountDescriptionWithoutDuration: 'Cupom de desconto aplicado de {{discount}}.',\n trialPill_one: '{{days}} dia gratis depois por',\n trialPill_other: '{{days}} dias gratis depois por',\n discount: 'Desconto',\n },\n billingAddress: {\n title: 'Endereço de Faturamento',\n addressPlaceholder: 'Endereço',\n cityPlaceholder: 'Cidade',\n zipPlaceholder: 'CEP',\n countryPlaceholder: 'Selecionar país',\n statePlaceholder: 'Selecionar estado',\n manualEntry: 'Digitar endereço manualmente',\n searchPlaceholder: 'Pesquisar endereço',\n sameAsShipping: 'Igual ao endereço de envio',\n searchStates: 'Pesquisar estado...',\n additionalInformation: 'Adicionar informações adicionais',\n addInformationPlaceholder: 'Departamento, piso (opcional)',\n addInformationLabel: 'Informações adicionais',\n },\n shippingAddress: {\n title: 'Endereço de Envio',\n addressPlaceholder: 'Address street',\n cityPlaceholder: 'Cidade',\n zipPlaceholder: 'CEP',\n countryPlaceholder: 'Selecionar país',\n statePlaceholder: 'Selecionar estado',\n searchStates: 'Pesquisar estado...',\n manualEntry: 'Digitar endereço manualmente',\n searchPlaceholder: 'Pesquisar endereço',\n additionalInformation: 'Adicionar informações adicionais',\n addInformationPlaceholder: 'Departamento, piso (opcional)',\n addInformationLabel: 'Informações adicionais',\n },\n bankSelector: {\n label: 'Selecione seu banco',\n placeholder: 'Escolha um banco',\n searchPlaceholder: 'Pesquisar banco...',\n },\n userInformation: {\n personalInformation: 'Informações pessoais',\n emailPlaceholder: 'Email',\n fullNamePlaceholder: 'Nome completo',\n countryCodePlaceholder: '+55',\n phoneNumberPlaceholder: 'Número de telefone',\n countryPlaceholder: 'Selecionar país',\n rebillAccount: 'Continuar com minha conta da Rebill',\n otpPlaceholder: 'Código de verificação',\n greeting: 'Olá {{name}}!',\n signOut: 'Sair',\n searchCountriesPlaceholder: 'Pesquisar país...',\n emailCorrectionSuggestion: 'Você quis dizer {{email}}?',\n suggestionsHeader: 'Sugestão',\n suggestionsLabel: 'Sugestões de e-mail',\n },\n footer: {\n poweredBy: 'Desenvolvido por',\n termsAndConditions: 'Termos e condições',\n },\n discountCoupons: {\n addDiscount: 'Adicionar desconto',\n apply: 'Aplicar',\n discount: 'Desconto',\n error: 'Cupom inválido',\n },\n installments: {\n interest: '* Os juros serão aplicados pela sua instituição bancária.',\n select: 'Selecione suas parcelas',\n selectMexican: 'Selecione suas parcelas',\n selectBrazilian: 'Selecione suas parcelas',\n single: 'parcela de',\n plural: 'parcelas de',\n singleMexican: 'parcela de',\n pluralMexican: 'parcelas de',\n brazilian: 'x de',\n disabledMexican: 'Pagos em parcelas apenas com cartão de crédito',\n disabledBrazilian: 'Pagos em parcelas apenas com cartão de crédito',\n disabled: 'Pagos em parcelas apenas com cartão de crédito',\n samePrice: 'Mesmo preço',\n },\n document: {\n typePlaceholder: 'Tipo',\n numberPlaceholder: 'Número de identificação',\n },\n referenceCode: {\n title: 'Referência de Pagamento',\n expirationLabel: 'Você tem {{time}} para pagar.',\n referenceLabel: 'Código de referência',\n providerLabel: 'Nome do comércio',\n instructionsLabel: 'Ver Instruções',\n instructionsTitle: 'Instruções',\n },\n qrCode: {\n title: 'Código QR',\n expirationLabel: 'Você tem {{time}} para pagar.',\n scanInstruction: 'Escaneie o código QR com seu app bancário ou carteira virtual.',\n instructionsLabel: 'Ver Instruções',\n instructionsTitle: 'Instruções',\n paymentMethod: 'Método de Pagamento',\n provider: 'Provedor',\n detailLabel: 'Detalhes do produto:',\n nameLabel: 'Nome do produto:',\n copyCode: 'Copiar código',\n },\n apmCheckout: {\n paymentInformation: 'Informações de Pagamento',\n expirationDate: 'Data de Vencimento',\n instructions: 'Instruções',\n viewBranches: 'Ver agências',\n download: 'Download',\n redirectMessage:\n 'Você será redirecionado para a plataforma {{paymentMethodName}} para completar seu pagamento.',\n redirectMessagePrefix: 'Você será redirecionado para a plataforma',\n redirectMessageSuffix: 'para completar seu pagamento.',\n accountNumber: 'Número da conta',\n bankName: 'Banco',\n reference: 'Referência',\n bankTransferInstructions: 'Instruções de transferência bancária',\n // Instruções para transferência bancária\n step1Instruction:\n 'No menu \"Pagar\", selecione a opção \"De serviços\" e insira o seguinte \"Número de convênio\".',\n step1Label: 'Número de convênio CIE:',\n step2Instruction: 'Insira os dados de registro para concluir a operação.',\n step2Label: 'Referência:',\n // Instruções gerais para transferência bancária\n generalInstruction:\n 'Acesse a seleção de transferências e pagamentos ou pagamentos para outros bancos e forneça os dados de transferência.',\n dataLabel: 'Dados',\n destinationBank: 'Banco de destino:',\n clabe: 'CLABE:',\n paymentReference: 'Referência de pagamento:',\n nameSurname: 'Beneficiário:',\n viewInstructions: 'Ver Instruções',\n paymentTransferSystem: 'Sistema de Transferência de Pagamentos',\n },\n bankTransfer: {\n transferData: 'Dados de transferência',\n step1Instruction: 'Abra o aplicativo ou o internet banking do seu banco.',\n step1Label: 'Número de convênio CIE:',\n step2Instruction: 'Vá até a opção de fazer pagamentos ou transferências.',\n step2Label: 'Referência:',\n step3Instruction:\n 'Se for uma nova conta, adicione-a e insira as informações do beneficiário e a chave CLABE.',\n step4Instruction:\n 'Copie e cole os dados do beneficiário, o valor e a referência que aparecem na sua tela.',\n step5Instruction: 'Confirme os detalhes da transferência e conclua o pagamento.',\n step6Instruction: 'Salve ou compartilhe o comprovante de pagamento.',\n },\n downloadTemplate: {\n title: 'Instruções de Pagamento - {{paymentMethod}}',\n totalAmount: 'Valor total',\n paymentCode: 'Código de pagamento',\n tellCashierData: 'Informe estes dados ao caixa',\n expirationText: 'Você tem tempo para pagar até {{date}}',\n merchantName: 'Nome do comércio:',\n concept: 'Conceito:',\n instructions: 'Instruções',\n fallbackProductTitle: 'Nome do produto',\n fallbackProductDescription: 'Detalhes do produto',\n },\n validation: {\n emailInvalid: 'O endereço de email não é válido',\n emailRequired: 'O endereço de email é obrigatório',\n fullNameRequired: 'O nome completo é obrigatório',\n fullNameInvalid: 'O nome completo não é válido',\n countryRequired: 'O país é obrigatório',\n stateRequired: 'O estado é obrigatório',\n addressRequired: 'O endereço é obrigatório',\n cityRequired: 'A cidade é obrigatória',\n zipRequired: 'O CEP é obrigatório',\n bankRequired: 'Você deve selecionar um banco',\n phoneRequired: 'O número de telefone é obrigatório',\n phoneInvalid: 'Por favor, insira um número de telefone válido',\n installmentsRequired: 'Você deve selecionar um número de parcelas',\n phoneNumberInvalid: 'O número de telefone não é válido',\n cardInvalid: 'O cartão é obrigatório',\n cardInvalidDescription: 'Por favor, complete as informações do cartão',\n documentTypeRequired: 'O tipo de documento é obrigatório',\n documentNumberRequired: 'O número de documento é obrigatório',\n documentInvalid: 'O número de documento não é válido',\n documentNumberNumericOnly: 'Digite apenas números (sem pontos nem traços).',\n tokenError: 'Erro interno',\n tokenErrorDescription: 'Tivemos um problema, por favor tente novamente mais tarde.',\n },\n processing: {\n securityText: 'Seguro e encriptado',\n processingTitle: 'O pagamento está sendo processado',\n processingSubtitle: 'Por favor, não feche a janela',\n successTitle: 'Pagamento realizado com sucesso!',\n redirectMessage: 'Você será redirecionado em',\n download: 'Descarregar recibo',\n downloadDescription: 'Enviamos o recibo para seu email.',\n paymentDetails: 'Detalhes do pagamento',\n paymentMethod: 'Método de pagamento',\n paymentDate: 'Data',\n paymentEmail: 'Email',\n paymentReference: 'Número de referência',\n purchaseDetails: 'Detalhes da compra',\n purchaseDetail: 'Detalhe',\n purchaseSubtotal: 'Subtotal',\n purchaseTotal: 'Total',\n purchaseMontoTotal: 'Valor total',\n nextCharge: 'Próxima cobrança',\n atEndOfTrial: 'Ao finalizar seu teste',\n onDayOfMonth: 'No dia {{day}} de cada mês',\n perMonth: 'por mês',\n onDate: 'Em {{date}}',\n trialPill_one: '{{days}} dia gratis',\n trialPill_other: '{{days}} dias gratis',\n },\n renewal: {\n title: 'Renovar assinatura',\n renewalAmount: 'Valor total',\n subscriptionDetails: 'Detalhes',\n nextRenewal: 'Próxima renovação',\n totalToRenew: 'Total',\n subtotal: 'Subtotal',\n loading: 'Carregando...',\n monthly: 'mês',\n yearly: 'ano',\n weekly: 'semana',\n paymentMethodAlert:\n 'Este mês você pode pagar com outro método de pagamento, mas a próxima cobrança será no seu cartão terminado em {{cardLastFour}}.',\n },\n changeCard: {\n title: 'Solicitação de mudança de cartão',\n successTitle: 'Cartão atualizado com sucesso!',\n successDescription:\n 'Usaremos seu novo cartão terminado em {{cardLastFour}} para as próximas cobranças.',\n paymentMethod: 'Método de pagamento',\n paymentDate: 'Data',\n customerEmail: 'Email',\n defaultBrand: 'Cartão',\n defaultEmail: '-',\n processingTitle: 'Salvando seu cartão',\n processingSubtitle: 'Aguarde um momento enquanto atualizamos os dados da sua assinatura.',\n errorTitle: 'Cartão inválido',\n errorDescription: 'Você pode tentar com outro cartão.',\n },\n sandbox: {\n testMode: 'Modo de teste',\n cards: 'Cartões',\n docs: 'Ler a documentação',\n completeMyAccountRegistration: 'Completar registro de conta',\n successPayment: 'Pagamento realizado com sucesso',\n cardNumber: 'Número do cartão',\n expiryDate: 'Data de vencimento',\n cvv: 'CVV',\n rejectedPayment: 'Pagamento rejeitado',\n exp: 'Exp.',\n cardTest: 'Cartões de teste',\n },\n otp: {\n sessionSecurity: 'Segurança de sessão',\n email: 'Email',\n notYou: 'Não sou eu',\n description: 'Digite o código de',\n descriptionDigits: '6 dígitos',\n descriptionEmail: 'que enviamos para',\n change: 'alterar',\n resendCode: 'Reenviar código',\n resendCodeIn: 'Reenviar código em',\n codeResent: 'Reenviamos o código para seu email.',\n infoTitle: 'Pode demorar alguns segundos.',\n infoMessage: 'Verifique sua pasta de spam ou promoções.',\n continueAsGuest: 'Continuar como convidado',\n secureMessage: 'Seguro e criptografado',\n verifyingCode: 'Verificando código',\n error: 'Código inválido',\n },\n timeline: {\n dayOne: 'Dia 1 - Hoje',\n startTrial_one: 'Comece sua avaliação gratuita por {{trialDays}} dia.',\n startTrial_other: 'Comece sua avaliação gratuita por {{trialDays}} dias.',\n reminder: 'Dia {{day}} - Lembrete',\n lastDaysReminder: 'Últimos {{days}} dias de avaliação gratuita.',\n lastDay: 'Dia {{day}} - Último dia',\n subscriptionStart: 'Sua assinatura começa por {{amount}}',\n subscriptionRenewal: 'Renovação de assinatura',\n renewalAmount: 'Renovação de assinatura por {{amount}}/mês',\n today: 'Hoje',\n chargeFullToday: 'Faremos a primeira cobrança da sua assinatura {{amount}}',\n firstCharge: 'Primeira cobrança',\n firstChargeDescription: '{{amount}} será cobrado no dia {{day}} de {{month}}',\n after: 'Depois',\n recurringCharge: 'No dia {{day}} de cada mês será renovado automaticamente por {{amount}}',\n proratedCharge: 'Cobrança proporcional de {{amount}} até o dia {{day}} do mês.',\n },\n} as const;\n","import i18n from 'i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport { sessionState } from '../store/session.store';\nimport { enTranslation } from './locales/en';\nimport { esTranslation } from './locales/es';\nimport { ptTranslations } from './locales/pt';\n\ni18n.use(LanguageDetector).init({\n resources: {\n en: {\n translation: enTranslation,\n },\n es: {\n translation: esTranslation,\n },\n pt: {\n translation: ptTranslations,\n },\n },\n fallbackLng: 'en',\n debug: process.env.NODE_ENV === 'development',\n interpolation: {\n escapeValue: false,\n },\n});\n\nexport const initializeI18nWithSessionLanguage = (language?: string) => {\n const sessionLanguage = language || sessionState.data.userInformation?.language;\n if (sessionLanguage) i18n.changeLanguage(sessionLanguage);\n};\n\nexport default i18n;\n","import { LOCALES_ENUM } from '../models/enums/locales.enum';\nimport i18n from './i18n.config';\n\nexport class I18nService {\n static async changeLanguage(lang: string): Promise<void> {\n await i18n.changeLanguage(lang);\n }\n\n static getCurrentLanguage(): LOCALES_ENUM {\n const language = i18n.language;\n return language.split('-')[0] as LOCALES_ENUM;\n }\n\n static translate(key: string, options?: any): string {\n return i18n.t(key, options) as string;\n }\n\n static getAvailableLanguages(): string[] {\n return Object.keys(i18n.options.resources || {});\n }\n}\n"],"names":["getRenderingRef","forceUpdate","CURRENCY_ENUM","PAYMENT_METHOD_ENUM","PLAN_FREQUENCY_ENUM","SESSION_ITEM_TYPE_ENUM","SESSION_TYPE_ENUM","SESSION_DISCOUNT_TYPE_ENUM","sessionState","i18n","LanguageDetector"],"mappings":"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","x_google_ignoreList":[0,1,2]}