@wix/cli 1.1.84 → 1.1.86

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.
Files changed (146) hide show
  1. package/bin/wix.cjs +4 -4
  2. package/build/{DevCommand-QIKMRRK2.js → DevCommand-LK2J4SHX.js} +19 -16
  3. package/build/{DevCommand-QIKMRRK2.js.map → DevCommand-LK2J4SHX.js.map} +1 -1
  4. package/build/{DevCommand-3T55WLCX.js → DevCommand-NPY7LRXR.js} +27 -23
  5. package/build/{DevCommand-3T55WLCX.js.map → DevCommand-NPY7LRXR.js.map} +1 -1
  6. package/build/{InstallCommand-4YBBLALN.js → InstallCommand-HETKQTOF.js} +21 -18
  7. package/build/{InstallCommand-4YBBLALN.js.map → InstallCommand-HETKQTOF.js.map} +1 -1
  8. package/build/{LoginCommand-VYFNU5TA.js → LoginCommand-WCUDINVD.js} +17 -32
  9. package/build/LoginCommand-WCUDINVD.js.map +1 -0
  10. package/build/{LogoutCommand-W3YHFAZJ.js → LogoutCommand-LKLIYJ4J.js} +15 -16
  11. package/build/LogoutCommand-LKLIYJ4J.js.map +1 -0
  12. package/build/{PreviewCommand-YHAJGKV7.js → PreviewCommand-3BMR7D7L.js} +27 -24
  13. package/build/{PreviewCommand-YHAJGKV7.js.map → PreviewCommand-3BMR7D7L.js.map} +1 -1
  14. package/build/{PreviewCommand-N5QXU2FK.js → PreviewCommand-C4T25Z3E.js} +22 -19
  15. package/build/{PreviewCommand-N5QXU2FK.js.map → PreviewCommand-C4T25Z3E.js.map} +1 -1
  16. package/build/{PublishCommand-UJX7YSD7.js → PublishCommand-O5NP2HRQ.js} +24 -21
  17. package/build/{PublishCommand-UJX7YSD7.js.map → PublishCommand-O5NP2HRQ.js.map} +1 -1
  18. package/build/{UninstallCommand-WYZDNETD.js → UninstallCommand-CBFAJV2F.js} +21 -18
  19. package/build/{UninstallCommand-WYZDNETD.js.map → UninstallCommand-CBFAJV2F.js.map} +1 -1
  20. package/build/{WhoamiCommand-DXQH6HUP.js → WhoamiCommand-LPJGYXSP.js} +7 -17
  21. package/build/WhoamiCommand-LPJGYXSP.js.map +1 -0
  22. package/build/{chunk-OG7CQWH4.js → chunk-46OKYX3T.js} +3 -3
  23. package/build/{chunk-443UULTT.js → chunk-6VFQIFXS.js} +4 -4
  24. package/build/{chunk-ODUS243S.js → chunk-74KZJOZH.js} +12 -12
  25. package/build/{chunk-VTNVMBHW.js → chunk-7Y2EFSBJ.js} +6 -6
  26. package/build/{chunk-6YL4Z7HO.js → chunk-AGKBY3K2.js} +8 -7
  27. package/build/chunk-AGKBY3K2.js.map +1 -0
  28. package/build/chunk-AII5FZC2.js +2848 -0
  29. package/build/chunk-AII5FZC2.js.map +1 -0
  30. package/build/{chunk-HIY4FIRZ.js → chunk-APJVRHWV.js} +2 -2
  31. package/build/{chunk-7SBYWHZH.js → chunk-CJHPYBMK.js} +2 -2
  32. package/build/{chunk-D32EVRHZ.js → chunk-FTL2KYZQ.js} +2 -2
  33. package/build/chunk-GPEPI5XF.js +546 -0
  34. package/build/chunk-GPEPI5XF.js.map +1 -0
  35. package/build/{chunk-RTNNLCWK.js → chunk-GYIDIRSX.js} +2 -2
  36. package/build/{chunk-3TOIVPXU.js → chunk-J3OSZVAR.js} +3 -3
  37. package/build/{chunk-7HAKFVGI.js → chunk-JHHGNLIV.js} +2 -2
  38. package/build/{chunk-GMB4V5N6.js → chunk-JUZMIMAT.js} +2 -2
  39. package/build/chunk-K4AB7LGX.js +6548 -0
  40. package/build/chunk-K4AB7LGX.js.map +1 -0
  41. package/build/{chunk-EB5O7IPB.js → chunk-KT2FHEZR.js} +3 -3
  42. package/build/{chunk-D4OH4DMW.js → chunk-LUAAKCVP.js} +11 -11
  43. package/build/{chunk-ZB6FQ6GP.js → chunk-M3K72MEX.js} +6 -5
  44. package/build/{chunk-ZB6FQ6GP.js.map → chunk-M3K72MEX.js.map} +1 -1
  45. package/build/{chunk-TTMVSSSY.js → chunk-N4QBC52K.js} +3 -3
  46. package/build/{chunk-NN465VNN.js → chunk-NOH6CVSC.js} +5 -5
  47. package/build/{chunk-KUAMU72Z.js → chunk-NPVP6ZBL.js} +5 -3
  48. package/build/{chunk-KUAMU72Z.js.map → chunk-NPVP6ZBL.js.map} +1 -1
  49. package/build/{chunk-2F3TGHU3.js → chunk-O2XYQA7P.js} +4289 -6811
  50. package/build/chunk-O2XYQA7P.js.map +1 -0
  51. package/build/{chunk-PCN3DSXO.js → chunk-OVWRYWLC.js} +4 -4
  52. package/build/{chunk-VDEWNPZW.js → chunk-P5ZYMUV4.js} +4 -4
  53. package/build/{chunk-G4TMGKQZ.js → chunk-Q35JN7B7.js} +8 -6
  54. package/build/{chunk-G4TMGKQZ.js.map → chunk-Q35JN7B7.js.map} +1 -1
  55. package/build/{chunk-CZNH4NDF.js → chunk-QEBMMR2W.js} +2 -2
  56. package/build/{chunk-HJQ6N2XI.js → chunk-QQCYRUA6.js} +30 -12
  57. package/build/{chunk-HJQ6N2XI.js.map → chunk-QQCYRUA6.js.map} +1 -1
  58. package/build/{chunk-DZ6HYDXN.js → chunk-RA6PTMIG.js} +5 -5
  59. package/build/{chunk-AKNVJLMI.js → chunk-RVGOK65D.js} +11 -9
  60. package/build/{chunk-AKNVJLMI.js.map → chunk-RVGOK65D.js.map} +1 -1
  61. package/build/{chunk-LXW2RB2I.js → chunk-SO6EZMEL.js} +1 -538
  62. package/build/chunk-SO6EZMEL.js.map +1 -0
  63. package/build/{chunk-AWJBTSZB.js → chunk-T5F7W3A3.js} +7 -7
  64. package/build/{chunk-EDBFXDBA.js → chunk-UF2OSZ32.js} +10 -10
  65. package/build/{chunk-OKG3SHLM.js → chunk-UIA2B5XZ.js} +5 -5
  66. package/build/{chunk-3ESROA3O.js → chunk-UTFSE4KU.js} +3 -3
  67. package/build/{chunk-WCNBMDVW.js → chunk-XBFMXGMY.js} +2895 -9425
  68. package/build/chunk-XBFMXGMY.js.map +1 -0
  69. package/build/{chunk-LQK7FXRR.js → chunk-YMJB5UO3.js} +5 -5
  70. package/build/{chunk-YZNDZ4SI.js → chunk-Z4YQ7YWC.js} +3 -3
  71. package/build/{chunk-K5TRKVBA.js → chunk-Z7JQD6EN.js} +3 -3
  72. package/build/{dev-RGJBH6UG.js → dev-XNYFRZT2.js} +35 -32
  73. package/build/{dev-RGJBH6UG.js.map → dev-XNYFRZT2.js.map} +1 -1
  74. package/build/index.js +4461 -623
  75. package/build/index.js.map +1 -1
  76. package/build/{install-DWGSHW3J.js → install-T2VL2EW7.js} +24 -22
  77. package/build/{install-DWGSHW3J.js.map → install-T2VL2EW7.js.map} +1 -1
  78. package/build/{publish-AC7TTXOB.js → publish-X4C2MV4G.js} +29 -27
  79. package/build/{publish-AC7TTXOB.js.map → publish-X4C2MV4G.js.map} +1 -1
  80. package/build/{render-command-GUDTM4IQ.js → render-command-3IKISL4W.js} +15 -12
  81. package/build/{render-command-GUDTM4IQ.js.map → render-command-3IKISL4W.js.map} +1 -1
  82. package/build/{render-command-KGE4WNRS.js → render-command-6ZOFWK7J.js} +18 -15
  83. package/build/{render-command-KGE4WNRS.js.map → render-command-6ZOFWK7J.js.map} +1 -1
  84. package/build/{render-command-I2EZ5ZOY.js → render-command-TUP2HHMC.js} +13 -15
  85. package/build/render-command-TUP2HHMC.js.map +1 -0
  86. package/build/{render-command-IGB63PTD.js → render-command-XJNWHPDB.js} +18 -15
  87. package/build/{render-command-IGB63PTD.js.map → render-command-XJNWHPDB.js.map} +1 -1
  88. package/build/run-command-3YWR7KR7.js +21 -0
  89. package/build/src-5V4GOPPO.js +21 -0
  90. package/build/src-5V4GOPPO.js.map +1 -0
  91. package/build/{src-XY5XGVPA.js → src-BTBURERG.js} +16 -14
  92. package/build/{src-XY5XGVPA.js.map → src-BTBURERG.js.map} +1 -1
  93. package/build/{src-BAC3WGFQ.js → src-IM374B5V.js} +10 -8
  94. package/build/{src-QIYGDXHR.js → src-OISHTUJS.js} +11 -9
  95. package/build/{src-QIYGDXHR.js.map → src-OISHTUJS.js.map} +1 -1
  96. package/build/{src-PTVLFJGU.js → src-SRRWPZCM.js} +2 -2
  97. package/build/{src-NE5D32YX.js → src-WA6BLDHT.js} +4 -4
  98. package/build/{src-A6GUTLAP.js → src-XPBBV4BR.js} +19 -17
  99. package/build/{src-A6GUTLAP.js.map → src-XPBBV4BR.js.map} +1 -1
  100. package/build/sync-types-KIFWC5MO.js +32 -0
  101. package/build/{uninstall-MT6ZLKJY.js → uninstall-TTKVW5BW.js} +24 -22
  102. package/build/{uninstall-MT6ZLKJY.js.map → uninstall-TTKVW5BW.js.map} +1 -1
  103. package/package.json +5 -4
  104. package/build/LoginCommand-VYFNU5TA.js.map +0 -1
  105. package/build/LogoutCommand-W3YHFAZJ.js.map +0 -1
  106. package/build/WhoamiCommand-DXQH6HUP.js.map +0 -1
  107. package/build/chunk-2F3TGHU3.js.map +0 -1
  108. package/build/chunk-6YL4Z7HO.js.map +0 -1
  109. package/build/chunk-LXW2RB2I.js.map +0 -1
  110. package/build/chunk-WCNBMDVW.js.map +0 -1
  111. package/build/chunk-WYXNH6LH.js +0 -26
  112. package/build/chunk-WYXNH6LH.js.map +0 -1
  113. package/build/render-command-I2EZ5ZOY.js.map +0 -1
  114. package/build/run-command-TBCHFVR6.js +0 -20
  115. package/build/sync-types-KIRJNRVB.js +0 -30
  116. /package/build/{chunk-OG7CQWH4.js.map → chunk-46OKYX3T.js.map} +0 -0
  117. /package/build/{chunk-443UULTT.js.map → chunk-6VFQIFXS.js.map} +0 -0
  118. /package/build/{chunk-ODUS243S.js.map → chunk-74KZJOZH.js.map} +0 -0
  119. /package/build/{chunk-VTNVMBHW.js.map → chunk-7Y2EFSBJ.js.map} +0 -0
  120. /package/build/{chunk-HIY4FIRZ.js.map → chunk-APJVRHWV.js.map} +0 -0
  121. /package/build/{chunk-7SBYWHZH.js.map → chunk-CJHPYBMK.js.map} +0 -0
  122. /package/build/{chunk-D32EVRHZ.js.map → chunk-FTL2KYZQ.js.map} +0 -0
  123. /package/build/{chunk-RTNNLCWK.js.map → chunk-GYIDIRSX.js.map} +0 -0
  124. /package/build/{chunk-3TOIVPXU.js.map → chunk-J3OSZVAR.js.map} +0 -0
  125. /package/build/{chunk-7HAKFVGI.js.map → chunk-JHHGNLIV.js.map} +0 -0
  126. /package/build/{chunk-GMB4V5N6.js.map → chunk-JUZMIMAT.js.map} +0 -0
  127. /package/build/{chunk-EB5O7IPB.js.map → chunk-KT2FHEZR.js.map} +0 -0
  128. /package/build/{chunk-D4OH4DMW.js.map → chunk-LUAAKCVP.js.map} +0 -0
  129. /package/build/{chunk-TTMVSSSY.js.map → chunk-N4QBC52K.js.map} +0 -0
  130. /package/build/{chunk-NN465VNN.js.map → chunk-NOH6CVSC.js.map} +0 -0
  131. /package/build/{chunk-PCN3DSXO.js.map → chunk-OVWRYWLC.js.map} +0 -0
  132. /package/build/{chunk-VDEWNPZW.js.map → chunk-P5ZYMUV4.js.map} +0 -0
  133. /package/build/{chunk-CZNH4NDF.js.map → chunk-QEBMMR2W.js.map} +0 -0
  134. /package/build/{chunk-DZ6HYDXN.js.map → chunk-RA6PTMIG.js.map} +0 -0
  135. /package/build/{chunk-AWJBTSZB.js.map → chunk-T5F7W3A3.js.map} +0 -0
  136. /package/build/{chunk-EDBFXDBA.js.map → chunk-UF2OSZ32.js.map} +0 -0
  137. /package/build/{chunk-OKG3SHLM.js.map → chunk-UIA2B5XZ.js.map} +0 -0
  138. /package/build/{chunk-3ESROA3O.js.map → chunk-UTFSE4KU.js.map} +0 -0
  139. /package/build/{chunk-LQK7FXRR.js.map → chunk-YMJB5UO3.js.map} +0 -0
  140. /package/build/{chunk-YZNDZ4SI.js.map → chunk-Z4YQ7YWC.js.map} +0 -0
  141. /package/build/{chunk-K5TRKVBA.js.map → chunk-Z7JQD6EN.js.map} +0 -0
  142. /package/build/{run-command-TBCHFVR6.js.map → run-command-3YWR7KR7.js.map} +0 -0
  143. /package/build/{src-BAC3WGFQ.js.map → src-IM374B5V.js.map} +0 -0
  144. /package/build/{src-NE5D32YX.js.map → src-SRRWPZCM.js.map} +0 -0
  145. /package/build/{src-PTVLFJGU.js.map → src-WA6BLDHT.js.map} +0 -0
  146. /package/build/{sync-types-KIRJNRVB.js.map → sync-types-KIFWC5MO.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/void-elements/index.js","../../../node_modules/react-i18next/dist/es/Trans.js","../../../node_modules/react-i18next/dist/es/TransWithoutContext.js","../../../node_modules/html-parse-stringify/src/parse-tag.js","../../../node_modules/html-parse-stringify/src/parse.js","../../../node_modules/html-parse-stringify/src/stringify.js","../../../node_modules/html-parse-stringify/src/index.js","../../../node_modules/react-i18next/dist/es/utils.js","../../../node_modules/react-i18next/dist/es/defaults.js","../../../node_modules/react-i18next/dist/es/unescape.js","../../../node_modules/react-i18next/dist/es/i18nInstance.js","../../../node_modules/react-i18next/dist/es/context.js","../../../node_modules/react-i18next/dist/es/initReactI18next.js","../../../node_modules/react-i18next/dist/es/useTranslation.js","../../../node_modules/react-i18next/dist/es/index.js","../../../node_modules/react-i18next/dist/es/withTranslation.js","../../../node_modules/react-i18next/dist/es/Translation.js","../../../node_modules/react-i18next/dist/es/I18nextProvider.js","../../../node_modules/react-i18next/dist/es/withSSR.js","../../../node_modules/react-i18next/dist/es/useSSR.js","../../cli-i18n/src/I18nProvider.tsx","../../cli-i18n/src/create-i18n.ts","../../../node_modules/i18next-icu/dist/es/index.js","../../../node_modules/i18next-icu/dist/es/utils.js","../../../node_modules/intl-messageformat/lib/index.js","../../../node_modules/intl-messageformat/lib/src/core.js","../../../node_modules/@formatjs/fast-memoize/lib/index.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../../../node_modules/@formatjs/icu-skeleton-parser/lib/index.js","../../../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../../../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../../../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/manipulator.js","../../../node_modules/intl-messageformat/lib/src/formatters.js","../../../node_modules/intl-messageformat/lib/src/error.js","../../../node_modules/i18next/dist/esm/i18next.js","../../cli-i18n/src/index.ts"],"sourcesContent":["/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","import { useContext } from 'react';\nimport { nodesToString, Trans as TransWithoutContext } from './TransWithoutContext.js';\nimport { getI18n, I18nContext } from './context.js';\nexport { nodesToString };\nexport function Trans({\n children,\n count,\n parent,\n i18nKey,\n context,\n tOptions = {},\n values,\n defaults,\n components,\n ns,\n i18n: i18nFromProps,\n t: tFromProps,\n shouldUnescape,\n ...additionalProps\n}) {\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n const t = tFromProps || i18n?.t.bind(i18n);\n return TransWithoutContext({\n children,\n count,\n parent,\n i18nKey,\n context,\n tOptions,\n values,\n defaults,\n components,\n ns: ns || t?.ns || defaultNSFromContext || i18n?.options?.defaultNS,\n i18n,\n t: tFromProps,\n shouldUnescape,\n ...additionalProps\n });\n}","import { Fragment, isValidElement, cloneElement, createElement, Children } from 'react';\nimport HTML from 'html-parse-stringify';\nimport { isObject, isString, warn, warnOnce } from './utils.js';\nimport { getDefaults } from './defaults.js';\nimport { getI18n } from './i18nInstance.js';\nconst hasChildren = (node, checkLength) => {\n if (!node) return false;\n const base = node.props?.children ?? node.children;\n if (checkLength) return base.length > 0;\n return !!base;\n};\nconst getChildren = node => {\n if (!node) return [];\n const children = node.props?.children ?? node.children;\n return node.props?.i18nIsDynamicList ? getAsArray(children) : children;\n};\nconst hasValidReactChildren = children => Array.isArray(children) && children.every(isValidElement);\nconst getAsArray = data => Array.isArray(data) ? data : [data];\nconst mergeProps = (source, target) => {\n const newTarget = {\n ...target\n };\n newTarget.props = Object.assign(source.props, target.props);\n return newTarget;\n};\nexport const nodesToString = (children, i18nOptions, i18n, i18nKey) => {\n if (!children) return '';\n let stringNode = '';\n const childrenArray = getAsArray(children);\n const keepArray = i18nOptions?.transSupportBasicHtmlNodes ? i18nOptions.transKeepBasicHtmlNodesFor ?? [] : [];\n childrenArray.forEach((child, childIndex) => {\n if (isString(child)) {\n stringNode += `${child}`;\n return;\n }\n if (isValidElement(child)) {\n const {\n props,\n type\n } = child;\n const childPropsCount = Object.keys(props).length;\n const shouldKeepChild = keepArray.indexOf(type) > -1;\n const childChildren = props.children;\n if (!childChildren && shouldKeepChild && !childPropsCount) {\n stringNode += `<${type}/>`;\n return;\n }\n if (!childChildren && (!shouldKeepChild || childPropsCount) || props.i18nIsDynamicList) {\n stringNode += `<${childIndex}></${childIndex}>`;\n return;\n }\n if (shouldKeepChild && childPropsCount === 1 && isString(childChildren)) {\n stringNode += `<${type}>${childChildren}</${type}>`;\n return;\n }\n const content = nodesToString(childChildren, i18nOptions, i18n, i18nKey);\n stringNode += `<${childIndex}>${content}</${childIndex}>`;\n return;\n }\n if (child === null) {\n warn(i18n, 'TRANS_NULL_VALUE', `Passed in a null value as child`, {\n i18nKey\n });\n return;\n }\n if (isObject(child)) {\n const {\n format,\n ...clone\n } = child;\n const keys = Object.keys(clone);\n if (keys.length === 1) {\n const value = format ? `${keys[0]}, ${format}` : keys[0];\n stringNode += `{{${value}}}`;\n return;\n }\n warn(i18n, 'TRANS_INVALID_OBJ', `Invalid child - Object should only have keys {{ value, format }} (format is optional).`, {\n i18nKey,\n child\n });\n return;\n }\n warn(i18n, 'TRANS_INVALID_VAR', `Passed in a variable like {number} - pass variables for interpolation as full objects like {{number}}.`, {\n i18nKey,\n child\n });\n });\n return stringNode;\n};\nconst renderNodes = (children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) => {\n if (targetString === '') return [];\n const keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n const emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.map(keep => `<${keep}`).join('|')).test(targetString);\n if (!children && !emptyChildrenButNeedsHandling && !shouldUnescape) return [targetString];\n const data = {};\n const getData = childs => {\n const childrenArray = getAsArray(childs);\n childrenArray.forEach(child => {\n if (isString(child)) return;\n if (hasChildren(child)) getData(getChildren(child));else if (isObject(child) && !isValidElement(child)) Object.assign(data, child);\n });\n };\n getData(children);\n const ast = HTML.parse(`<0>${targetString}</0>`);\n const opts = {\n ...data,\n ...combinedTOpts\n };\n const renderInner = (child, node, rootReactNode) => {\n const childs = getChildren(child);\n const mappedChildren = mapAST(childs, node.children, rootReactNode);\n return hasValidReactChildren(childs) && mappedChildren.length === 0 || child.props?.i18nIsDynamicList ? childs : mappedChildren;\n };\n const pushTranslatedJSX = (child, inner, mem, i, isVoid) => {\n if (child.dummy) {\n child.children = inner;\n mem.push(cloneElement(child, {\n key: i\n }, isVoid ? undefined : inner));\n } else {\n mem.push(...Children.map([child], c => {\n const props = {\n ...c.props\n };\n delete props.i18nIsDynamicList;\n return createElement(c.type, {\n ...props,\n key: i,\n ref: c.ref\n }, isVoid ? null : inner);\n }));\n }\n };\n const mapAST = (reactNode, astNode, rootReactNode) => {\n const reactNodes = getAsArray(reactNode);\n const astNodes = getAsArray(astNode);\n return astNodes.reduce((mem, node, i) => {\n const translationContent = node.children?.[0]?.content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);\n if (node.type === 'tag') {\n let tmp = reactNodes[parseInt(node.name, 10)];\n if (rootReactNode.length === 1 && !tmp) tmp = rootReactNode[0][node.name];\n if (!tmp) tmp = {};\n const child = Object.keys(node.attrs).length !== 0 ? mergeProps({\n props: node.attrs\n }, tmp) : tmp;\n const isElement = isValidElement(child);\n const isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;\n const isEmptyTransWithHTML = emptyChildrenButNeedsHandling && isObject(child) && child.dummy && !isElement;\n const isKnownComponent = isObject(children) && Object.hasOwnProperty.call(children, node.name);\n if (isString(child)) {\n const value = i18n.services.interpolator.interpolate(child, opts, i18n.language);\n mem.push(value);\n } else if (hasChildren(child) || isValidTranslationWithChildren) {\n const inner = renderInner(child, node, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i);\n } else if (isEmptyTransWithHTML) {\n const inner = mapAST(reactNodes, node.children, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i);\n } else if (Number.isNaN(parseFloat(node.name))) {\n if (isKnownComponent) {\n const inner = renderInner(child, node, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i, node.voidElement);\n } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {\n if (node.voidElement) {\n mem.push(createElement(node.name, {\n key: `${node.name}-${i}`\n }));\n } else {\n const inner = mapAST(reactNodes, node.children, rootReactNode);\n mem.push(createElement(node.name, {\n key: `${node.name}-${i}`\n }, inner));\n }\n } else if (node.voidElement) {\n mem.push(`<${node.name} />`);\n } else {\n const inner = mapAST(reactNodes, node.children, rootReactNode);\n mem.push(`<${node.name}>${inner}</${node.name}>`);\n }\n } else if (isObject(child) && !isElement) {\n const content = node.children[0] ? translationContent : null;\n if (content) mem.push(content);\n } else {\n pushTranslatedJSX(child, translationContent, mem, i, node.children.length !== 1 || !translationContent);\n }\n } else if (node.type === 'text') {\n const wrapTextNodes = i18nOptions.transWrapTextNodes;\n const content = shouldUnescape ? i18nOptions.unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);\n if (wrapTextNodes) {\n mem.push(createElement(wrapTextNodes, {\n key: `${node.name}-${i}`\n }, content));\n } else {\n mem.push(content);\n }\n }\n return mem;\n }, []);\n };\n const result = mapAST([{\n dummy: true,\n children: children || []\n }], ast, getAsArray(children || []));\n return getChildren(result[0]);\n};\nconst fixComponentProps = (component, index, translation) => {\n const componentKey = component.key || index;\n const comp = cloneElement(component, {\n key: componentKey\n });\n if (!comp.props || !comp.props.children || translation.indexOf(`${index}/>`) < 0 && translation.indexOf(`${index} />`) < 0) {\n return comp;\n }\n function Componentized() {\n return createElement(Fragment, null, comp);\n }\n return createElement(Componentized, {\n key: componentKey\n });\n};\nconst generateArrayComponents = (components, translation) => components.map((c, index) => fixComponentProps(c, index, translation));\nconst generateObjectComponents = (components, translation) => {\n const componentMap = {};\n Object.keys(components).forEach(c => {\n Object.assign(componentMap, {\n [c]: fixComponentProps(components[c], c, translation)\n });\n });\n return componentMap;\n};\nconst generateComponents = (components, translation, i18n, i18nKey) => {\n if (!components) return null;\n if (Array.isArray(components)) {\n return generateArrayComponents(components, translation);\n }\n if (isObject(components)) {\n return generateObjectComponents(components, translation);\n }\n warnOnce(i18n, 'TRANS_INVALID_COMPONENTS', `<Trans /> \"components\" prop expects an object or array`, {\n i18nKey\n });\n return null;\n};\nexport function Trans({\n children,\n count,\n parent,\n i18nKey,\n context,\n tOptions = {},\n values,\n defaults,\n components,\n ns,\n i18n: i18nFromProps,\n t: tFromProps,\n shouldUnescape,\n ...additionalProps\n}) {\n const i18n = i18nFromProps || getI18n();\n if (!i18n) {\n warnOnce(i18n, 'NO_I18NEXT_INSTANCE', `Trans: You need to pass in an i18next instance using i18nextReactModule`, {\n i18nKey\n });\n return children;\n }\n const t = tFromProps || i18n.t.bind(i18n) || (k => k);\n const reactI18nextOptions = {\n ...getDefaults(),\n ...i18n.options?.react\n };\n let namespaces = ns || t.ns || i18n.options?.defaultNS;\n namespaces = isString(namespaces) ? [namespaces] : namespaces || ['translation'];\n const nodeAsString = nodesToString(children, reactI18nextOptions, i18n, i18nKey);\n const defaultValue = defaults || nodeAsString || reactI18nextOptions.transEmptyNodeValue || i18nKey;\n const {\n hashTransKey\n } = reactI18nextOptions;\n const key = i18nKey || (hashTransKey ? hashTransKey(nodeAsString || defaultValue) : nodeAsString || defaultValue);\n if (i18n.options?.interpolation?.defaultVariables) {\n values = values && Object.keys(values).length > 0 ? {\n ...values,\n ...i18n.options.interpolation.defaultVariables\n } : {\n ...i18n.options.interpolation.defaultVariables\n };\n }\n const interpolationOverride = values || count !== undefined && !i18n.options?.interpolation?.alwaysFormat || !children ? tOptions.interpolation : {\n interpolation: {\n ...tOptions.interpolation,\n prefix: '#$?',\n suffix: '?$#'\n }\n };\n const combinedTOpts = {\n ...tOptions,\n context: context || tOptions.context,\n count,\n ...values,\n ...interpolationOverride,\n defaultValue,\n ns: namespaces\n };\n const translation = key ? t(key, combinedTOpts) : defaultValue;\n const generatedComponents = generateComponents(components, translation, i18n, i18nKey);\n const content = renderNodes(generatedComponents || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape);\n const useAsParent = parent ?? reactI18nextOptions.defaultTransParent;\n return useAsParent ? createElement(useAsParent, additionalProps, content) : content;\n}","import lookup from 'void-elements'\nconst attrRE = /\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g\n\nexport default function stringify(tag) {\n const res = {\n type: 'tag',\n name: '',\n voidElement: false,\n attrs: {},\n children: [],\n }\n\n const tagMatch = tag.match(/<\\/?([^\\s]+?)[/\\s>]/)\n if (tagMatch) {\n res.name = tagMatch[1]\n if (\n lookup[tagMatch[1]] ||\n tag.charAt(tag.length - 2) === '/'\n ) {\n res.voidElement = true\n }\n\n // handle comment tag\n if (res.name.startsWith('!--')) {\n const endIndex = tag.indexOf('-->')\n return {\n type: 'comment',\n comment: endIndex !== -1 ? tag.slice(4, endIndex) : '',\n }\n }\n }\n\n const reg = new RegExp(attrRE)\n let result = null\n for (;;) {\n result = reg.exec(tag)\n\n if (result === null) {\n break\n }\n\n if (!result[0].trim()) {\n continue\n }\n\n if (result[1]) {\n const attr = result[1].trim()\n let arr = [attr, '']\n\n if (attr.indexOf('=') > -1) {\n arr = attr.split('=')\n }\n\n res.attrs[arr[0]] = arr[1]\n reg.lastIndex--\n } else if (result[2]) {\n res.attrs[result[2]] = result[3].trim().substring(1, result[3].length - 1)\n }\n }\n\n return res\n}\n","import parseTag from './parse-tag'\n\nconst tagRE = /<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g\nconst whitespaceRE = /^\\s*$/\n\n// re-used obj for quick lookups of components\nconst empty = Object.create(null)\n\nexport default function parse(html, options) {\n options || (options = {})\n options.components || (options.components = empty)\n const result = []\n const arr = []\n let current\n let level = -1\n let inComponent = false\n\n // handle text at top level\n if (html.indexOf('<') !== 0) {\n var end = html.indexOf('<')\n result.push({\n type: 'text',\n content: end === -1 ? html : html.substring(0, end),\n })\n }\n\n html.replace(tagRE, function (tag, index) {\n if (inComponent) {\n if (tag !== '</' + current.name + '>') {\n return\n } else {\n inComponent = false\n }\n }\n const isOpen = tag.charAt(1) !== '/'\n const isComment = tag.startsWith('<!--')\n const start = index + tag.length\n const nextChar = html.charAt(start)\n let parent\n\n if (isComment) {\n const comment = parseTag(tag)\n\n // if we're at root, push new base node\n if (level < 0) {\n result.push(comment)\n return result\n }\n parent = arr[level]\n parent.children.push(comment)\n return result\n }\n\n if (isOpen) {\n level++\n\n current = parseTag(tag)\n if (current.type === 'tag' && options.components[current.name]) {\n current.type = 'component'\n inComponent = true\n }\n\n if (\n !current.voidElement &&\n !inComponent &&\n nextChar &&\n nextChar !== '<'\n ) {\n current.children.push({\n type: 'text',\n content: html.slice(start, html.indexOf('<', start)),\n })\n }\n\n // if we're at root, push new base node\n if (level === 0) {\n result.push(current)\n }\n\n parent = arr[level - 1]\n\n if (parent) {\n parent.children.push(current)\n }\n\n arr[level] = current\n }\n\n if (!isOpen || current.voidElement) {\n if (\n level > -1 &&\n (current.voidElement || current.name === tag.slice(2, -1))\n ) {\n level--\n // move current up a level to match the end tag\n current = level === -1 ? result : arr[level]\n }\n if (!inComponent && nextChar !== '<' && nextChar) {\n // trailing text node\n // if we're at the root, push a base text node. otherwise add as\n // a child to the current node.\n parent = level === -1 ? result : arr[level].children\n\n // calculate correct end of the content slice in case there's\n // no tag after the text node.\n const end = html.indexOf('<', start)\n let content = html.slice(start, end === -1 ? undefined : end)\n // if a node is nothing but whitespace, collapse it as the spec states:\n // https://www.w3.org/TR/html4/struct/text.html#h-9.1\n if (whitespaceRE.test(content)) {\n content = ' '\n }\n // don't add whitespace-only text nodes if they would be trailing text nodes\n // or if they would be leading whitespace-only text nodes:\n // * end > -1 indicates this is not a trailing text node\n // * leading node is when level is -1 and parent has length 0\n if ((end > -1 && level + parent.length >= 0) || content !== ' ') {\n parent.push({\n type: 'text',\n content: content,\n })\n }\n }\n }\n })\n\n return result\n}\n","function attrString(attrs) {\n const buff = []\n for (let key in attrs) {\n buff.push(key + '=\"' + attrs[key] + '\"')\n }\n if (!buff.length) {\n return ''\n }\n return ' ' + buff.join(' ')\n}\n\nfunction stringify(buff, doc) {\n switch (doc.type) {\n case 'text':\n return buff + doc.content\n case 'tag':\n buff +=\n '<' +\n doc.name +\n (doc.attrs ? attrString(doc.attrs) : '') +\n (doc.voidElement ? '/>' : '>')\n if (doc.voidElement) {\n return buff\n }\n return buff + doc.children.reduce(stringify, '') + '</' + doc.name + '>'\n case 'comment':\n buff += '<!--' + doc.comment + '-->'\n return buff\n }\n}\n\nexport default function (doc) {\n return doc.reduce(function (token, rootEl) {\n return token + stringify('', rootEl)\n }, '')\n}\n","import parse from './parse'\nimport stringify from './stringify'\n\nexport default {\n parse,\n stringify,\n}\n","export const warn = (i18n, code, msg, rest) => {\n const args = [msg, {\n code,\n ...(rest || {})\n }];\n if (i18n?.services?.logger?.forward) {\n return i18n.services.logger.forward(args, 'warn', 'react-i18next::', true);\n }\n if (isString(args[0])) args[0] = `react-i18next:: ${args[0]}`;\n if (i18n?.services?.logger?.warn) {\n i18n.services.logger.warn(...args);\n } else if (console?.warn) {\n console.warn(...args);\n }\n};\nconst alreadyWarned = {};\nexport const warnOnce = (i18n, code, msg, rest) => {\n if (isString(msg) && alreadyWarned[msg]) return;\n if (isString(msg)) alreadyWarned[msg] = new Date();\n warn(i18n, code, msg, rest);\n};\nconst loadedClb = (i18n, cb) => () => {\n if (i18n.isInitialized) {\n cb();\n } else {\n const initialized = () => {\n setTimeout(() => {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n i18n.on('initialized', initialized);\n }\n};\nexport const loadNamespaces = (i18n, ns, cb) => {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n};\nexport const loadLanguages = (i18n, lng, ns, cb) => {\n if (isString(ns)) ns = [ns];\n if (i18n.options.preload && i18n.options.preload.indexOf(lng) > -1) return loadNamespaces(i18n, ns, cb);\n ns.forEach(n => {\n if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n });\n i18n.loadLanguages(lng, loadedClb(i18n, cb));\n};\nexport const hasLoadedNamespace = (ns, i18n, options = {}) => {\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce(i18n, 'NO_LANGUAGES', 'i18n.languages were undefined or empty', {\n languages: i18n.languages\n });\n return true;\n }\n return i18n.hasLoadedNamespace(ns, {\n lng: options.lng,\n precheck: (i18nInstance, loadNotPending) => {\n if (options.bindI18n?.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n};\nexport const getDisplayName = Component => Component.displayName || Component.name || (isString(Component) && Component.length > 0 ? Component : 'Unknown');\nexport const isString = obj => typeof obj === 'string';\nexport const isObject = obj => typeof obj === 'object' && obj !== null;","import { unescape } from './unescape.js';\nlet defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape\n};\nexport const setDefaults = (options = {}) => {\n defaultOptions = {\n ...defaultOptions,\n ...options\n };\n};\nexport const getDefaults = () => defaultOptions;","const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nconst htmlEntities = {\n '&amp;': '&',\n '&#38;': '&',\n '&lt;': '<',\n '&#60;': '<',\n '&gt;': '>',\n '&#62;': '>',\n '&apos;': \"'\",\n '&#39;': \"'\",\n '&quot;': '\"',\n '&#34;': '\"',\n '&nbsp;': ' ',\n '&#160;': ' ',\n '&copy;': '©',\n '&#169;': '©',\n '&reg;': '®',\n '&#174;': '®',\n '&hellip;': '…',\n '&#8230;': '…',\n '&#x2F;': '/',\n '&#47;': '/'\n};\nconst unescapeHtmlEntity = m => htmlEntities[m];\nexport const unescape = text => text.replace(matchHtmlEntity, unescapeHtmlEntity);","let i18nInstance;\nexport const setI18n = instance => {\n i18nInstance = instance;\n};\nexport const getI18n = () => i18nInstance;","import { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport const I18nContext = createContext();\nexport class ReportNamespaces {\n constructor() {\n this.usedNamespaces = {};\n }\n addUsedNamespaces(namespaces) {\n namespaces.forEach(ns => {\n if (!this.usedNamespaces[ns]) this.usedNamespaces[ns] = true;\n });\n }\n getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n}\nexport const composeInitialProps = ForComponent => async ctx => {\n const componentsInitialProps = (await ForComponent.getInitialProps?.(ctx)) ?? {};\n const i18nInitialProps = getInitialProps();\n return {\n ...componentsInitialProps,\n ...i18nInitialProps\n };\n};\nexport const getInitialProps = () => {\n const i18n = getI18n();\n const namespaces = i18n.reportNamespaces?.getUsedNamespaces() ?? [];\n const ret = {};\n const initialI18nStore = {};\n i18n.languages.forEach(l => {\n initialI18nStore[l] = {};\n namespaces.forEach(ns => {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n};","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport const initReactI18next = {\n type: '3rdParty',\n init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","import { useState, useEffect, useContext, useRef, useCallback } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace, isString, isObject } from './utils.js';\nconst usePrevious = (value, ignore) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\nconst alwaysNewT = (i18n, language, namespace, keyPrefix) => i18n.getFixedT(language, namespace, keyPrefix);\nconst useMemoizedT = (i18n, language, namespace, keyPrefix) => useCallback(alwaysNewT(i18n, language, namespace, keyPrefix), [i18n, language, namespace, keyPrefix]);\nexport const useTranslation = (ns, props = {}) => {\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n if (!i18n) {\n warnOnce(i18n, 'NO_I18NEXT_INSTANCE', 'useTranslation: You will need to pass in an i18next instance by using initReactI18next');\n const notReadyT = (k, optsOrDefaultValue) => {\n if (isString(optsOrDefaultValue)) return optsOrDefaultValue;\n if (isObject(optsOrDefaultValue) && isString(optsOrDefaultValue.defaultValue)) return optsOrDefaultValue.defaultValue;\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n const retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n if (i18n.options.react?.wait) warnOnce(i18n, 'DEPRECATED_OPTION', 'useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n const i18nOptions = {\n ...getDefaults(),\n ...i18n.options.react,\n ...props\n };\n const {\n useSuspense,\n keyPrefix\n } = i18nOptions;\n let namespaces = ns || defaultNSFromContext || i18n.options?.defaultNS;\n namespaces = isString(namespaces) ? [namespaces] : namespaces || ['translation'];\n i18n.reportNamespaces.addUsedNamespaces?.(namespaces);\n const ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(n => hasLoadedNamespace(n, i18n, i18nOptions));\n const memoGetT = useMemoizedT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const getT = () => memoGetT;\n const getNewT = () => alwaysNewT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const [t, setT] = useState(getT);\n let joinedNS = namespaces.join();\n if (props.lng) joinedNS = `${props.lng}${joinedNS}`;\n const previousJoinedNS = usePrevious(joinedNS);\n const isMounted = useRef(true);\n useEffect(() => {\n const {\n bindI18n,\n bindI18nStore\n } = i18nOptions;\n isMounted.current = true;\n if (!ready && !useSuspense) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n } else {\n loadNamespaces(i18n, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n }\n }\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getNewT);\n }\n const boundReset = () => {\n if (isMounted.current) setT(getNewT);\n };\n if (bindI18n) i18n?.on(bindI18n, boundReset);\n if (bindI18nStore) i18n?.store.on(bindI18nStore, boundReset);\n return () => {\n isMounted.current = false;\n if (i18n) bindI18n?.split(' ').forEach(e => i18n.off(e, boundReset));\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(e => i18n.store.off(e, boundReset));\n };\n }, [i18n, joinedNS]);\n useEffect(() => {\n if (isMounted.current && ready) {\n setT(getT);\n }\n }, [i18n, keyPrefix, ready]);\n const ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(resolve => {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => resolve());\n } else {\n loadNamespaces(i18n, namespaces, () => resolve());\n }\n });\n};","export { Trans } from './Trans.js';\nexport { Trans as TransWithoutContext } from './TransWithoutContext.js';\nexport { useTranslation } from './useTranslation.js';\nexport { withTranslation } from './withTranslation.js';\nexport { Translation } from './Translation.js';\nexport { I18nextProvider } from './I18nextProvider.js';\nexport { withSSR } from './withSSR.js';\nexport { useSSR } from './useSSR.js';\nexport { initReactI18next } from './initReactI18next.js';\nexport { setDefaults, getDefaults } from './defaults.js';\nexport { setI18n, getI18n } from './i18nInstance.js';\nexport { I18nContext, composeInitialProps, getInitialProps } from './context.js';\nexport const date = () => '';\nexport const time = () => '';\nexport const number = () => '';\nexport const select = () => '';\nexport const plural = () => '';\nexport const selectOrdinal = () => '';","import { createElement, forwardRef as forwardRefReact } from 'react';\nimport { useTranslation } from './useTranslation.js';\nimport { getDisplayName } from './utils.js';\nexport const withTranslation = (ns, options = {}) => function Extend(WrappedComponent) {\n function I18nextWithTranslation({\n forwardedRef,\n ...rest\n }) {\n const [t, i18n, ready] = useTranslation(ns, {\n ...rest,\n keyPrefix: options.keyPrefix\n });\n const passDownProps = {\n ...rest,\n t,\n i18n,\n tReady: ready\n };\n if (options.withRef && forwardedRef) {\n passDownProps.ref = forwardedRef;\n } else if (!options.withRef && forwardedRef) {\n passDownProps.forwardedRef = forwardedRef;\n }\n return createElement(WrappedComponent, passDownProps);\n }\n I18nextWithTranslation.displayName = `withI18nextTranslation(${getDisplayName(WrappedComponent)})`;\n I18nextWithTranslation.WrappedComponent = WrappedComponent;\n const forwardRef = (props, ref) => createElement(I18nextWithTranslation, Object.assign({}, props, {\n forwardedRef: ref\n }));\n return options.withRef ? forwardRefReact(forwardRef) : I18nextWithTranslation;\n};","import { useTranslation } from './useTranslation.js';\nexport const Translation = ({\n ns,\n children,\n ...options\n}) => {\n const [t, i18n, ready] = useTranslation(ns, options);\n return children(t, {\n i18n,\n lng: i18n.language\n }, ready);\n};","import { createElement, useMemo } from 'react';\nimport { I18nContext } from './context.js';\nexport function I18nextProvider({\n i18n,\n defaultNS,\n children\n}) {\n const value = useMemo(() => ({\n i18n,\n defaultNS\n }), [i18n, defaultNS]);\n return createElement(I18nContext.Provider, {\n value\n }, children);\n}","import { createElement } from 'react';\nimport { useSSR } from './useSSR.js';\nimport { composeInitialProps } from './context.js';\nimport { getDisplayName } from './utils.js';\nexport const withSSR = () => function Extend(WrappedComponent) {\n function I18nextWithSSR({\n initialI18nStore,\n initialLanguage,\n ...rest\n }) {\n useSSR(initialI18nStore, initialLanguage);\n return createElement(WrappedComponent, {\n ...rest\n });\n }\n I18nextWithSSR.getInitialProps = composeInitialProps(WrappedComponent);\n I18nextWithSSR.displayName = `withI18nextSSR(${getDisplayName(WrappedComponent)})`;\n I18nextWithSSR.WrappedComponent = WrappedComponent;\n return I18nextWithSSR;\n};","import { useContext } from 'react';\nimport { getI18n, I18nContext } from './context.js';\nexport const useSSR = (initialI18nStore, initialLanguage, props = {}) => {\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n.options?.isClone) return;\n if (initialI18nStore && !i18n.initializedStoreOnce) {\n i18n.services.resourceStore.data = initialI18nStore;\n i18n.options.ns = Object.values(initialI18nStore).reduce((mem, lngResources) => {\n Object.keys(lngResources).forEach(ns => {\n if (mem.indexOf(ns) < 0) mem.push(ns);\n });\n return mem;\n }, i18n.options.ns);\n i18n.initializedStoreOnce = true;\n i18n.isInitialized = true;\n }\n if (initialLanguage && !i18n.initializedLanguageOnce) {\n i18n.changeLanguage(initialLanguage);\n i18n.initializedLanguageOnce = true;\n }\n};","import React, { useState } from 'react';\nimport type { FC, ReactNode } from 'react';\nimport type { i18n } from 'i18next';\nimport { I18nextProvider } from 'react-i18next';\nimport { createI18n } from './create-i18n.js';\n\ninterface PropsWithMessages {\n children: ReactNode;\n messages: Record<string, string>;\n i18n?: never;\n}\n\ninterface PropsWithI18n {\n children: ReactNode;\n i18n: i18n;\n messages?: never;\n}\n\nexport const I18nProvider: FC<PropsWithMessages | PropsWithI18n> = ({\n children,\n messages,\n i18n: initialI18n,\n}) => {\n const [i18n] = useState(() => initialI18n ?? createI18n(messages));\n\n return <I18nextProvider i18n={i18n}>{children}</I18nextProvider>;\n};\n","import ICU from 'i18next-icu';\nimport type { InitOptions } from 'i18next';\nimport i18next from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport { Text } from '@wix/cli-ui-kit';\n\nexport function createI18n(messages: Record<string, string>) {\n const config: InitOptions = {\n lng: 'en',\n resources: { en: { translation: messages } },\n keySeparator: false,\n react: {\n // @ts-expect-error - missing type\n defaultTransParent: Text,\n },\n };\n\n const icu = new ICU();\n const i18nInstance = i18next.createInstance(config);\n i18nInstance.use(icu);\n i18nInstance.use(initReactI18next);\n\n void i18nInstance.init();\n\n return i18nInstance;\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport * as utils from './utils.js';\nimport IntlMessageFormat from 'intl-messageformat';\n\nfunction getDefaults() {\n return {\n memoize: true,\n memoizeFallback: false,\n bindI18n: '',\n bindI18nStore: '',\n parseErrorHandler: function parseErrorHandler(err, key, res, options) {\n return res;\n },\n parseLngForICU: function parseLngForICU(lng) {\n return lng;\n }\n };\n}\n\nvar ICU = /*#__PURE__*/function () {\n function ICU(options) {\n _classCallCheck(this, ICU);\n\n this.type = 'i18nFormat';\n this.mem = {};\n this.init(null, options);\n }\n\n _createClass(ICU, [{\n key: \"init\",\n value: function init(i18next, options) {\n var _this = this;\n\n var i18nextOptions = i18next && i18next.options && i18next.options.i18nFormat || {};\n this.options = utils.defaults(i18nextOptions, options, this.options || {}, getDefaults());\n this.formats = this.options.formats;\n\n if (i18next) {\n var _this$options = this.options,\n bindI18n = _this$options.bindI18n,\n bindI18nStore = _this$options.bindI18nStore,\n memoize = _this$options.memoize;\n i18next.IntlMessageFormat = IntlMessageFormat;\n i18next.ICU = this;\n\n if (memoize) {\n if (bindI18n) {\n i18next.on(bindI18n, function () {\n return _this.clearCache();\n });\n }\n\n if (bindI18nStore) {\n i18next.store.on(bindI18nStore, function () {\n return _this.clearCache();\n });\n }\n }\n }\n }\n }, {\n key: \"addUserDefinedFormats\",\n value: function addUserDefinedFormats(formats) {\n this.formats = this.formats ? _objectSpread(_objectSpread({}, this.formats), formats) : formats;\n }\n }, {\n key: \"parse\",\n value: function parse(res, options, lng, ns, key, info) {\n var hadSuccessfulLookup = info && info.resolved && info.resolved.res;\n var memKey = this.options.memoize && \"\".concat(lng, \".\").concat(ns, \".\").concat(key.replace(/\\./g, '###'));\n var fc;\n\n if (this.options.memoize) {\n fc = utils.getPath(this.mem, memKey);\n }\n\n try {\n if (!fc) {\n var transformedLng = this.options.parseLngForICU(lng); // without ignoreTag, react-i18next <Trans> translations with <0></0> placeholders\n // will fail to parse, as IntlMessageFormat expects them to be defined in the\n // options passed to fc.format() as { 0: (children) => string }\n // but the replacement of placeholders is done in react-i18next\n\n fc = new IntlMessageFormat(res, transformedLng, this.formats, {\n ignoreTag: true\n });\n if (this.options.memoize && (this.options.memoizeFallback || !info || hadSuccessfulLookup)) utils.setPath(this.mem, memKey, fc);\n }\n\n return fc.format(options);\n } catch (err) {\n return this.options.parseErrorHandler(err, key, res, options);\n }\n }\n }, {\n key: \"addLookupKeys\",\n value: function addLookupKeys(finalKeys, _key, _code, _ns, _options) {\n // no additional keys needed for select or plural\n // so there is no need to add keys to that finalKeys array\n return finalKeys;\n }\n }, {\n key: \"clearCache\",\n value: function clearCache() {\n this.mem = {};\n }\n }]);\n\n return ICU;\n}();\n\nICU.type = 'i18nFormat';\nexport default ICU;","function getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n object = object[key];\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nexport function setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nexport function pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nexport function getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function extend(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { IntlMessageFormat } from './src/core';\nexport * from './src/core';\nexport * from './src/error';\nexport * from './src/formatters';\nexport { IntlMessageFormat };\nexport default IntlMessageFormat;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { parse, } from '@formatjs/icu-messageformat-parser';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n var _this = this;\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () {\n var _a;\n return ({\n locale: ((_a = _this.resolvedLocale) === null || _a === void 0 ? void 0 : _a.toString()) ||\n Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n });\n };\n this.getAst = function () { return _this.ast; };\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n var _a = opts || {}, formatters = _a.formatters, parseOpts = __rest(_a, [\"formatters\"]);\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, __assign(__assign({}, parseOpts), { locale: this.resolvedLocale }));\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.resolveLocale = function (locales) {\n if (typeof Intl.Locale === 'undefined') {\n return;\n }\n var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n if (supportedLocales.length > 0) {\n return new Intl.Locale(supportedLocales[0]);\n }\n return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n };\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","//\n// Main\n//\nexport function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nvar ObjectWithoutPrototypeCache = /** @class */ (function () {\n function ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n }\n ObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n };\n ObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n };\n return ObjectWithoutPrototypeCache;\n}());\nvar cacheDefault = {\n create: function create() {\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n// only for testing\nexport var _Parser = Parser;\nexport { isStructurallySame } from './manipulator';\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `<bold!>foo</bold!>) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo</123>`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `<bold>foo</italic>`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `<bold>foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith && '_a'.startsWith('a', 1);\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.locale = options.locale;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"</\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('</')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var dateTimePattern = skeleton;\n // Get \"best match\" pattern only if locale is passed, if not, let it\n // pass as-is where `parseDateTimeSkeleton()` will throw an error\n // for unsupported patterns.\n if (this.locale) {\n dateTimePattern = getBestPattern(skeleton, this.locale);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: dateTimePattern,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(dateTimePattern)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","export * from './date-time';\nexport * from './number';\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: milliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n case 'rounding-mode-floor':\n result.roundingMode = 'floor';\n continue;\n case 'rounding-mode-ceiling':\n result.roundingMode = 'ceil';\n continue;\n case 'rounding-mode-down':\n result.roundingMode = 'trunc';\n continue;\n case 'rounding-mode-up':\n result.roundingMode = 'expand';\n continue;\n case 'rounding-mode-half-even':\n result.roundingMode = 'halfEven';\n continue;\n case 'rounding-mode-half-down':\n result.roundingMode = 'halfTrunc';\n continue;\n case 'rounding-mode-half-up':\n result.roundingMode = 'halfExpand';\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n var skeletonCopy = '';\n for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n var patternChar = skeleton.charAt(patternPos);\n if (patternChar === 'j') {\n var extraLength = 0;\n while (patternPos + 1 < skeleton.length &&\n skeleton.charAt(patternPos + 1) === patternChar) {\n extraLength++;\n patternPos++;\n }\n var hourLen = 1 + (extraLength & 1);\n var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n var dayPeriodChar = 'a';\n var hourChar = getDefaultHourSymbolFromLocale(locale);\n if (hourChar == 'H' || hourChar == 'k') {\n dayPeriodLen = 0;\n }\n while (dayPeriodLen-- > 0) {\n skeletonCopy += dayPeriodChar;\n }\n while (hourLen-- > 0) {\n skeletonCopy = hourChar + skeletonCopy;\n }\n }\n else if (patternChar === 'J') {\n skeletonCopy += 'H';\n }\n else {\n skeletonCopy += patternChar;\n }\n }\n return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n var hourCycle = locale.hourCycle;\n if (hourCycle === undefined &&\n // @ts-ignore hourCycle(s) is not identified yet\n locale.hourCycles &&\n // @ts-ignore\n locale.hourCycles.length) {\n // @ts-ignore\n hourCycle = locale.hourCycles[0];\n }\n if (hourCycle) {\n switch (hourCycle) {\n case 'h24':\n return 'k';\n case 'h23':\n return 'H';\n case 'h12':\n return 'h';\n case 'h11':\n return 'K';\n default:\n throw new Error('Invalid hourCycle');\n }\n }\n // TODO: Once hourCycle is fully supported remove the following with data generation\n var languageTag = locale.language;\n var regionTag;\n if (languageTag !== 'root') {\n regionTag = locale.maximize().region;\n }\n var hourCycles = timeData[regionTag || ''] ||\n timeData[languageTag || ''] ||\n timeData[\"\".concat(languageTag, \"-001\")] ||\n timeData['001'];\n return hourCycles[0];\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore \nexport var timeData = {\n \"001\": [\n \"H\",\n \"h\"\n ],\n \"419\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AD\": [\n \"H\",\n \"hB\"\n ],\n \"AE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"AF\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"AG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AL\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"AM\": [\n \"H\",\n \"hB\"\n ],\n \"AO\": [\n \"H\",\n \"hB\"\n ],\n \"AR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AS\": [\n \"h\",\n \"H\"\n ],\n \"AT\": [\n \"H\",\n \"hB\"\n ],\n \"AU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AW\": [\n \"H\",\n \"hB\"\n ],\n \"AX\": [\n \"H\"\n ],\n \"AZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BD\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"BE\": [\n \"H\",\n \"hB\"\n ],\n \"BF\": [\n \"H\",\n \"hB\"\n ],\n \"BG\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"BI\": [\n \"H\",\n \"h\"\n ],\n \"BJ\": [\n \"H\",\n \"hB\"\n ],\n \"BL\": [\n \"H\",\n \"hB\"\n ],\n \"BM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BN\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"BO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"BQ\": [\n \"H\"\n ],\n \"BR\": [\n \"H\",\n \"hB\"\n ],\n \"BS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BT\": [\n \"h\",\n \"H\"\n ],\n \"BW\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BY\": [\n \"H\",\n \"h\"\n ],\n \"BZ\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CA\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"CC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CD\": [\n \"hB\",\n \"H\"\n ],\n \"CF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CG\": [\n \"H\",\n \"hB\"\n ],\n \"CH\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"CI\": [\n \"H\",\n \"hB\"\n ],\n \"CK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CL\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CN\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"CO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CP\": [\n \"H\"\n ],\n \"CR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CU\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CV\": [\n \"H\",\n \"hB\"\n ],\n \"CW\": [\n \"H\",\n \"hB\"\n ],\n \"CX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CY\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"CZ\": [\n \"H\"\n ],\n \"DE\": [\n \"H\",\n \"hB\"\n ],\n \"DG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"DJ\": [\n \"h\",\n \"H\"\n ],\n \"DK\": [\n \"H\"\n ],\n \"DM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"DO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"DZ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"EC\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"EE\": [\n \"H\",\n \"hB\"\n ],\n \"EG\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ER\": [\n \"h\",\n \"H\"\n ],\n \"ES\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"ET\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"FI\": [\n \"H\"\n ],\n \"FJ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"FM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FO\": [\n \"H\",\n \"h\"\n ],\n \"FR\": [\n \"H\",\n \"hB\"\n ],\n \"GA\": [\n \"H\",\n \"hB\"\n ],\n \"GB\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GD\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GE\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"GF\": [\n \"H\",\n \"hB\"\n ],\n \"GG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GH\": [\n \"h\",\n \"H\"\n ],\n \"GI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GL\": [\n \"H\",\n \"h\"\n ],\n \"GM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GN\": [\n \"H\",\n \"hB\"\n ],\n \"GP\": [\n \"H\",\n \"hB\"\n ],\n \"GQ\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"GR\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"GT\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"GU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GW\": [\n \"H\",\n \"hB\"\n ],\n \"GY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"HK\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"HN\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"HR\": [\n \"H\",\n \"hB\"\n ],\n \"HU\": [\n \"H\",\n \"h\"\n ],\n \"IC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ID\": [\n \"H\"\n ],\n \"IE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IL\": [\n \"H\",\n \"hB\"\n ],\n \"IM\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IN\": [\n \"h\",\n \"H\"\n ],\n \"IO\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IQ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"IR\": [\n \"hB\",\n \"H\"\n ],\n \"IS\": [\n \"H\"\n ],\n \"IT\": [\n \"H\",\n \"hB\"\n ],\n \"JE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"JM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"JO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"JP\": [\n \"H\",\n \"K\",\n \"h\"\n ],\n \"KE\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"KG\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KH\": [\n \"hB\",\n \"h\",\n \"H\",\n \"hb\"\n ],\n \"KI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KM\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KN\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KP\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KW\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"KY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KZ\": [\n \"H\",\n \"hB\"\n ],\n \"LA\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"LB\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LI\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"LK\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"LR\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LS\": [\n \"h\",\n \"H\"\n ],\n \"LT\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"LU\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"LV\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"LY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MC\": [\n \"H\",\n \"hB\"\n ],\n \"MD\": [\n \"H\",\n \"hB\"\n ],\n \"ME\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"MF\": [\n \"H\",\n \"hB\"\n ],\n \"MG\": [\n \"H\",\n \"h\"\n ],\n \"MH\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ML\": [\n \"H\"\n ],\n \"MM\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"MN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MP\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MQ\": [\n \"H\",\n \"hB\"\n ],\n \"MR\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MS\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MT\": [\n \"H\",\n \"h\"\n ],\n \"MU\": [\n \"H\",\n \"h\"\n ],\n \"MV\": [\n \"H\",\n \"h\"\n ],\n \"MW\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MX\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"MY\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"MZ\": [\n \"H\",\n \"hB\"\n ],\n \"NA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NC\": [\n \"H\",\n \"hB\"\n ],\n \"NE\": [\n \"H\"\n ],\n \"NF\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NI\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NL\": [\n \"H\",\n \"hB\"\n ],\n \"NO\": [\n \"H\",\n \"h\"\n ],\n \"NP\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"NR\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NU\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"OM\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"PG\": [\n \"h\",\n \"H\"\n ],\n \"PH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PK\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"PL\": [\n \"H\",\n \"h\"\n ],\n \"PM\": [\n \"H\",\n \"hB\"\n ],\n \"PN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"PR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PS\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PT\": [\n \"H\",\n \"hB\"\n ],\n \"PW\": [\n \"h\",\n \"H\"\n ],\n \"PY\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"QA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"RE\": [\n \"H\",\n \"hB\"\n ],\n \"RO\": [\n \"H\",\n \"hB\"\n ],\n \"RS\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"RU\": [\n \"H\"\n ],\n \"RW\": [\n \"H\",\n \"h\"\n ],\n \"SA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SC\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SD\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SE\": [\n \"H\"\n ],\n \"SG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SH\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SI\": [\n \"H\",\n \"hB\"\n ],\n \"SJ\": [\n \"H\"\n ],\n \"SK\": [\n \"H\"\n ],\n \"SL\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SN\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SO\": [\n \"h\",\n \"H\"\n ],\n \"SR\": [\n \"H\",\n \"hB\"\n ],\n \"SS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ST\": [\n \"H\",\n \"hB\"\n ],\n \"SV\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"SX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"TC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TD\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"TF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"TG\": [\n \"H\",\n \"hB\"\n ],\n \"TH\": [\n \"H\",\n \"h\"\n ],\n \"TJ\": [\n \"H\",\n \"h\"\n ],\n \"TL\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"TM\": [\n \"H\",\n \"h\"\n ],\n \"TN\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"TO\": [\n \"h\",\n \"H\"\n ],\n \"TR\": [\n \"H\",\n \"hB\"\n ],\n \"TT\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TW\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"TZ\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UG\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"US\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"UY\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"UZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"VA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"VC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"VG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VN\": [\n \"H\",\n \"h\"\n ],\n \"VU\": [\n \"h\",\n \"H\"\n ],\n \"WF\": [\n \"H\",\n \"hB\"\n ],\n \"WS\": [\n \"h\",\n \"H\"\n ],\n \"XK\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"YE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"YT\": [\n \"H\",\n \"hB\"\n ],\n \"ZA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ZM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ZW\": [\n \"H\",\n \"h\"\n ],\n \"af-ZA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ar-001\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ca-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"en-001\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-HK\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-IL\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"en-MY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"es-BR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-ES\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-GQ\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"fr-CA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gl-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gu-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"hi-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"it-CH\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-IT\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"kn-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ml-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"mr-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"pa-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"ta-IN\": [\n \"hB\",\n \"h\",\n \"hb\",\n \"H\"\n ],\n \"te-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"zu-ZA\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ]\n};\n","import { __spreadArray } from \"tslib\";\nimport { isArgumentElement, isDateElement, isNumberElement, isPluralElement, isSelectElement, isTagElement, isTimeElement, TYPE, } from './types';\nfunction cloneDeep(obj) {\n if (Array.isArray(obj)) {\n // @ts-expect-error meh\n return __spreadArray([], obj.map(cloneDeep), true);\n }\n if (obj !== null && typeof obj === 'object') {\n // @ts-expect-error meh\n return Object.keys(obj).reduce(function (cloned, k) {\n // @ts-expect-error meh\n cloned[k] = cloneDeep(obj[k]);\n return cloned;\n }, {});\n }\n return obj;\n}\nfunction hoistPluralOrSelectElement(ast, el, positionToInject) {\n // pull this out of the ast and move it to the top\n var cloned = cloneDeep(el);\n var options = cloned.options;\n cloned.options = Object.keys(options).reduce(function (all, k) {\n var newValue = hoistSelectors(__spreadArray(__spreadArray(__spreadArray([], ast.slice(0, positionToInject), true), options[k].value, true), ast.slice(positionToInject + 1), true));\n all[k] = {\n value: newValue,\n };\n return all;\n }, {});\n return cloned;\n}\nfunction isPluralOrSelectElement(el) {\n return isPluralElement(el) || isSelectElement(el);\n}\nfunction findPluralOrSelectElement(ast) {\n return !!ast.find(function (el) {\n if (isPluralOrSelectElement(el)) {\n return true;\n }\n if (isTagElement(el)) {\n return findPluralOrSelectElement(el.children);\n }\n return false;\n });\n}\n/**\n * Hoist all selectors to the beginning of the AST & flatten the\n * resulting options. E.g:\n * \"I have {count, plural, one{a dog} other{many dogs}}\"\n * becomes \"{count, plural, one{I have a dog} other{I have many dogs}}\".\n * If there are multiple selectors, the order of which one is hoisted 1st\n * is non-deterministic.\n * The goal is to provide as many full sentences as possible since fragmented\n * sentences are not translator-friendly\n * @param ast AST\n */\nexport function hoistSelectors(ast) {\n for (var i = 0; i < ast.length; i++) {\n var el = ast[i];\n if (isPluralOrSelectElement(el)) {\n return [hoistPluralOrSelectElement(ast, el, i)];\n }\n if (isTagElement(el) && findPluralOrSelectElement([el])) {\n throw new Error('Cannot hoist plural/select within a tag element. Please put the tag element inside each plural/select option');\n }\n }\n return ast;\n}\n/**\n * Collect all variables in an AST to Record<string, TYPE>\n * @param ast AST to collect variables from\n * @param vars Record of variable name to variable type\n */\nfunction collectVariables(ast, vars) {\n if (vars === void 0) { vars = new Map(); }\n ast.forEach(function (el) {\n if (isArgumentElement(el) ||\n isDateElement(el) ||\n isTimeElement(el) ||\n isNumberElement(el)) {\n if (el.value in vars && vars.get(el.value) !== el.type) {\n throw new Error(\"Variable \".concat(el.value, \" has conflicting types\"));\n }\n vars.set(el.value, el.type);\n }\n if (isPluralElement(el) || isSelectElement(el)) {\n vars.set(el.value, el.type);\n Object.keys(el.options).forEach(function (k) {\n collectVariables(el.options[k].value, vars);\n });\n }\n if (isTagElement(el)) {\n vars.set(el.value, el.type);\n collectVariables(el.children, vars);\n }\n });\n}\n/**\n * Check if 2 ASTs are structurally the same. This primarily means that\n * they have the same variables with the same type\n * @param a\n * @param b\n * @returns\n */\nexport function isStructurallySame(a, b) {\n var aVars = new Map();\n var bVars = new Map();\n collectVariables(a, aVars);\n collectVariables(b, bVars);\n if (aVars.size !== bVars.size) {\n return {\n success: false,\n error: new Error(\"Different number of variables: [\".concat(Array.from(aVars.keys()).join(', '), \"] vs [\").concat(Array.from(bVars.keys()).join(', '), \"]\")),\n };\n }\n return Array.from(aVars.entries()).reduce(function (result, _a) {\n var key = _a[0], type = _a[1];\n if (!result.success) {\n return result;\n }\n var bType = bVars.get(key);\n if (bType == null) {\n return {\n success: false,\n error: new Error(\"Missing variable \".concat(key, \" in message\")),\n };\n }\n if (bType !== type) {\n return {\n success: false,\n error: new Error(\"Variable \".concat(key, \" has conflicting types: \").concat(TYPE[type], \" vs \").concat(TYPE[bType])),\n };\n }\n return result;\n }, { success: true });\n}\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTagElement, isTimeElement, } from '@formatjs/icu-messageformat-parser';\nimport { ErrorCode, FormatError, InvalidValueError, InvalidValueTypeError, MissingValueError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : formats.time.medium;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","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 = function (obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\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) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\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) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\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(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\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) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\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) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\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) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\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) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\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) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\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 checkedLoadedFor = {};\nconst shouldHandleAsObject = res => !isString(res) && typeof res !== 'boolean' && typeof res !== 'number';\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key == null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved?.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.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, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys == null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng?.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\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(options)\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(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\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 = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const needsPluralHandling = options.count !== undefined && !isString(options.count);\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0;\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.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 (!options.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 ...options,\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(options);\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 ...options,\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 ...options,\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, options, 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 = options.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 ...options,\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, options.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(options.lng || this.language);\n } else {\n lngs.push(options.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, options);\n } else if (this.backendConnector?.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\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, options);\n if (needsZeroSuffixLookup && options[`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, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat?.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = isString(res) && (options?.interpolation?.skipOnVariables !== undefined ? options.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 = options.replace && !isString(options.replace) ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language || resolved.usedLng, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && resolved && resolved.res) options.lng = this.language || resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey?.[0] === args[0] && !options.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 }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = isString(postProcess) ? [postProcess] : postProcess;\n if (res != null && postProcessorNames?.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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, options);\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 = options.count !== undefined && !isString(options.count);\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0;\n const needsContextHandling = options.context !== undefined && (isString(options.context) || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.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, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\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, options);\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) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\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() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\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 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 || 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) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\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 = function (data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 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() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\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() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\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) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\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 let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\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 (doReduce) {\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 (val, lng, options) => {\n let optForCache = options;\n if (options && options.interpolationkey && options.formatParams && options.formatParams[options.interpolationkey] && options[options.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [options.interpolationkey]: undefined\n };\n }\n const key = lng + JSON.stringify(optForCache);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n};\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n this.formatSeparator = options.interpolation.formatSeparator || ',';\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) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\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) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\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) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\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) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\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) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\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) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\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});\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() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\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() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\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 if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n 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('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\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('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\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] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\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) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 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 }\n changeLanguage(lng, callback) {\n var _this2 = this;\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 setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = isString(lngs) ? lngs : this.services.languageUtils.getBestMatchFromCodes(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 var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n if (options.keyPrefix !== '') options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\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() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.translator?.translate(...args);\n }\n exists() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n return this.translator?.exists(...args);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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 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 return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 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 return Object.keys(prev[l]).reduce((acc, n) => {\n acc[n] = {\n ...prev[l][n]\n };\n return acc;\n }, {});\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('*', function (event) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\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, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","export type { TFunction } from 'i18next';\nexport { Trans, useTranslation } from 'react-i18next';\n\nexport { createI18n } from './create-i18n.js';\nexport { I18nProvider } from './I18nProvider.js';\n"],"mappings":"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ACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACF;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,UAAU;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,UAAU;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,IACL;A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A,OAAM,OACLA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACrBA,OAAM,QACNA,OAAM,QACNA,OAAM,QACLA,MAAK,QAAUA,MAAK,QACrBA,OAAM,QACNA,OAAM,QACNA,OAAM,QACLA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACrBA,OAAM,QACNA,OAAM,QACLA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACrBA,OAAM,QACNA,OAAM,QACNA,OAAM,QACLA,MAAK,QAAUA,MAAK,QACrBA,OAAM,QACNA,OAAM,QACLA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACrBA,OAAM,QACLA,MAAK,QAAUA,MAAK,QACrBA,OAAM,QACLA,MAAK,QAAUA,MAAK,QACrBA,OAAM,QACLA,MAAK,QAAUA,MAAK,QACrBA,OAAM,QACLA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACrBA,OAAM,QACNA,OAAM,QACNA,OAAM,QACLA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACrBA,OAAM,QACNA,OAAM,QACNA,OAAM,QACNA,OAAM,QACLA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,OACrBA,OAAM,QACNA,OAAM,QACLA,MAAK,QAAUA,MAAK,QACrBA,OAAM,QACLA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,QACrBA,OAAM,QACLA,MAAK,QAAUA,MAAK,QACrBA,OAAM,QACLA,MAAK,QAAUA,MAAK,QACpBA,MAAK,QAAUA,MAAK,Q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","names":["import_react","attrRE","stringify","tag","res","type","name","voidElement","attrs","children","tagMatch","match","lookup","charAt","length","startsWith","endIndex","indexOf","comment","slice","reg","RegExp","result","exec","trim","attr","arr","split","lastIndex","substring","tagRE","whitespaceRE","empty","Object","create","buff","doc","content","key","push","join","reduce","parse","html","options","components","current","level","inComponent","end","replace","index","parent","isOpen","isComment","start","nextChar","parseTag","test","token","rootEl","n","i18nInstance","instance","i","c","defaults","t","import_react","instance","Trans","defaults","t","import_react","n","t","e","import_react","import_react","import_react","import_react","import_react","cleanKey","key","canNotTraverseDeeper","ObjectWithoutPrototypeCache","ErrorKind","TYPE","SKELETON_TYPE","_a","opt","n","startsWith","s","fromCodePoint","i","fromEntries","_a","codePointAt","trimStart","trimEnd","matchIdentifierAtIndex","c","Parser","e","c","ErrorCode","FormatError","InvalidValueError","InvalidValueTypeError","MissingValueError","PART_TYPE","c","_a","IntlMessageFormat","i","instance","getDefaults","ICU","init","memoize","parse","isString","a","s","t","getLastOfPath","setPath","e","getPath","c","r","i","n","copy","hasLoadedNamespace","loadNamespaces","loadLanguages","i18nInstance","React"]}