Files
discord-decomp/_bundle/compareKV.js
T
2026-11-01 12:12:55 +02:00

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;
}