{"version":3,"file":"jsverse-transloco-locale.mjs","sources":["../../../../libs/transloco-locale/src/lib/helpers.ts","../../../../libs/transloco-locale/src/lib/shared.ts","../../../../libs/transloco-locale/src/lib/locale-currency.ts","../../../../libs/transloco-locale/src/lib/transloco-locale.config.ts","../../../../libs/transloco-locale/src/lib/transloco-locale.transformers.ts","../../../../libs/transloco-locale/src/lib/transloco-locale.service.ts","../../../../libs/transloco-locale/src/lib/pipes/base-locale.pipe.ts","../../../../libs/transloco-locale/src/lib/pipes/transloco-currency.pipe.ts","../../../../libs/transloco-locale/src/lib/pipes/transloco-date.pipe.ts","../../../../libs/transloco-locale/src/lib/pipes/transloco-decimal.pipe.ts","../../../../libs/transloco-locale/src/lib/pipes/transloco-percent.pipe.ts","../../../../libs/transloco-locale/src/lib/transloco-locale.module.ts","../../../../libs/transloco-locale/src/lib/transloco-locale.providers.ts","../../../../libs/transloco-locale/src/jsverse-transloco-locale.ts"],"sourcesContent":["import { toNumber } from '@jsverse/utils';\n\nimport { DateFormatOptions, Locale } from './transloco-locale.types';\n\nexport const ISO8601_DATE_REGEX =\n  /^(\\d{4})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\n\n/**\n * Checks if a given value is a valid BCP 47 language tag.\n *\n * Validation is delegated to `Intl.getCanonicalLocales`, which means all\n * formats accepted by the platform are accepted here — including single\n * subtags, case-insensitive region codes, and script subtags. This is\n * intentionally more permissive than a hand-rolled regex so\n * that values coming directly from `navigator.language` (e.g. `\"de\"` on\n * Firefox or `\"de-de\"` on Safari) are treated as valid.\n *\n * @param value - The value to check.\n * @returns `true` if `value` is a valid BCP 47 language tag, `false` otherwise.\n *\n * @example\n * // Single primary language subtag (e.g. Firefox)\n * isLocaleFormat('de') // true\n *\n * @example\n * // Standard language-REGION tag\n * isLocaleFormat('en-US') // true\n *\n * @example\n * // Case-insensitive region (e.g. Safari)\n * isLocaleFormat('de-de') // true\n *\n * @example\n * // Script subtag\n * isLocaleFormat('zh-Hant-TW') // true\n *\n * @example\n * // Invalid tag\n * isLocaleFormat('not valid') // false\n * isLocaleFormat('') // false\n * isLocaleFormat(null) // false\n */\nexport function isLocaleFormat(value: any): value is Locale {\n  try {\n    return (\n      typeof value === 'string' && Intl.getCanonicalLocales(value).length > 0\n    );\n  } catch {\n    return false;\n  }\n}\n\nexport function localizeNumber(\n  value: number | string,\n  locale: Locale,\n  options: Intl.NumberFormatOptions,\n): string {\n  const number = toNumber(value);\n  return number !== null\n    ? new Intl.NumberFormat(locale, options).format(number)\n    : '';\n}\n\nexport function localizeDate(\n  date: Date,\n  locale: Locale,\n  options: DateFormatOptions,\n): string {\n  if (isDate(date)) {\n    return new Intl.DateTimeFormat(locale, options as any).format(date);\n  }\n  return '';\n}\n\nexport function isDate(value: any): boolean {\n  return value instanceof Date && !isNaN(<any>value);\n}\n\nexport function toDate(value: any): Date {\n  let match: RegExpMatchArray | null;\n\n  if (typeof value === 'string') {\n    value = value.trim();\n  }\n\n  if (isDate(value)) {\n    return value;\n  }\n\n  if (!isNaN(value - parseFloat(value))) {\n    return new Date(parseFloat(value));\n  }\n\n  if (typeof value === 'string' && /^(\\d{4}-\\d{1,2}-\\d{1,2})$/.test(value)) {\n    const [y, m, d] = value.split('-').map((val: string) => parseInt(val, 10));\n    return new Date(y, m - 1, d);\n  }\n\n  if (typeof value === 'string' && (match = value.match(ISO8601_DATE_REGEX))) {\n    return isoStringToDate(match);\n  }\n\n  return new Date(value);\n}\n\nexport function isoStringToDate(match: RegExpMatchArray): Date {\n  const date: Date = new Date(0);\n  let tzHour = 0;\n  let tzMin = 0;\n  const dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\n  const timeSetter = match[8] ? date.setUTCHours : date.setHours;\n  if (match[9]) {\n    tzHour = +(match[9] + match[10]);\n    tzMin = +(match[9] + match[11]);\n  }\n  dateSetter.call(date, +match[1], +match[2] - 1, +match[3]);\n  const h: number = +(match[4] || '0') - tzHour;\n  const m: number = +(match[5] || '0') - tzMin;\n  const s: number = +(match[6] || '0');\n  const ms: number = Math.round(parseFloat('0.' + (match[7] || 0)) * 1000);\n  timeSetter.call(date, h, m, s, ms);\n  return date;\n}\n","import {\n  Locale,\n  LocaleFormatOptions,\n  LocaleConfig,\n} from './transloco-locale.types';\n\nexport function getDefaultOptions<T extends keyof LocaleFormatOptions>(\n  locale: Locale,\n  style: T,\n  localeConfig: LocaleConfig,\n) {\n  const defaultConfig = (localeConfig.global?.[style] ?? {}) as NonNullable<\n    LocaleFormatOptions[T]\n  >;\n  const settings = (localeConfig.localeBased?.[locale] ??\n    {}) as LocaleFormatOptions;\n\n  return Reflect.has(settings, style)\n    ? { ...defaultConfig, ...settings[style] }\n    : defaultConfig;\n}\n","export default {\n  'aa-DJ': 'DJF',\n  'aa-ER': 'ERN',\n  'aa-ET': 'ETB',\n  'ab-GE': 'ETB',\n  'ab-TR': 'ETB',\n  'af-BW': 'ETB',\n  'af-NA': 'ETB',\n  'af-ZA': 'ZAR',\n  'ak-GH': 'ZAR',\n  'am-ET': 'ETB',\n  'am-IL': 'ETB',\n  'ar-AE': 'AED',\n  'ar-AR': 'AED',\n  'ar-BH': 'BHD',\n  'ar-CM': 'BHD',\n  'ar-CY': 'BHD',\n  'ar-DJ': 'BHD',\n  'ar-DZ': 'DZD',\n  'ar-EG': 'EGP',\n  'ar-EH': 'EGP',\n  'ar-ER': 'EGP',\n  'ar-IL': 'EGP',\n  'ar-IQ': 'IQD',\n  'ar-IR': 'IQD',\n  'ar-JO': 'JOD',\n  'ar-KE': 'JOD',\n  'ar-KM': 'JOD',\n  'ar-KW': 'KWD',\n  'ar-LB': 'LBP',\n  'ar-LY': 'LYD',\n  'ar-MA': 'MAD',\n  'ar-ML': 'MAD',\n  'ar-MR': 'MAD',\n  'ar-NE': 'MAD',\n  'ar-NG': 'MAD',\n  'ar-OM': 'OMR',\n  'ar-PS': 'OMR',\n  'ar-QA': 'QAR',\n  'ar-SA': 'SAR',\n  'ar-SD': 'SDD',\n  'ar-SS': 'SDD',\n  'ar-SY': 'SYP',\n  'ar-TD': 'SYP',\n  'ar-TJ': 'SYP',\n  'ar-TN': 'TND',\n  'ar-TR': 'TND',\n  'ar-YE': 'YER',\n  'as-IN': 'INR',\n  'av-RU': 'INR',\n  'ay-BO': 'INR',\n  'ay-PE': 'INR',\n  'az-AZ': 'AZM',\n  'ba-RU': 'AZM',\n  'be-BY': 'BYR',\n  'be-PL': 'BYR',\n  'be-UA': 'BYR',\n  'bg-BG': 'BGN',\n  'bg-GR': 'BGN',\n  'bg-MD': 'BGN',\n  'bg-RO': 'BGN',\n  'bg-TR': 'BGN',\n  'bg-UA': 'BGN',\n  'bi-VU': 'BGN',\n  'bm-ML': 'BGN',\n  'bn-BD': 'BDT',\n  'bn-GB': 'BDT',\n  'bn-IN': 'INR',\n  'bn-NP': 'INR',\n  'bo-CN': 'CNY',\n  'bo-IN': 'INR',\n  'bo-NP': 'INR',\n  'br-FR': 'EUR',\n  'bs-BA': 'BAM',\n  'ca-AD': 'EUR',\n  'ca-ES': 'EUR',\n  'ca-FR': 'EUR',\n  'ca-IT': 'EUR',\n  'ce-RU': 'EUR',\n  'ch-GU': 'EUR',\n  'ch-MP': 'EUR',\n  'co-FR': 'EUR',\n  'cs-CZ': 'CZK',\n  'cv-RU': 'RUB',\n  'cy-AR': 'RUB',\n  'cy-GB': 'GBP',\n  'da-DE': 'GBP',\n  'da-DK': 'DKK',\n  'da-GL': 'DKK',\n  'da-IS': 'DKK',\n  'de-AT': 'EUR',\n  'de-BE': 'EUR',\n  'de-BR': 'EUR',\n  'de-CA': 'EUR',\n  'de-CH': 'CHF',\n  'de-CZ': 'CHF',\n  'de-DE': 'EUR',\n  'de-DK': 'EUR',\n  'de-HU': 'EUR',\n  'de-IT': 'EUR',\n  'de-KZ': 'EUR',\n  'de-LI': 'EUR',\n  'de-LU': 'EUR',\n  'de-NA': 'EUR',\n  'de-PL': 'EUR',\n  'de-PY': 'EUR',\n  'de-RO': 'EUR',\n  'de-SK': 'EUR',\n  'de-US': 'EUR',\n  'dv-IN': 'EUR',\n  'dv-MV': 'MVR',\n  'dz-BT': 'BTN',\n  'dz-IN': 'BTN',\n  'ee-GH': 'BTN',\n  'ee-TG': 'BTN',\n  'el-AL': 'BTN',\n  'el-CY': 'EUR',\n  'el-DE': 'EUR',\n  'el-EG': 'EUR',\n  'el-GB': 'EUR',\n  'el-GR': 'EUR',\n  'el-IT': 'EUR',\n  'el-RO': 'EUR',\n  'el-TR': 'EUR',\n  'el-UA': 'EUR',\n  'en-AC': 'EUR',\n  'en-AG': 'XCD',\n  'en-AI': 'XCD',\n  'en-AS': 'XCD',\n  'en-AU': 'AUD',\n  'en-AW': 'AUD',\n  'en-BB': 'AUD',\n  'en-BE': 'AUD',\n  'en-BM': 'AUD',\n  'en-BN': 'AUD',\n  'en-BS': 'AUD',\n  'en-BW': 'BWP',\n  'en-BZ': 'BWP',\n  'en-CA': 'CAD',\n  'en-CC': 'CAD',\n  'en-CK': 'CAD',\n  'en-CM': 'CAD',\n  'en-CN': 'CAD',\n  'en-CX': 'CAD',\n  'en-DE': 'CAD',\n  'en-DG': 'CAD',\n  'en-DM': 'CAD',\n  'en-DO': 'CAD',\n  'en-ES': 'CAD',\n  'en-ET': 'CAD',\n  'en-FI': 'CAD',\n  'en-FJ': 'CAD',\n  'en-FK': 'CAD',\n  'en-FM': 'CAD',\n  'en-FR': 'CAD',\n  'en-GB': 'GBP',\n  'en-GD': 'GBP',\n  'en-GG': 'GBP',\n  'en-GH': 'GBP',\n  'en-GI': 'GBP',\n  'en-GM': 'GBP',\n  'en-GU': 'GBP',\n  'en-GY': 'GBP',\n  'en-HK': 'HKD',\n  'en-HN': 'HKD',\n  'en-IE': 'EUR',\n  'en-IL': 'EUR',\n  'en-IM': 'EUR',\n  'en-IN': 'INR',\n  'en-IO': 'INR',\n  'en-IT': 'INR',\n  'en-JE': 'INR',\n  'en-JM': 'INR',\n  'en-KE': 'INR',\n  'en-KI': 'INR',\n  'en-KN': 'INR',\n  'en-KY': 'INR',\n  'en-LB': 'INR',\n  'en-LC': 'INR',\n  'en-LK': 'INR',\n  'en-LR': 'INR',\n  'en-LS': 'INR',\n  'en-MG': 'INR',\n  'en-MH': 'INR',\n  'en-MP': 'INR',\n  'en-MS': 'INR',\n  'en-MT': 'INR',\n  'en-MU': 'INR',\n  'en-MW': 'INR',\n  'en-MY': 'INR',\n  'en-NA': 'INR',\n  'en-NF': 'INR',\n  'en-NG': 'NGN',\n  'en-NL': 'NGN',\n  'en-NR': 'NGN',\n  'en-NU': 'NGN',\n  'en-NZ': 'NZD',\n  'en-PA': 'NZD',\n  'en-PG': 'NZD',\n  'en-PH': 'PHP',\n  'en-PI': 'PHP',\n  'en-PK': 'PHP',\n  'en-PM': 'PHP',\n  'en-PN': 'PHP',\n  'en-PR': 'PHP',\n  'en-PW': 'PHP',\n  'en-RW': 'PHP',\n  'en-SB': 'PHP',\n  'en-SC': 'PHP',\n  'en-SG': 'SGD',\n  'en-SH': 'SGD',\n  'en-SL': 'SGD',\n  'en-SS': 'SGD',\n  'en-SZ': 'SGD',\n  'en-TA': 'SGD',\n  'en-TC': 'SGD',\n  'en-TK': 'SGD',\n  'en-TO': 'SGD',\n  'en-TT': 'SGD',\n  'en-TV': 'SGD',\n  'en-TZ': 'SGD',\n  'en-UD': 'SGD',\n  'en-UG': 'SGD',\n  'en-UM': 'SGD',\n  'en-US': 'USD',\n  'en-VC': 'USD',\n  'en-VG': 'USD',\n  'en-VI': 'USD',\n  'en-VU': 'USD',\n  'en-WS': 'USD',\n  'en-ZA': 'ZAR',\n  'en-ZM': 'ZAR',\n  'en-ZW': 'ZWD',\n  'eo-EO': 'ZWD',\n  'eo-SM': 'ZWD',\n  'es-AD': 'ZWD',\n  'es-AR': 'ARS',\n  'es-BO': 'BOB',\n  'es-BZ': 'BOB',\n  'es-CL': 'CLP',\n  'es-CO': 'COP',\n  'es-CR': 'CRC',\n  'es-CU': 'CRC',\n  'es-DE': 'CRC',\n  'es-DO': 'DOP',\n  'es-EA': 'DOP',\n  'es-EC': 'USD',\n  'es-ES': 'EUR',\n  'es-GQ': 'EUR',\n  'es-GT': 'GTQ',\n  'es-HN': 'HNL',\n  'es-IC': 'HNL',\n  'es-LA': 'HNL',\n  'es-MA': 'HNL',\n  'es-MX': 'MXN',\n  'es-NI': 'NIO',\n  'es-PA': 'PAB',\n  'es-PE': 'PEN',\n  'es-PH': 'PEN',\n  'es-PR': 'USD',\n  'es-PY': 'PYG',\n  'es-SV': 'SVC',\n  'es-TT': 'SVC',\n  'es-US': 'USD',\n  'es-UY': 'UYU',\n  'es-VE': 'VEB',\n  'et-EE': 'EEK',\n  'et-FI': 'EEK',\n  'eu-ES': 'EUR',\n  'eu-FR': 'EUR',\n  'fa-AE': 'EUR',\n  'fa-AF': 'EUR',\n  'fa-IQ': 'EUR',\n  'fa-IR': 'IRR',\n  'fa-OM': 'IRR',\n  'fa-PK': 'IRR',\n  'fa-QA': 'IRR',\n  'fa-TJ': 'IRR',\n  'fb-LT': 'IRR',\n  'ff-GN': 'IRR',\n  'ff-MR': 'IRR',\n  'ff-SN': 'IRR',\n  'fi-FI': 'EUR',\n  'fi-RU': 'EUR',\n  'fi-SE': 'EUR',\n  'fj-FJ': 'EUR',\n  'fo-FO': 'DKK',\n  'fr-AD': 'DKK',\n  'fr-BE': 'EUR',\n  'fr-BF': 'EUR',\n  'fr-BI': 'EUR',\n  'fr-BJ': 'EUR',\n  'fr-BL': 'EUR',\n  'fr-CA': 'CAD',\n  'fr-CD': 'CAD',\n  'fr-CF': 'CAD',\n  'fr-CG': 'CAD',\n  'fr-CH': 'CHF',\n  'fr-CI': 'CHF',\n  'fr-CM': 'CHF',\n  'fr-CP': 'CHF',\n  'fr-DJ': 'CHF',\n  'fr-DZ': 'CHF',\n  'fr-FR': 'EUR',\n  'fr-GA': 'EUR',\n  'fr-GB': 'EUR',\n  'fr-GF': 'EUR',\n  'fr-GN': 'EUR',\n  'fr-GP': 'EUR',\n  'fr-GQ': 'EUR',\n  'fr-HT': 'EUR',\n  'fr-IT': 'EUR',\n  'fr-KM': 'EUR',\n  'fr-LB': 'EUR',\n  'fr-LU': 'EUR',\n  'fr-MA': 'EUR',\n  'fr-MC': 'EUR',\n  'fr-MF': 'EUR',\n  'fr-MG': 'EUR',\n  'fr-ML': 'EUR',\n  'fr-MQ': 'EUR',\n  'fr-MR': 'EUR',\n  'fr-MU': 'EUR',\n  'fr-NC': 'EUR',\n  'fr-NE': 'EUR',\n  'fr-PF': 'EUR',\n  'fr-PM': 'EUR',\n  'fr-RE': 'EUR',\n  'fr-RW': 'EUR',\n  'fr-SC': 'EUR',\n  'fr-SN': 'EUR',\n  'fr-SY': 'EUR',\n  'fr-TD': 'EUR',\n  'fr-TF': 'EUR',\n  'fr-TG': 'EUR',\n  'fr-TN': 'EUR',\n  'fr-US': 'EUR',\n  'fr-VU': 'EUR',\n  'fr-WF': 'EUR',\n  'fr-YT': 'EUR',\n  'fy-NL': 'EUR',\n  'ga-GB': 'EUR',\n  'ga-IE': 'EUR',\n  'gd-GB': 'GBP',\n  'gl-ES': 'EUR',\n  'gl-PT': 'EUR',\n  'gn-AR': 'EUR',\n  'gn-BO': 'EUR',\n  'gn-PY': 'EUR',\n  'gu-IN': 'INR',\n  'gu-KE': 'INR',\n  'gv-IM': 'INR',\n  'he-IL': 'ILS',\n  'hi-FJ': 'ILS',\n  'hi-IN': 'INR',\n  'hi-NP': 'INR',\n  'hi-UG': 'INR',\n  'hi-ZA': 'INR',\n  'ho-PG': 'INR',\n  'hr-AT': 'INR',\n  'hr-BA': 'INR',\n  'hr-DE': 'INR',\n  'hr-HR': 'HRK',\n  'hr-HU': 'HRK',\n  'hr-IT': 'HRK',\n  'ht-HT': 'HTG',\n  'hu-AT': 'HTG',\n  'hu-HU': 'HUF',\n  'hu-IL': 'HUF',\n  'hu-RO': 'HUF',\n  'hu-RS': 'HUF',\n  'hu-SI': 'HUF',\n  'hu-SK': 'HUF',\n  'hu-UA': 'HUF',\n  'hy-AM': 'AMD',\n  'hy-CY': 'AMD',\n  'hy-GE': 'AMD',\n  'hy-IR': 'AMD',\n  'hy-LB': 'AMD',\n  'hy-SY': 'AMD',\n  'hy-TR': 'AMD',\n  'ia-SE': 'AMD',\n  'id-ID': 'IDR',\n  'id-NL': 'IDR',\n  'ig-NG': 'NGN',\n  'ii-CN': 'NGN',\n  'ik-US': 'NGN',\n  'is-IS': 'ISK',\n  'it-AU': 'ISK',\n  'it-BR': 'ISK',\n  'it-CA': 'ISK',\n  'it-CH': 'CHF',\n  'it-DE': 'CHF',\n  'it-FR': 'CHF',\n  'it-GB': 'CHF',\n  'it-HR': 'CHF',\n  'it-IT': 'EUR',\n  'it-SI': 'EUR',\n  'it-SM': 'EUR',\n  'it-US': 'EUR',\n  'it-VA': 'EUR',\n  'iu-GL': 'EUR',\n  'ja-BR': 'EUR',\n  'ja-JP': 'JPY',\n  'jv-ID': 'JPY',\n  'jv-MY': 'JPY',\n  'ka-GE': 'GEL',\n  'ka-IR': 'GEL',\n  'ka-TR': 'GEL',\n  'kg-CD': 'GEL',\n  'ki-KE': 'GEL',\n  'kj-NA': 'GEL',\n  'kl-DK': 'GEL',\n  'kl-GL': 'DKK',\n  'km-KH': 'KHR',\n  'kn-IN': 'INR',\n  'ko-BR': 'INR',\n  'ko-CN': 'INR',\n  'ko-JP': 'INR',\n  'ko-KP': 'INR',\n  'ko-KR': 'KRW',\n  'ko-US': 'KRW',\n  'ks-GB': 'KRW',\n  'ks-IN': 'INR',\n  'ks-PK': 'INR',\n  'ku-TR': 'TRY',\n  'kw-GB': 'GBP',\n  'la-VA': 'GBP',\n  'lb-LU': 'GBP',\n  'lg-UG': 'UGX',\n  'li-NL': 'EUR',\n  'ln-CD': 'EUR',\n  'ln-CG': 'EUR',\n  'lo-LA': 'LAK',\n  'lt-LT': 'LTL',\n  'lu-CD': 'LTL',\n  'lv-LV': 'LVL',\n  'mg-MG': 'MGA',\n  'mh-MH': 'MGA',\n  'mi-NZ': 'NZD',\n  'mk-AL': 'NZD',\n  'mk-GR': 'NZD',\n  'mk-MK': 'MKD',\n  'ml-AE': 'MKD',\n  'ml-BH': 'MKD',\n  'ml-GB': 'MKD',\n  'ml-IL': 'MKD',\n  'ml-IN': 'INR',\n  'ml-MY': 'INR',\n  'ml-QA': 'INR',\n  'ml-SG': 'INR',\n  'mr-IN': 'INR',\n  'ms-BN': 'INR',\n  'ms-CC': 'INR',\n  'ms-ID': 'INR',\n  'ms-MY': 'MYR',\n  'ms-SG': 'MYR',\n  'mt-MT': 'EUR',\n  'my-BD': 'EUR',\n  'my-MM': 'MMK',\n  'na-NR': 'MMK',\n  'nb-NO': 'NOK',\n  'nb-SJ': 'NOK',\n  'nd-ZW': 'NOK',\n  'ne-BT': 'NOK',\n  'ne-IN': 'NOK',\n  'ne-NP': 'INR',\n  'ng-NA': 'INR',\n  'nl-AW': 'AWG',\n  'nl-BE': 'EUR',\n  'nl-DE': 'EUR',\n  'nl-FR': 'EUR',\n  'nl-NL': 'EUR',\n  'nl-SR': 'EUR',\n  'nn-NO': 'NOK',\n  'nr-ZA': 'ZAR',\n  'nv-US': 'ZAR',\n  'ny-MW': 'ZAR',\n  'ny-MZ': 'ZAR',\n  'ny-ZM': 'ZAR',\n  'ny-ZW': 'ZAR',\n  'oc-FR': 'EUR',\n  'om-ET': 'ETB',\n  'om-KE': 'KES',\n  'om-SO': 'KES',\n  'or-IN': 'INR',\n  'os-GE': 'INR',\n  'pa-IN': 'INR',\n  'pl-CZ': 'INR',\n  'pl-DE': 'INR',\n  'pl-IL': 'INR',\n  'pl-PL': 'PLN',\n  'pl-RO': 'PLN',\n  'pl-SK': 'PLN',\n  'pl-UA': 'PLN',\n  'ps-AE': 'PLN',\n  'ps-AF': 'AFN',\n  'ps-IR': 'AFN',\n  'ps-PK': 'AFN',\n  'pt-AG': 'AFN',\n  'pt-AO': 'AFN',\n  'pt-BR': 'BRL',\n  'pt-CV': 'BRL',\n  'pt-FR': 'BRL',\n  'pt-GW': 'BRL',\n  'pt-MO': 'BRL',\n  'pt-MZ': 'BRL',\n  'pt-PT': 'EUR',\n  'pt-ST': 'EUR',\n  'pt-TL': 'EUR',\n  'qu-BO': 'EUR',\n  'qu-PE': 'EUR',\n  'rm-CH': 'EUR',\n  'rn-BI': 'EUR',\n  'ro-HU': 'EUR',\n  'ro-IL': 'EUR',\n  'ro-MD': 'EUR',\n  'ro-RO': 'RON',\n  'ro-RS': 'RON',\n  'ro-UA': 'RON',\n  'ru-BY': 'RON',\n  'ru-CN': 'RON',\n  'ru-DE': 'RON',\n  'ru-EE': 'RON',\n  'ru-FI': 'RON',\n  'ru-GE': 'RON',\n  'ru-IL': 'RON',\n  'ru-KG': 'RON',\n  'ru-KZ': 'RON',\n  'ru-LT': 'RON',\n  'ru-LV': 'RON',\n  'ru-MD': 'RON',\n  'ru-MN': 'RON',\n  'ru-RU': 'RUB',\n  'ru-SJ': 'RUB',\n  'ru-TM': 'RUB',\n  'ru-UA': 'UAH',\n  'ru-US': 'UAH',\n  'ru-UZ': 'UAH',\n  'rw-CD': 'UAH',\n  'rw-RW': 'RWF',\n  'rw-UG': 'RWF',\n  'sa-IN': 'INR',\n  'se-FI': 'INR',\n  'se-NO': 'NOK',\n  'se-SE': 'NOK',\n  'sg-CF': 'NOK',\n  'si-LK': 'LKR',\n  'sk-HU': 'LKR',\n  'sk-RS': 'LKR',\n  'sk-SK': 'EUR',\n  'sl-AT': 'EUR',\n  'sl-HU': 'EUR',\n  'sl-IT': 'EUR',\n  'sl-SI': 'EUR',\n  'sm-AS': 'EUR',\n  'sm-WS': 'EUR',\n  'sn-ZW': 'EUR',\n  'so-DJ': 'DJF',\n  'so-ET': 'ETB',\n  'so-KE': 'ETB',\n  'so-SO': 'SOS',\n  'sq-AL': 'ALL',\n  'sq-GR': 'ALL',\n  'sq-ME': 'ALL',\n  'sq-MK': 'MKD',\n  'sq-RS': 'MKD',\n  'sq-TR': 'MKD',\n  'sr-RS': 'RSD',\n  'ss-LS': 'RSD',\n  'ss-SZ': 'RSD',\n  'ss-ZA': 'ZAR',\n  'st-LS': 'ZAR',\n  'st-ZA': 'ZAR',\n  'su-ID': 'ZAR',\n  'sv-AX': 'ZAR',\n  'sv-FI': 'EUR',\n  'sv-SE': 'SEK',\n  'sw-BI': 'SEK',\n  'sw-CD': 'SEK',\n  'sw-KE': 'SEK',\n  'sw-MZ': 'SEK',\n  'sw-SO': 'SEK',\n  'sw-TZ': 'SEK',\n  'sw-UG': 'SEK',\n  'sw-YT': 'SEK',\n  'sw-ZA': 'SEK',\n  'ta-IN': 'INR',\n  'ta-LK': 'INR',\n  'ta-MU': 'INR',\n  'ta-MY': 'INR',\n  'ta-RE': 'INR',\n  'ta-SG': 'INR',\n  'te-IN': 'INR',\n  'th-TH': 'THB',\n  'ti-ER': 'ERN',\n  'ti-ET': 'ETB',\n  'ti-IL': 'ETB',\n  'tk-AF': 'ETB',\n  'tk-IR': 'ETB',\n  'tk-TM': 'TMM',\n  'tl-PH': 'PHP',\n  'tl-US': 'PHP',\n  'tn-BW': 'PHP',\n  'tn-NA': 'PHP',\n  'tn-ZA': 'ZAR',\n  'tn-ZW': 'ZAR',\n  'to-TO': 'ZAR',\n  'tr-BG': 'ZAR',\n  'tr-CY': 'TRY',\n  'tr-DE': 'TRY',\n  'tr-GR': 'TRY',\n  'tr-MK': 'TRY',\n  'tr-NL': 'TRY',\n  'tr-RO': 'TRY',\n  'tr-TR': 'TRY',\n  'tr-UA': 'TRY',\n  'tr-UZ': 'TRY',\n  'ts-MZ': 'TRY',\n  'ts-SZ': 'TRY',\n  'ts-ZA': 'ZAR',\n  'tt-RU': 'RUB',\n  'ty-PF': 'RUB',\n  'uk-PL': 'RUB',\n  'uk-SK': 'RUB',\n  'uk-UA': 'UAH',\n  'ur-IN': 'UAH',\n  'ur-MU': 'UAH',\n  'ur-PK': 'PKR',\n  've-ZA': 'ZAR',\n  've-ZW': 'ZAR',\n  'vi-CN': 'ZAR',\n  'vi-US': 'ZAR',\n  'vi-VN': 'VND',\n  'wa-BE': 'EUR',\n  'xh-LS': 'EUR',\n  'xh-ZA': 'ZAR',\n  'yi-UA': 'ZAR',\n  'yo-BJ': 'ZAR',\n  'yo-NG': 'NGN',\n  'za-CN': 'NGN',\n  'zh-CN': 'CNY',\n  'zh-HK': 'HKD',\n  'zh-TW': 'TWD',\n  'zu-LS': 'TWD',\n  'zu-MW': 'TWD',\n  'zu-MZ': 'TWD',\n  'zu-SZ': 'TWD',\n  'zu-ZA': 'ZAR',\n};\n","import { InjectionToken } from '@angular/core';\n\nimport LOCALE_CURRENCY from './locale-currency';\nimport {\n  TranslocoLocaleConfig,\n  LocaleConfigMapping,\n  LangToLocaleMapping,\n  LocaleToCurrencyMapping,\n  Locale,\n  Currency,\n} from './transloco-locale.types';\n\nexport const defaultConfig: Required<TranslocoLocaleConfig> = {\n  localeConfig: {\n    global: {},\n    localeBased: {},\n  },\n  defaultLocale: 'en-US',\n  defaultCurrency: 'USD',\n  localeToCurrencyMapping: LOCALE_CURRENCY,\n  langToLocaleMapping: {},\n};\n\nexport const TRANSLOCO_LOCALE_DEFAULT_LOCALE = new InjectionToken<Locale>(\n  'TRANSLOCO_LOCALE_DEFAULT_LOCALE',\n);\nexport const TRANSLOCO_LOCALE_DEFAULT_CURRENCY = new InjectionToken<Currency>(\n  'TRANSLOCO_LOCALE_DEFAULT_CURRENCY',\n);\nexport const TRANSLOCO_LOCALE_LANG_MAPPING =\n  new InjectionToken<LangToLocaleMapping>('TRANSLOCO_LOCALE_LANG_MAPPING');\nexport const TRANSLOCO_LOCALE_CONFIG = new InjectionToken<LocaleConfigMapping>(\n  'TRANSLOCO_LOCALE_CONFIG',\n);\nexport const TRANSLOCO_LOCALE_CURRENCY_MAPPING =\n  new InjectionToken<LocaleToCurrencyMapping>(\n    'TRANSLOCO_LOCALE_CURRENCY_MAPPING',\n  );\n","import { InjectionToken } from '@angular/core';\n\nimport { localizeNumber, localizeDate } from './helpers';\nimport {\n  Locale,\n  DateFormatOptions,\n  NumberStyles,\n} from './transloco-locale.types';\n\nexport interface TranslocoDateTransformer {\n  transform(date: Date, locale: Locale, options: DateFormatOptions): string;\n}\nexport interface TranslocoNumberTransformer {\n  transform(\n    value: number | string,\n    type: NumberStyles,\n    locale: Locale,\n    options: Intl.NumberFormatOptions,\n  ): string;\n}\n\nexport const TRANSLOCO_DATE_TRANSFORMER =\n  new InjectionToken<TranslocoDateTransformer>('TRANSLOCO_DATE_TRANSFORMER');\nexport const TRANSLOCO_NUMBER_TRANSFORMER =\n  new InjectionToken<TranslocoNumberTransformer>(\n    'TRANSLOCO_NUMBER_TRANSFORMER',\n  );\n\nexport class DefaultDateTransformer implements TranslocoDateTransformer {\n  public transform(\n    date: Date,\n    locale: Locale,\n    options: DateFormatOptions,\n  ): string {\n    return localizeDate(date, locale, options);\n  }\n}\nexport class DefaultNumberTransformer implements TranslocoNumberTransformer {\n  public transform(\n    value: number | string,\n    type: NumberStyles,\n    locale: string,\n    options: Intl.NumberFormatOptions,\n  ): string {\n    return localizeNumber(value, locale, { ...options, style: type });\n  }\n}\n","import { DestroyRef, inject, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { getBrowserCultureLang, TranslocoService } from '@jsverse/transloco';\nimport { BehaviorSubject } from 'rxjs';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\n\nimport { isLocaleFormat, toDate } from './helpers';\nimport { getDefaultOptions } from './shared';\nimport {\n  TRANSLOCO_LOCALE_CONFIG,\n  TRANSLOCO_LOCALE_CURRENCY_MAPPING,\n  TRANSLOCO_LOCALE_DEFAULT_CURRENCY,\n  TRANSLOCO_LOCALE_DEFAULT_LOCALE,\n  TRANSLOCO_LOCALE_LANG_MAPPING,\n} from './transloco-locale.config';\nimport {\n  TRANSLOCO_DATE_TRANSFORMER,\n  TRANSLOCO_NUMBER_TRANSFORMER,\n} from './transloco-locale.transformers';\nimport {\n  DateFormatOptions,\n  Locale,\n  LocaleConfig,\n  NumberStyles,\n  ValidDate,\n} from './transloco-locale.types';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslocoLocaleService {\n  private translocoService = inject(TranslocoService);\n  private langLocaleMapping = inject(TRANSLOCO_LOCALE_LANG_MAPPING);\n  private defaultLocale = inject(TRANSLOCO_LOCALE_DEFAULT_LOCALE);\n  private defaultCurrency = inject(TRANSLOCO_LOCALE_DEFAULT_CURRENCY);\n  private localeCurrencyMapping = inject(TRANSLOCO_LOCALE_CURRENCY_MAPPING);\n  private numberTransformer = inject(TRANSLOCO_NUMBER_TRANSFORMER);\n  private dateTransformer = inject(TRANSLOCO_DATE_TRANSFORMER);\n  private localeConfig: LocaleConfig = inject(TRANSLOCO_LOCALE_CONFIG);\n  private browserLocale = getBrowserCultureLang() || this.defaultLocale;\n\n  private _locale = '';\n  private locale = new BehaviorSubject<Locale>(this._locale);\n\n  readonly localeChanges$ = this.locale.pipe(distinctUntilChanged());\n\n  constructor() {\n    inject(DestroyRef).onDestroy(() => {\n      // Complete subjects to release observers if users forget to unsubscribe manually.\n      // This is important in server-side rendering.\n      this.locale.complete();\n      this.locale.unsubscribe();\n    });\n\n    // Initialize locale with fallback chain\n    this.setLocale(this.initializeLocale());\n\n    // Subscribe to language changes\n    this.translocoService.langChanges$\n      .pipe(\n        map((lang) => this.toLocale(lang)),\n        filter(Boolean),\n        takeUntilDestroyed(),\n      )\n      .subscribe((locale: Locale) => this.setLocale(locale));\n  }\n\n  getDefaultLocale() {\n    return this.defaultLocale;\n  }\n\n  getLocale() {\n    return this._locale;\n  }\n\n  setLocale(locale: Locale) {\n    if (!isLocaleFormat(locale)) {\n      console.error(`${locale} isn't a valid locale format`);\n      return;\n    }\n\n    this.locale.next(locale);\n    this._locale = locale;\n  }\n\n  /**\n   * Get the currency symbol for the currently set locale.\n   */\n  getCurrencySymbol(locale = this.getLocale()) {\n    const currency = this.localeCurrencyMapping[locale];\n    const numberFormat = new Intl.NumberFormat(locale, {\n      style: 'currency',\n      currencyDisplay: 'symbol',\n      currency,\n      minimumFractionDigits: 0,\n      maximumFractionDigits: 0,\n    });\n\n    const pivot = 0;\n\n    return numberFormat\n      .format(pivot)\n      .split(pivot.toString())\n      .map((element) => element.trim())\n      .find((element) => !!element);\n  }\n\n  /**\n   * Transform a date into the locale's date format.\n   *\n   * The date expression: a `Date` object, a number\n   * (milliseconds since UTC epoch), or an ISO string (https://www.w3.org/TR/NOTE-datetime).\n   *\n   * @example\n   *\n   * localizeDate(new Date(2019, 9, 7, 12, 0, 0)) // 10/7/2019\n   * localizeDate(date, 'en-US', { dateStyle: 'medium', timeStyle: 'medium' }) // Sep 10, 2019, 10:46:12 PM\n   * localizeDate(date) 'en-US', { timeZone: 'UTC', timeStyle: 'full' } // 7:40:32 PM Coordinated Universal Time\n   * localizeDate(1, 'en-US', { dateStyle: 'medium' }) // Jan 1, 1970\n   * localizeDate('2019-02-08', 'en-US', { dateStyle: 'medium' }) // Feb 8, 2019\n   */\n  localizeDate(\n    date: ValidDate,\n    locale: Locale = this.getLocale(),\n    options: DateFormatOptions = {},\n  ): string {\n    const resolved =\n      options ?? getDefaultOptions(locale, 'date', this.localeConfig);\n\n    return this.dateTransformer.transform(toDate(date), locale, resolved);\n  }\n\n  /**\n   * Transform a number into the locale's number format according to the number type.\n   *\n   * localizeNumber(1234567890, 'decimal') // 1,234,567,890\n   * localizeNumber(0.5, 'percent') // 50%\n   * localizeNumber(1000, 'currency') // $1,000.00\n   */\n  localizeNumber(\n    value: number | string,\n    style: NumberStyles,\n    locale: Locale = this.getLocale(),\n    options?: Intl.NumberFormatOptions,\n  ): string {\n    let resolved =\n      options ?? getDefaultOptions(locale, style, this.localeConfig);\n\n    if (style === 'currency') {\n      resolved = {\n        ...resolved,\n        currency: resolved.currency || this._resolveCurrencyCode(locale),\n      };\n    }\n\n    return this.numberTransformer.transform(value, style, locale, resolved);\n  }\n\n  /**\n   * @internal\n   */\n  _resolveCurrencyCode(locale: Locale = this.getLocale()) {\n    return this.localeCurrencyMapping[locale] || this.defaultCurrency;\n  }\n\n  private toLocale(val: string | Locale): Locale {\n    if (this.langLocaleMapping[val]) {\n      return this.langLocaleMapping[val];\n    }\n\n    if (isLocaleFormat(val)) {\n      return val;\n    }\n\n    return '';\n  }\n\n  /*\n   * Get the browser's language and validate.\n   * If the browser's language is not set, it will fall back to the active language from TranslocoService.\n   * If active language from TranslocoService is not valid, it will fall back to the default locale.\n   * If the default locale is not valid, it will return the default locale as a string\n   */\n\n  private initializeLocale(): Locale {\n    const browserLocale = this.toLocale(this.browserLocale);\n    if (browserLocale) return browserLocale;\n\n    const activeLang = this.translocoService.getActiveLang();\n    if (activeLang) {\n      const locale = this.toLocale(activeLang);\n      if (locale) return locale;\n    }\n\n    const defaultLocaleResolved = this.toLocale(this.defaultLocale);\n    if (defaultLocaleResolved) return defaultLocaleResolved;\n\n    return this.defaultLocale; // Fallback to a default locale\n  }\n}\n","import {\n  ChangeDetectorRef,\n  inject,\n  Injectable,\n  OnDestroy,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Locale } from '../../lib/transloco-locale.types';\nimport { TranslocoLocaleService } from '../transloco-locale.service';\n\n@Injectable()\nexport abstract class BaseLocalePipe implements OnDestroy {\n  protected localeService = inject(TranslocoLocaleService);\n  protected cdr = inject(ChangeDetectorRef);\n\n  private localeChangeSub: Subscription | null =\n    this.localeService.localeChanges$.subscribe(() => this.cdr.markForCheck());\n\n  protected getLocale(locale?: Locale): Locale {\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    return locale || this.localeService.getLocale()!;\n  }\n\n  ngOnDestroy(): void {\n    this.localeChangeSub?.unsubscribe();\n    // Caretaker note: it's important to clean up references to subscriptions since they save the `next`\n    // callback within its `destination` property, preventing classes from being GC'd.\n    this.localeChangeSub = null;\n  }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { isNil } from '@jsverse/utils';\n\nimport { getDefaultOptions } from '../shared';\nimport { TRANSLOCO_LOCALE_CONFIG } from '../transloco-locale.config';\nimport {\n  Currency,\n  Locale,\n  LocaleConfig,\n  NumberFormatOptions,\n} from '../transloco-locale.types';\n\nimport { BaseLocalePipe } from './base-locale.pipe';\n\n@Pipe({\n  name: 'translocoCurrency',\n  pure: false,\n  standalone: true,\n})\nexport class TranslocoCurrencyPipe\n  extends BaseLocalePipe\n  implements PipeTransform\n{\n  private localeConfig: LocaleConfig = inject(TRANSLOCO_LOCALE_CONFIG);\n\n  /**\n   * Transform a given number into the locale's currency format.\n   *\n   * @example\n   *\n   * 1000000 | translocoCurrency: 'symbol' : {} : USD // $1,000,000.00\n   * 1000000 | translocoCurrency: 'name' : {} : USD // 1,000,000.00 US dollars\n   * 1000000 | translocoCurrency: 'symbol' : {minimumFractionDigits: 0 } : USD // $1,000,000\n   * 1000000 | translocoCurrency: 'symbol' : {minimumFractionDigits: 0 } : CAD // CA$1,000,000\n   * 1000000 | translocoCurrency: 'narrowSymbol' : {minimumFractionDigits: 0 } : CAD // $1,000,000\n   *\n   */\n  transform(\n    value: number | string,\n    display: 'code' | 'symbol' | 'narrowSymbol' | 'name' = 'symbol',\n    numberFormatOptions: NumberFormatOptions = {},\n    currencyCode?: Currency,\n    locale?: Locale,\n  ): string {\n    if (isNil(value)) return '';\n    locale = this.getLocale(locale);\n\n    const options = {\n      ...getDefaultOptions(locale, 'currency', this.localeConfig),\n      ...numberFormatOptions,\n      currencyDisplay: display,\n      currency: currencyCode || this.localeService._resolveCurrencyCode(),\n    };\n\n    return this.localeService.localizeNumber(\n      value,\n      'currency',\n      locale,\n      options,\n    );\n  }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { isNil } from '@jsverse/utils';\n\nimport { getDefaultOptions } from '../shared';\nimport { TRANSLOCO_LOCALE_CONFIG } from '../transloco-locale.config';\nimport {\n  DateFormatOptions,\n  Locale,\n  LocaleConfig,\n  ValidDate,\n} from '../transloco-locale.types';\n\nimport { BaseLocalePipe } from './base-locale.pipe';\n\n@Pipe({\n  name: 'translocoDate',\n  pure: false,\n  standalone: true,\n})\nexport class TranslocoDatePipe extends BaseLocalePipe implements PipeTransform {\n  private localeConfig: LocaleConfig = inject(TRANSLOCO_LOCALE_CONFIG);\n\n  /**\n   * Transform a date into the locale's date format.\n   *\n   * The date expression: a `Date` object,  a number\n   * (milliseconds since UTC epoch), or an ISO string (https://www.w3.org/TR/NOTE-datetime).\n   *\n   * @example\n   *\n   * date | translocoDate: {} : en-US // 9/10/2019\n   * date | translocoDate: { dateStyle: 'medium', timeStyle: 'medium' } : en-US // Sep 10, 2019, 10:46:12 PM\n   * date | translocoDate: { timeZone: 'UTC', timeStyle: 'full' } : en-US // 7:40:32 PM Coordinated Universal Time\n   * 1 | translocoDate: { dateStyle: 'medium' } // Jan 1, 1970\n   * '2019-02-08' | translocoDate: { dateStyle: 'medium' } // Feb 8, 2019\n   */\n  transform(date: ValidDate, options: DateFormatOptions = {}, locale?: Locale) {\n    if (isNil(date)) return '';\n    locale = this.getLocale(locale);\n\n    return this.localeService.localizeDate(date, locale, {\n      ...getDefaultOptions(locale, 'date', this.localeConfig),\n      ...options,\n    });\n  }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { isNil } from '@jsverse/utils';\n\nimport { getDefaultOptions } from '../shared';\nimport { TRANSLOCO_LOCALE_CONFIG } from '../transloco-locale.config';\nimport {\n  Locale,\n  LocaleConfig,\n  NumberFormatOptions,\n} from '../transloco-locale.types';\n\nimport { BaseLocalePipe } from './base-locale.pipe';\n\n@Pipe({\n  name: 'translocoDecimal',\n  pure: false,\n  standalone: true,\n})\nexport class TranslocoDecimalPipe\n  extends BaseLocalePipe\n  implements PipeTransform\n{\n  private localeConfig: LocaleConfig = inject(TRANSLOCO_LOCALE_CONFIG);\n\n  /**\n   * Transform a given number into the locale's currency format.\n   *\n   * @example\n   *\n   * 1234567890 | translocoDecimal: {} : en-US // 1,234,567,890\n   * 1234567890 | translocoDecimal: {useGrouping: false}: en-US // 1234567890\n   *\n   */\n  transform(\n    value: string | number,\n    numberFormatOptions: NumberFormatOptions = {},\n    locale?: Locale,\n  ): string {\n    if (isNil(value)) return '';\n    locale = this.getLocale(locale);\n\n    const options = {\n      ...getDefaultOptions(locale, 'decimal', this.localeConfig),\n      ...numberFormatOptions,\n    };\n\n    return this.localeService.localizeNumber(value, 'decimal', locale, options);\n  }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { isNil } from '@jsverse/utils';\n\nimport { getDefaultOptions } from '../shared';\nimport { TRANSLOCO_LOCALE_CONFIG } from '../transloco-locale.config';\nimport {\n  Locale,\n  LocaleConfig,\n  NumberFormatOptions,\n} from '../transloco-locale.types';\n\nimport { BaseLocalePipe } from './base-locale.pipe';\n\n@Pipe({\n  name: 'translocoPercent',\n  pure: false,\n  standalone: true,\n})\nexport class TranslocoPercentPipe\n  extends BaseLocalePipe\n  implements PipeTransform\n{\n  private localeConfig: LocaleConfig = inject(TRANSLOCO_LOCALE_CONFIG);\n\n  /**\n   * Transform a given number into the locale's currency format.\n   *\n   * @example\n   *\n   * 1 | translocoPercent : {} : en-US // 100%\n   * \"1\" | translocoPercent : {} : en-US // 100%\n   *\n   */\n  transform(\n    value: number | string,\n    numberFormatOptions: NumberFormatOptions = {},\n    locale?: Locale,\n  ): string {\n    if (isNil(value)) return '';\n    locale = this.getLocale(locale);\n\n    const options = {\n      ...getDefaultOptions(locale, 'percent', this.localeConfig),\n      ...numberFormatOptions,\n    };\n\n    return this.localeService.localizeNumber(value, 'percent', locale, options);\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport {\n  TranslocoCurrencyPipe,\n  TranslocoDatePipe,\n  TranslocoDecimalPipe,\n  TranslocoPercentPipe,\n} from './pipes';\n\nconst decl = [\n  TranslocoCurrencyPipe,\n  TranslocoDatePipe,\n  TranslocoDecimalPipe,\n  TranslocoPercentPipe,\n];\n\n@NgModule({\n  imports: decl,\n  exports: decl,\n})\nexport class TranslocoLocaleModule {}\n","import { makeEnvironmentProviders, Type } from '@angular/core';\n\nimport {\n  Currency,\n  LangToLocaleMapping,\n  Locale,\n  LocaleConfig,\n  LocaleToCurrencyMapping,\n  TranslocoLocaleConfig,\n} from './transloco-locale.types';\nimport {\n  defaultConfig,\n  TRANSLOCO_LOCALE_CONFIG,\n  TRANSLOCO_LOCALE_CURRENCY_MAPPING,\n  TRANSLOCO_LOCALE_DEFAULT_CURRENCY,\n  TRANSLOCO_LOCALE_DEFAULT_LOCALE,\n  TRANSLOCO_LOCALE_LANG_MAPPING,\n} from './transloco-locale.config';\nimport {\n  DefaultDateTransformer,\n  DefaultNumberTransformer,\n  TRANSLOCO_DATE_TRANSFORMER,\n  TRANSLOCO_NUMBER_TRANSFORMER,\n  TranslocoDateTransformer,\n  TranslocoNumberTransformer,\n} from './transloco-locale.transformers';\n\nexport function provideTranslocoLocale(config?: TranslocoLocaleConfig) {\n  const merged = {\n    ...defaultConfig,\n    ...config,\n  };\n\n  return [\n    provideTranslocoLocaleConfig(merged.localeConfig),\n    provideTranslocoDefaultLocale(merged.defaultLocale),\n    provideTranslocoDefaultCurrency(merged.defaultCurrency),\n    provideTranslocoLocaleLangMapping(merged.langToLocaleMapping),\n    provideTranslocoLocaleCurrencyMapping(merged.localeToCurrencyMapping),\n    provideTranslocoDateTransformer(DefaultDateTransformer),\n    provideTranslocoNumberTransformer(DefaultNumberTransformer),\n  ];\n}\n\nexport function provideTranslocoLocaleConfig(config: LocaleConfig) {\n  return makeEnvironmentProviders([\n    {\n      provide: TRANSLOCO_LOCALE_CONFIG,\n      useValue: config,\n    },\n  ]);\n}\n\nexport function provideTranslocoLocaleLangMapping(\n  langToLocale: LangToLocaleMapping,\n) {\n  return makeEnvironmentProviders([\n    {\n      provide: TRANSLOCO_LOCALE_LANG_MAPPING,\n      useValue: langToLocale,\n    },\n  ]);\n}\n\nexport function provideTranslocoLocaleCurrencyMapping(\n  localeToCurrency: LocaleToCurrencyMapping,\n) {\n  return makeEnvironmentProviders([\n    {\n      provide: TRANSLOCO_LOCALE_CURRENCY_MAPPING,\n      useValue: localeToCurrency,\n    },\n  ]);\n}\n\nexport function provideTranslocoDefaultLocale(defaultLocale: Locale) {\n  return makeEnvironmentProviders([\n    {\n      provide: TRANSLOCO_LOCALE_DEFAULT_LOCALE,\n      useValue: defaultLocale,\n    },\n  ]);\n}\n\nexport function provideTranslocoDefaultCurrency(defaultCurrency: Currency) {\n  return makeEnvironmentProviders([\n    {\n      provide: TRANSLOCO_LOCALE_DEFAULT_CURRENCY,\n      useValue: defaultCurrency,\n    },\n  ]);\n}\n\nexport function provideTranslocoDateTransformer(\n  transformer: Type<TranslocoDateTransformer>,\n) {\n  return makeEnvironmentProviders([\n    {\n      provide: TRANSLOCO_DATE_TRANSFORMER,\n      useClass: transformer,\n    },\n  ]);\n}\n\nexport function provideTranslocoNumberTransformer(\n  transformer: Type<TranslocoNumberTransformer>,\n) {\n  return makeEnvironmentProviders([\n    {\n      provide: TRANSLOCO_NUMBER_TRANSFORMER,\n      useClass: transformer,\n    },\n  ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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AK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,KA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"}