// Metro module 13331 (f13332). import { __spreadArray } from "./Module1281"; import { languageAlias, territoryAlias, scriptAlias, variantAlias } from "./Module13332"; import { emitUnicodeLanguageId } from "./Module13330"; import { parseUnicodeLanguageId, SEPARATOR, isUnicodeVariantSubtag, isUnicodeLanguageSubtag } from "./parseUnicodeLanguageId"; import { likelySubtags } from "./Module13334"; let compareExtension, canonicalizeUnicodeLanguageId; const compareKV = function compareKV(a0, a1) { return a0[0] < a1[0] ? -1 : a0[0] > a1[0] ? 1 : 0; }; compareExtension = function compareExtension(a0, a1) { return a0.type < a1.type ? -1 : a0.type > a1.type ? 1 : 0; }; canonicalizeUnicodeLanguageId = function canonicalizeUnicodeLanguageId(a0) { let length2; const length = a0.variants.length; let r9 = a0; if (length) { const variants = a0.variants; const r5 = 0 < variants.length; let r0 = 0; r9 = a0; if (r5) { do { const r26 = languageAlias[(0, emitUnicodeLanguageId)({ lang: a0.lang, variants: [variants[r0]] })]; const r2 = r0; if (r26) { const r36 = (0, parseUnicodeLanguageId)(r26.split(SEPARATOR)); const script2 = a0.script || r36.script; const region4 = a0.region || r36.region; const variants2 = a0.variants; const variants3 = r36.variants; const variants4 = __spreadArray([], variants2, true); const r50 = 0 < variants3.length; let r51 = 0; if (r50) { do { const r52 = variants3[r51]; const r54 = variants2.indexOf(r52); const r55 = r51; if (r54 < 0) { variants4.push(r52); } r51 = r55 + 1; } while (r51 < variants3.length); } r9 = { lang: r36.lang, script: script2, region: region4, variants: variants4 }; break; } r0 = r2 + 1; length2 = variants.length; r9 = a0; } while (r0 < length2); } } const script = r9.script; let r60 = r9; if (script) { const region = r9.region; r60 = r9; if (region) { const r77 = languageAlias[(0, emitUnicodeLanguageId)({ lang: r9.lang, script: r9.script, region: r9.region, variants: [] })]; r60 = r9; if (r77) { const r86 = (0, parseUnicodeLanguageId)(r77.split(SEPARATOR)); r60 = { lang: r86.lang, script: r86.script, region: r86.region, variants: r9.variants }; } } } const region2 = r60.region; let r93 = r60; if (region2) { const r108 = languageAlias[(0, emitUnicodeLanguageId)({ lang: r60.lang, region: r60.region, variants: [] })]; r93 = r60; if (r108) { const r117 = (0, parseUnicodeLanguageId)(r108.split(SEPARATOR)); r93 = { lang: r117.lang, script: r60.script || r117.script, region: r117.region, variants: r60.variants }; } } const r136 = languageAlias[(0, emitUnicodeLanguageId)({ lang: r93.lang, variants: [] })]; let r137 = r93; if (r136) { const r146 = (0, parseUnicodeLanguageId)(r136.split(SEPARATOR)); r137 = { lang: r146.lang, script: r93.script || r146.script, region: r93.region || r146.region, variants: r93.variants }; } if (r137.region) { const r159 = territoryAlias[r137.region.toUpperCase()]; let region5 = void 0; if (r159) { const r163 = r159.split(" "); const r164 = r163[0]; const r176 = likelySubtags[(0, emitUnicodeLanguageId)({ lang: r137.lang, script: r137.script, variants: [] })]; region5 = r164; if (r176) { const region3 = (0, parseUnicodeLanguageId)(r176.split(SEPARATOR)).region; region5 = (region3 ? r163.indexOf(region3) > -1 : region3) ? region3 : r164; } } if (region5) { r137.region = region5; } r137.region = r137.region.toUpperCase(); } if (r137.script) { r137.script = r137.script[0].toUpperCase() + r137.script.slice(1).toLowerCase(); if (scriptAlias[r137.script]) { r137.script = scriptAlias[r137.script]; } } if (r137.variants.length) { const length3 = r137.variants.length; let r220 = 0; if (0 < length3) { do { const r226 = r137.variants[r220].toLowerCase(); const r232 = variantAlias[r226]; const r233 = r220; if (r232) { const lang = variantAlias[r226]; if ((0, isUnicodeVariantSubtag)(lang)) { r137.variants[r233] = lang; } else if ((0, isUnicodeLanguageSubtag)(lang)) { r137.lang = lang; } } r220 = r233 + 1; } while (r220 < r137.variants.length); } r137.variants.sort(); } return r137; }; export { canonicalizeUnicodeLanguageId }; export function CanonicalizeUnicodeLocaleId(a0) { let r1, r68; a0.lang = canonicalizeUnicodeLanguageId(a0.lang); if (a0.extensions) { const extensions = a0.extensions; const r6 = 0 < extensions.length; let r3 = 0; if (r6) { do { const r16 = extensions[r3]; const type = r16.type; const r5 = r3; if (type === "u") { const keywords = r16.keywords; const r60 = {}; const r61 = []; const r63 = 0 < keywords.length; let r64 = 0; if (r63) { do { L21: { const r65 = keywords[r64]; const r67 = r65[0] in r60; r68 = r64; if (!r67) { r60[r65[0]] = 1; if (r65[1] && r65[1] !== "true") { r61.push([r65[0].toLowerCase(), r65[1].toLowerCase()]); break L21; } r61.push([r65[0].toLowerCase()]); } } r64 = r68 + 1; } while (r64 < keywords.length); } r16.keywords = r61.sort(compareKV); if (r16.attributes) { r16.attributes = Object.keys(r16.attributes.reduce(function(acc, attribute) { acc[attribute.toLowerCase()] = 1; return acc; }, {})).sort(); } } else if (type === "t") { if (r16.lang) { r16.lang = canonicalizeUnicodeLanguageId(r16.lang); } const fields = r16.fields; const r34 = {}; const r18 = []; const r36 = 0 < fields.length; let r0 = 0; if (r36) { do { L13: { const r21 = fields[r0]; const r38 = r21[0] in r34; r1 = r0; if (!r38) { r34[r21[0]] = 1; if (r21[1] && r21[1] !== "true") { r18.push([r21[0].toLowerCase(), r21[1].toLowerCase()]); break L13; } r18.push([r21[0].toLowerCase()]); } } r0 = r1 + 1; } while (r0 < fields.length); } r16.fields = r18.sort(compareKV); } else { r16.value = r16.value.toLowerCase(); } r3 = r5 + 1; } while (r3 < extensions.length); } a0.extensions.sort(compareExtension); } return a0; }