254 lines
7.4 KiB
JavaScript
254 lines
7.4 KiB
JavaScript
// 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;
|
|
}
|