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

506 lines
16 KiB
JavaScript

// Metro module 1283 (f1284).
import { WHITE_SPACE_REGEX } from "./Module1284";
import { __assign } from "./Module1281";
function $mk68645($env) {
return function(a0, a1, a2) {
const r1 = $env;
if (typeof a2 !== "string") {
const r15 = r1[0];
r15.minimumSignificantDigits = a1.length;
r15.maximumSignificantDigits = a1.length;
} else if (a2 === "+") {
r1[0].minimumSignificantDigits = a1.length;
} else if (a1[0] === "#") {
r1[0].maximumSignificantDigits = a1.length;
} else {
const r7 = r1[0];
r7.minimumSignificantDigits = a1.length;
r7.maximumSignificantDigits = a1.length + (typeof a2 === "string" ? a2.length : 0);
}
return "";
};
}
let c1050_2, c1050_3, c1050_4, c1050_5;
export function parseNumberSkeletonFromString(a0) {
if (a0.length === 0) {
throw new Error("Number skeleton cannot be empty");
}
const r16 = [];
const r24 = a0.split(WHITE_SPACE_REGEX).filter(function(item) {
return item.length > 0;
});
const r26 = 0 < r24.length;
let r3 = 0;
if (r26) {
do {
const r30 = r24[r3].split("/");
const length = r30.length;
const r5 = r3;
if (length === 0) {
throw new Error("Invalid number skeleton");
}
const stem = r30[0];
const options = r30.slice(1);
const r34 = 0 < options.length;
let r0 = 0;
if (r34) {
do {
const length2 = options[r0].length;
const r1 = r0;
if (length2 === 0) {
throw new Error("Invalid number skeleton");
}
r0 = r1 + 1;
} while (r0 < options.length);
}
r16.push({
stem,
options
});
r3 = r5 + 1;
} while (r3 < r24.length);
}
return r16;
}
c1050_2 = /^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g;
c1050_3 = /^(@+)?(\+|#+)?[rs]?$/g;
c1050_4 = /(\*)(0+)|(#+)(0+)|(0+)/g;
c1050_5 = /^(0+)$/;
export function parseNumberSkeleton(a0) {
let r4, r69, r135, r150, r151, r156, length;
const r10 = {};
let c12945_0 = r10;
const r8 = 0 < a0.length;
let r2 = 0;
let r12 = r10;
let r62 = r12;
if (r8) {
do {
L72: {
const r48 = a0[r2];
const stem = r48.stem;
r4 = r2;
const r63 = r12;
switch (stem) {
case "percent":
case "%":
r63.style = "percent";
r69 = r63;
break L72;
case "%x100":
r63.style = "percent";
r63.scale = 100;
r69 = r63;
break L72;
case "currency":
r63.style = "currency";
r63.currency = r48.options[0];
r69 = r63;
break L72;
case "group-off":
case ",_":
r63.useGrouping = false;
r69 = r63;
break L72;
case "precision-integer":
case ".":
r63.maximumFractionDigits = 0;
r69 = r63;
break L72;
case "measure-unit":
case "unit":
r63.style = "unit";
r63.unit = r48.options[0].replace(/^(.*?)-/, "");
r69 = r63;
break L72;
case "compact-short":
case "K":
r63.notation = "compact";
r63.compactDisplay = "short";
r69 = r63;
break L72;
case "compact-long":
case "KK":
r63.notation = "compact";
r63.compactDisplay = "long";
r69 = r63;
break L72;
case "scientific":
const r115 = __assign(__assign(__assign({}, r63), {
notation: "scientific"
}), r48.options.reduce(function(acc, option) {
let r12, r14;
L8: {
r12 = __assign({}, acc);
r14 = void 0;
switch (option) {
case "sign-auto":
r14 = {
signDisplay: "auto"
};
break L8;
case "sign-accounting":
case "()":
r14 = {
currencySign: "accounting"
};
break L8;
case "sign-always":
case "+!":
r14 = {
signDisplay: "always"
};
break L8;
case "sign-accounting-always":
case "()!":
r14 = {
signDisplay: "always",
currencySign: "accounting"
};
break L8;
case "sign-except-zero":
case "+?":
r14 = {
signDisplay: "exceptZero"
};
break L8;
case "sign-accounting-except-zero":
case "()?":
r14 = {
signDisplay: "exceptZero",
currencySign: "accounting"
};
break L8;
case "sign-never":
case "+_":
r14 = {
signDisplay: "never"
};
break L8;
default:
}
}
if (!r14) {
r14 = {};
}
return __assign(r12, r14);
}, {}));
c12945_0 = r115;
r69 = r115;
break L72;
case "engineering":
const r94 = __assign(__assign(__assign({}, r63), {
notation: "engineering"
}), r48.options.reduce(function(acc, option) {
let r12, r14;
L8: {
r12 = __assign({}, acc);
r14 = void 0;
switch (option) {
case "sign-auto":
r14 = {
signDisplay: "auto"
};
break L8;
case "sign-accounting":
case "()":
r14 = {
currencySign: "accounting"
};
break L8;
case "sign-always":
case "+!":
r14 = {
signDisplay: "always"
};
break L8;
case "sign-accounting-always":
case "()!":
r14 = {
signDisplay: "always",
currencySign: "accounting"
};
break L8;
case "sign-except-zero":
case "+?":
r14 = {
signDisplay: "exceptZero"
};
break L8;
case "sign-accounting-except-zero":
case "()?":
r14 = {
signDisplay: "exceptZero",
currencySign: "accounting"
};
break L8;
case "sign-never":
case "+_":
r14 = {
signDisplay: "never"
};
break L8;
default:
}
}
if (!r14) {
r14 = {};
}
return __assign(r12, r14);
}, {}));
c12945_0 = r94;
r69 = r94;
break L72;
case "notation-simple":
r63.notation = "standard";
r69 = r63;
break L72;
case "unit-width-narrow":
r63.currencyDisplay = "narrowSymbol";
r63.unitDisplay = "narrow";
r69 = r63;
break L72;
case "unit-width-short":
r63.currencyDisplay = "code";
r63.unitDisplay = "short";
r69 = r63;
break L72;
case "unit-width-full-name":
r63.currencyDisplay = "name";
r63.unitDisplay = "long";
r69 = r63;
break L72;
case "unit-width-iso-code":
r63.currencyDisplay = "symbol";
r69 = r63;
break L72;
case "scale":
r63.scale = parseFloat(r48.options[0]);
r69 = r63;
break L72;
case "rounding-mode-floor":
r63.roundingMode = "floor";
r69 = r63;
break L72;
case "rounding-mode-ceiling":
r63.roundingMode = "ceil";
r69 = r63;
break L72;
case "rounding-mode-down":
r63.roundingMode = "trunc";
r69 = r63;
break L72;
case "rounding-mode-up":
r63.roundingMode = "expand";
r69 = r63;
break L72;
case "rounding-mode-half-even":
r63.roundingMode = "halfEven";
r69 = r63;
break L72;
case "rounding-mode-half-down":
r63.roundingMode = "halfTrunc";
r69 = r63;
break L72;
case "rounding-mode-half-up":
r63.roundingMode = "halfExpand";
r69 = r63;
break L72;
case "integer-width":
if (r48.options.length > 1) {
throw new RangeError("integer-width stems only accept a single optional option");
}
r48.options[0].replace(c1050_4, function(a0, a1, a2, a3, a4, a5) {
if (a1) {
c12945_0.minimumIntegerDigits = a2.length;
} else {
if (a3 && a4) {
throw new Error("We currently do not support maximum integer digits");
}
if (a5) {
throw new Error("We currently do not support exact integer digits");
}
}
return "";
});
r69 = r63;
break L72;
default:
if (c1050_5.test(r48.stem)) {
r63.minimumIntegerDigits = r48.stem.length;
r69 = r63;
} else if (c1050_2.test(r48.stem)) {
if (r48.options.length > 1) {
throw new RangeError("Fraction-precision stems only accept a single optional option");
}
r48.stem.replace(c1050_2, function(a0, a1, a2, a3, a4, a5) {
L9: {
if (a2 === "*") {
c12945_0.minimumFractionDigits = a1.length;
} else {
if (a3 && a3[0] === "#") {
c12945_0.maximumFractionDigits = a3.length;
break L9;
}
if (a4 && a5) {
c12945_0.minimumFractionDigits = a4.length;
c12945_0.maximumFractionDigits = a4.length + a5.length;
break L9;
}
c12945_0.minimumFractionDigits = a1.length;
c12945_0.maximumFractionDigits = a1.length;
}
}
return "";
});
const r208 = r48.options[0];
if (r208 === "w") {
const r243 = __assign(__assign({}, r63), {
trailingZeroDisplay: "stripIfInteger"
});
c12945_0 = r243;
r69 = r243;
} else {
r69 = r63;
if (r208) {
let env12947;
const r218 = __assign({}, r63);
const r219 = env12947 = {};
const r220 = {};
env12947[0] = r220;
if (r208[r208.length - 1] === "r") {
r220.roundingPriority = "morePrecision";
} else if (r208[r208.length - 1] === "s") {
r220.roundingPriority = "lessPrecision";
}
r208.replace(c1050_3, $mk68645(r219));
const r231 = __assign(r218, r220);
c12945_0 = r231;
r69 = r231;
}
}
} else if (c1050_3.test(r48.stem)) {
let env12946;
const r188 = __assign({}, r63);
const stem4 = r48.stem;
const r190 = env12946 = {};
const r191 = {};
env12946[0] = r191;
if (stem4[stem4.length - 1] === "r") {
r191.roundingPriority = "morePrecision";
} else if (stem4[stem4.length - 1] === "s") {
r191.roundingPriority = "lessPrecision";
}
stem4.replace(c1050_3, $mk68645(r190));
const r200 = __assign(r188, r191);
c12945_0 = r200;
r69 = r200;
} else {
L39: {
const stem2 = r48.stem;
r135 = void 0;
switch (stem2) {
case "sign-auto":
r135 = {
signDisplay: "auto"
};
break L39;
case "sign-accounting":
case "()":
r135 = {
currencySign: "accounting"
};
break L39;
case "sign-always":
case "+!":
r135 = {
signDisplay: "always"
};
break L39;
case "sign-accounting-always":
case "()!":
r135 = {
signDisplay: "always",
currencySign: "accounting"
};
break L39;
case "sign-except-zero":
case "+?":
r135 = {
signDisplay: "exceptZero"
};
break L39;
case "sign-accounting-except-zero":
case "()?":
r135 = {
signDisplay: "exceptZero",
currencySign: "accounting"
};
break L39;
case "sign-never":
case "+_":
r135 = {
signDisplay: "never"
};
break L39;
default:
}
}
let r56 = r63;
if (r135) {
const r145 = __assign(__assign({}, r63), r135);
c12945_0 = r145;
r56 = r145;
}
const stem3 = r48.stem;
if (stem3[0] === "E" && stem3[1] === "E") {
r150 = {
notation: "engineering"
};
r151 = stem3.slice(2);
} else {
const r149 = stem3[0];
r150 = void 0;
r151 = stem3;
if (r149 === "E") {
r150 = {
notation: "scientific"
};
r151 = stem3.slice(1);
}
}
if (r150) {
const r155 = r151.slice(0, 2);
if (r155 === "+!") {
r150.signDisplay = "always";
r156 = r151.slice(2);
} else {
r156 = r151;
if (r155 === "+?") {
r150.signDisplay = "exceptZero";
r156 = r151.slice(2);
}
}
if (!c1050_5.test(r156)) {
throw new Error("Malformed concise eng/scientific notation");
}
r150.minimumIntegerDigits = r156.length;
}
r69 = r56;
if (r150) {
const r178 = __assign(__assign({}, r56), r150);
c12945_0 = r178;
r69 = r178;
}
}
}
}
r2 = r4 + 1;
length = a0.length;
r12 = r69;
r62 = r12;
} while (r2 < length);
}
return r62;
}