3143 lines
76 KiB
Plaintext
Executable File
3143 lines
76 KiB
Plaintext
Executable File
var __defProp = Object.defineProperty;
|
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
var __publicField = (obj, key, value) => {
|
|
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
return value;
|
|
};
|
|
|
|
// node_modules/tslib/tslib.es6.js
|
|
var __assign = function() {
|
|
__assign = Object.assign || function __assign2(t) {
|
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
s = arguments[i];
|
|
for (var p in s)
|
|
if (Object.prototype.hasOwnProperty.call(s, p))
|
|
t[p] = s[p];
|
|
}
|
|
return t;
|
|
};
|
|
return __assign.apply(this, arguments);
|
|
};
|
|
|
|
// bazel-out/darwin-fastbuild/bin/packages/icu-messageformat-parser/lib/error.js
|
|
var ErrorKind;
|
|
(function(ErrorKind2) {
|
|
ErrorKind2[ErrorKind2["EXPECT_ARGUMENT_CLOSING_BRACE"] = 1] = "EXPECT_ARGUMENT_CLOSING_BRACE";
|
|
ErrorKind2[ErrorKind2["EMPTY_ARGUMENT"] = 2] = "EMPTY_ARGUMENT";
|
|
ErrorKind2[ErrorKind2["MALFORMED_ARGUMENT"] = 3] = "MALFORMED_ARGUMENT";
|
|
ErrorKind2[ErrorKind2["EXPECT_ARGUMENT_TYPE"] = 4] = "EXPECT_ARGUMENT_TYPE";
|
|
ErrorKind2[ErrorKind2["INVALID_ARGUMENT_TYPE"] = 5] = "INVALID_ARGUMENT_TYPE";
|
|
ErrorKind2[ErrorKind2["EXPECT_ARGUMENT_STYLE"] = 6] = "EXPECT_ARGUMENT_STYLE";
|
|
ErrorKind2[ErrorKind2["INVALID_NUMBER_SKELETON"] = 7] = "INVALID_NUMBER_SKELETON";
|
|
ErrorKind2[ErrorKind2["INVALID_DATE_TIME_SKELETON"] = 8] = "INVALID_DATE_TIME_SKELETON";
|
|
ErrorKind2[ErrorKind2["EXPECT_NUMBER_SKELETON"] = 9] = "EXPECT_NUMBER_SKELETON";
|
|
ErrorKind2[ErrorKind2["EXPECT_DATE_TIME_SKELETON"] = 10] = "EXPECT_DATE_TIME_SKELETON";
|
|
ErrorKind2[ErrorKind2["UNCLOSED_QUOTE_IN_ARGUMENT_STYLE"] = 11] = "UNCLOSED_QUOTE_IN_ARGUMENT_STYLE";
|
|
ErrorKind2[ErrorKind2["EXPECT_SELECT_ARGUMENT_OPTIONS"] = 12] = "EXPECT_SELECT_ARGUMENT_OPTIONS";
|
|
ErrorKind2[ErrorKind2["EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE"] = 13] = "EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE";
|
|
ErrorKind2[ErrorKind2["INVALID_PLURAL_ARGUMENT_OFFSET_VALUE"] = 14] = "INVALID_PLURAL_ARGUMENT_OFFSET_VALUE";
|
|
ErrorKind2[ErrorKind2["EXPECT_SELECT_ARGUMENT_SELECTOR"] = 15] = "EXPECT_SELECT_ARGUMENT_SELECTOR";
|
|
ErrorKind2[ErrorKind2["EXPECT_PLURAL_ARGUMENT_SELECTOR"] = 16] = "EXPECT_PLURAL_ARGUMENT_SELECTOR";
|
|
ErrorKind2[ErrorKind2["EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT"] = 17] = "EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT";
|
|
ErrorKind2[ErrorKind2["EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT"] = 18] = "EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT";
|
|
ErrorKind2[ErrorKind2["INVALID_PLURAL_ARGUMENT_SELECTOR"] = 19] = "INVALID_PLURAL_ARGUMENT_SELECTOR";
|
|
ErrorKind2[ErrorKind2["DUPLICATE_PLURAL_ARGUMENT_SELECTOR"] = 20] = "DUPLICATE_PLURAL_ARGUMENT_SELECTOR";
|
|
ErrorKind2[ErrorKind2["DUPLICATE_SELECT_ARGUMENT_SELECTOR"] = 21] = "DUPLICATE_SELECT_ARGUMENT_SELECTOR";
|
|
ErrorKind2[ErrorKind2["MISSING_OTHER_CLAUSE"] = 22] = "MISSING_OTHER_CLAUSE";
|
|
ErrorKind2[ErrorKind2["INVALID_TAG"] = 23] = "INVALID_TAG";
|
|
ErrorKind2[ErrorKind2["INVALID_TAG_NAME"] = 25] = "INVALID_TAG_NAME";
|
|
ErrorKind2[ErrorKind2["UNMATCHED_CLOSING_TAG"] = 26] = "UNMATCHED_CLOSING_TAG";
|
|
ErrorKind2[ErrorKind2["UNCLOSED_TAG"] = 27] = "UNCLOSED_TAG";
|
|
})(ErrorKind || (ErrorKind = {}));
|
|
|
|
// bazel-out/darwin-fastbuild/bin/packages/icu-messageformat-parser/lib/types.js
|
|
var TYPE;
|
|
(function(TYPE2) {
|
|
TYPE2[TYPE2["literal"] = 0] = "literal";
|
|
TYPE2[TYPE2["argument"] = 1] = "argument";
|
|
TYPE2[TYPE2["number"] = 2] = "number";
|
|
TYPE2[TYPE2["date"] = 3] = "date";
|
|
TYPE2[TYPE2["time"] = 4] = "time";
|
|
TYPE2[TYPE2["select"] = 5] = "select";
|
|
TYPE2[TYPE2["plural"] = 6] = "plural";
|
|
TYPE2[TYPE2["pound"] = 7] = "pound";
|
|
TYPE2[TYPE2["tag"] = 8] = "tag";
|
|
})(TYPE || (TYPE = {}));
|
|
var SKELETON_TYPE;
|
|
(function(SKELETON_TYPE2) {
|
|
SKELETON_TYPE2[SKELETON_TYPE2["number"] = 0] = "number";
|
|
SKELETON_TYPE2[SKELETON_TYPE2["dateTime"] = 1] = "dateTime";
|
|
})(SKELETON_TYPE || (SKELETON_TYPE = {}));
|
|
function isLiteralElement(el) {
|
|
return el.type === TYPE.literal;
|
|
}
|
|
function isArgumentElement(el) {
|
|
return el.type === TYPE.argument;
|
|
}
|
|
function isNumberElement(el) {
|
|
return el.type === TYPE.number;
|
|
}
|
|
function isDateElement(el) {
|
|
return el.type === TYPE.date;
|
|
}
|
|
function isTimeElement(el) {
|
|
return el.type === TYPE.time;
|
|
}
|
|
function isSelectElement(el) {
|
|
return el.type === TYPE.select;
|
|
}
|
|
function isPluralElement(el) {
|
|
return el.type === TYPE.plural;
|
|
}
|
|
function isPoundElement(el) {
|
|
return el.type === TYPE.pound;
|
|
}
|
|
function isTagElement(el) {
|
|
return el.type === TYPE.tag;
|
|
}
|
|
function isNumberSkeleton(el) {
|
|
return !!(el && typeof el === "object" && el.type === SKELETON_TYPE.number);
|
|
}
|
|
function isDateTimeSkeleton(el) {
|
|
return !!(el && typeof el === "object" && el.type === SKELETON_TYPE.dateTime);
|
|
}
|
|
|
|
// bazel-out/darwin-fastbuild/bin/packages/icu-messageformat-parser/lib/regex.generated.js
|
|
var SPACE_SEPARATOR_REGEX = /[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/;
|
|
|
|
// bazel-out/darwin-fastbuild/bin/packages/icu-skeleton-parser/lib/date-time.js
|
|
var 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;
|
|
function parseDateTimeSkeleton(skeleton) {
|
|
var result = {};
|
|
skeleton.replace(DATE_TIME_REGEX, function(match) {
|
|
var len = match.length;
|
|
switch (match[0]) {
|
|
case "G":
|
|
result.era = len === 4 ? "long" : len === 5 ? "narrow" : "short";
|
|
break;
|
|
case "y":
|
|
result.year = len === 2 ? "2-digit" : "numeric";
|
|
break;
|
|
case "Y":
|
|
case "u":
|
|
case "U":
|
|
case "r":
|
|
throw new RangeError("`Y/u/U/r` (year) patterns are not supported, use `y` instead");
|
|
case "q":
|
|
case "Q":
|
|
throw new RangeError("`q/Q` (quarter) patterns are not supported");
|
|
case "M":
|
|
case "L":
|
|
result.month = ["numeric", "2-digit", "short", "long", "narrow"][len - 1];
|
|
break;
|
|
case "w":
|
|
case "W":
|
|
throw new RangeError("`w/W` (week) patterns are not supported");
|
|
case "d":
|
|
result.day = ["numeric", "2-digit"][len - 1];
|
|
break;
|
|
case "D":
|
|
case "F":
|
|
case "g":
|
|
throw new RangeError("`D/F/g` (day) patterns are not supported, use `d` instead");
|
|
case "E":
|
|
result.weekday = len === 4 ? "short" : len === 5 ? "narrow" : "short";
|
|
break;
|
|
case "e":
|
|
if (len < 4) {
|
|
throw new RangeError("`e..eee` (weekday) patterns are not supported");
|
|
}
|
|
result.weekday = ["short", "long", "narrow", "short"][len - 4];
|
|
break;
|
|
case "c":
|
|
if (len < 4) {
|
|
throw new RangeError("`c..ccc` (weekday) patterns are not supported");
|
|
}
|
|
result.weekday = ["short", "long", "narrow", "short"][len - 4];
|
|
break;
|
|
case "a":
|
|
result.hour12 = true;
|
|
break;
|
|
case "b":
|
|
case "B":
|
|
throw new RangeError("`b/B` (period) patterns are not supported, use `a` instead");
|
|
case "h":
|
|
result.hourCycle = "h12";
|
|
result.hour = ["numeric", "2-digit"][len - 1];
|
|
break;
|
|
case "H":
|
|
result.hourCycle = "h23";
|
|
result.hour = ["numeric", "2-digit"][len - 1];
|
|
break;
|
|
case "K":
|
|
result.hourCycle = "h11";
|
|
result.hour = ["numeric", "2-digit"][len - 1];
|
|
break;
|
|
case "k":
|
|
result.hourCycle = "h24";
|
|
result.hour = ["numeric", "2-digit"][len - 1];
|
|
break;
|
|
case "j":
|
|
case "J":
|
|
case "C":
|
|
throw new RangeError("`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead");
|
|
case "m":
|
|
result.minute = ["numeric", "2-digit"][len - 1];
|
|
break;
|
|
case "s":
|
|
result.second = ["numeric", "2-digit"][len - 1];
|
|
break;
|
|
case "S":
|
|
case "A":
|
|
throw new RangeError("`S/A` (second) patterns are not supported, use `s` instead");
|
|
case "z":
|
|
result.timeZoneName = len < 4 ? "short" : "long";
|
|
break;
|
|
case "Z":
|
|
case "O":
|
|
case "v":
|
|
case "V":
|
|
case "X":
|
|
case "x":
|
|
throw new RangeError("`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead");
|
|
}
|
|
return "";
|
|
});
|
|
return result;
|
|
}
|
|
|
|
// bazel-out/darwin-fastbuild/bin/packages/icu-skeleton-parser/lib/regex.generated.js
|
|
var WHITE_SPACE_REGEX = /[\t-\r \x85\u200E\u200F\u2028\u2029]/i;
|
|
|
|
// bazel-out/darwin-fastbuild/bin/packages/icu-skeleton-parser/lib/number.js
|
|
function parseNumberSkeletonFromString(skeleton) {
|
|
if (skeleton.length === 0) {
|
|
throw new Error("Number skeleton cannot be empty");
|
|
}
|
|
var stringTokens = skeleton.split(WHITE_SPACE_REGEX).filter(function(x) {
|
|
return x.length > 0;
|
|
});
|
|
var tokens = [];
|
|
for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {
|
|
var stringToken = stringTokens_1[_i];
|
|
var stemAndOptions = stringToken.split("/");
|
|
if (stemAndOptions.length === 0) {
|
|
throw new Error("Invalid number skeleton");
|
|
}
|
|
var stem = stemAndOptions[0], options = stemAndOptions.slice(1);
|
|
for (var _a2 = 0, options_1 = options; _a2 < options_1.length; _a2++) {
|
|
var option = options_1[_a2];
|
|
if (option.length === 0) {
|
|
throw new Error("Invalid number skeleton");
|
|
}
|
|
}
|
|
tokens.push({ stem, options });
|
|
}
|
|
return tokens;
|
|
}
|
|
function icuUnitToEcma(unit) {
|
|
return unit.replace(/^(.*?)-/, "");
|
|
}
|
|
var FRACTION_PRECISION_REGEX = /^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g;
|
|
var SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\+|#+)?[rs]?$/g;
|
|
var INTEGER_WIDTH_REGEX = /(\*)(0+)|(#+)(0+)|(0+)/g;
|
|
var CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;
|
|
function parseSignificantPrecision(str) {
|
|
var result = {};
|
|
if (str[str.length - 1] === "r") {
|
|
result.roundingPriority = "morePrecision";
|
|
} else if (str[str.length - 1] === "s") {
|
|
result.roundingPriority = "lessPrecision";
|
|
}
|
|
str.replace(SIGNIFICANT_PRECISION_REGEX, function(_, g1, g2) {
|
|
if (typeof g2 !== "string") {
|
|
result.minimumSignificantDigits = g1.length;
|
|
result.maximumSignificantDigits = g1.length;
|
|
} else if (g2 === "+") {
|
|
result.minimumSignificantDigits = g1.length;
|
|
} else if (g1[0] === "#") {
|
|
result.maximumSignificantDigits = g1.length;
|
|
} else {
|
|
result.minimumSignificantDigits = g1.length;
|
|
result.maximumSignificantDigits = g1.length + (typeof g2 === "string" ? g2.length : 0);
|
|
}
|
|
return "";
|
|
});
|
|
return result;
|
|
}
|
|
function parseSign(str) {
|
|
switch (str) {
|
|
case "sign-auto":
|
|
return {
|
|
signDisplay: "auto"
|
|
};
|
|
case "sign-accounting":
|
|
case "()":
|
|
return {
|
|
currencySign: "accounting"
|
|
};
|
|
case "sign-always":
|
|
case "+!":
|
|
return {
|
|
signDisplay: "always"
|
|
};
|
|
case "sign-accounting-always":
|
|
case "()!":
|
|
return {
|
|
signDisplay: "always",
|
|
currencySign: "accounting"
|
|
};
|
|
case "sign-except-zero":
|
|
case "+?":
|
|
return {
|
|
signDisplay: "exceptZero"
|
|
};
|
|
case "sign-accounting-except-zero":
|
|
case "()?":
|
|
return {
|
|
signDisplay: "exceptZero",
|
|
currencySign: "accounting"
|
|
};
|
|
case "sign-never":
|
|
case "+_":
|
|
return {
|
|
signDisplay: "never"
|
|
};
|
|
}
|
|
}
|
|
function parseConciseScientificAndEngineeringStem(stem) {
|
|
var result;
|
|
if (stem[0] === "E" && stem[1] === "E") {
|
|
result = {
|
|
notation: "engineering"
|
|
};
|
|
stem = stem.slice(2);
|
|
} else if (stem[0] === "E") {
|
|
result = {
|
|
notation: "scientific"
|
|
};
|
|
stem = stem.slice(1);
|
|
}
|
|
if (result) {
|
|
var signDisplay = stem.slice(0, 2);
|
|
if (signDisplay === "+!") {
|
|
result.signDisplay = "always";
|
|
stem = stem.slice(2);
|
|
} else if (signDisplay === "+?") {
|
|
result.signDisplay = "exceptZero";
|
|
stem = stem.slice(2);
|
|
}
|
|
if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {
|
|
throw new Error("Malformed concise eng/scientific notation");
|
|
}
|
|
result.minimumIntegerDigits = stem.length;
|
|
}
|
|
return result;
|
|
}
|
|
function parseNotationOptions(opt) {
|
|
var result = {};
|
|
var signOpts = parseSign(opt);
|
|
if (signOpts) {
|
|
return signOpts;
|
|
}
|
|
return result;
|
|
}
|
|
function parseNumberSkeleton(tokens) {
|
|
var result = {};
|
|
for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {
|
|
var token = tokens_1[_i];
|
|
switch (token.stem) {
|
|
case "percent":
|
|
case "%":
|
|
result.style = "percent";
|
|
continue;
|
|
case "%x100":
|
|
result.style = "percent";
|
|
result.scale = 100;
|
|
continue;
|
|
case "currency":
|
|
result.style = "currency";
|
|
result.currency = token.options[0];
|
|
continue;
|
|
case "group-off":
|
|
case ",_":
|
|
result.useGrouping = false;
|
|
continue;
|
|
case "precision-integer":
|
|
case ".":
|
|
result.maximumFractionDigits = 0;
|
|
continue;
|
|
case "measure-unit":
|
|
case "unit":
|
|
result.style = "unit";
|
|
result.unit = icuUnitToEcma(token.options[0]);
|
|
continue;
|
|
case "compact-short":
|
|
case "K":
|
|
result.notation = "compact";
|
|
result.compactDisplay = "short";
|
|
continue;
|
|
case "compact-long":
|
|
case "KK":
|
|
result.notation = "compact";
|
|
result.compactDisplay = "long";
|
|
continue;
|
|
case "scientific":
|
|
result = __assign(__assign(__assign({}, result), { notation: "scientific" }), token.options.reduce(function(all, opt2) {
|
|
return __assign(__assign({}, all), parseNotationOptions(opt2));
|
|
}, {}));
|
|
continue;
|
|
case "engineering":
|
|
result = __assign(__assign(__assign({}, result), { notation: "engineering" }), token.options.reduce(function(all, opt2) {
|
|
return __assign(__assign({}, all), parseNotationOptions(opt2));
|
|
}, {}));
|
|
continue;
|
|
case "notation-simple":
|
|
result.notation = "standard";
|
|
continue;
|
|
case "unit-width-narrow":
|
|
result.currencyDisplay = "narrowSymbol";
|
|
result.unitDisplay = "narrow";
|
|
continue;
|
|
case "unit-width-short":
|
|
result.currencyDisplay = "code";
|
|
result.unitDisplay = "short";
|
|
continue;
|
|
case "unit-width-full-name":
|
|
result.currencyDisplay = "name";
|
|
result.unitDisplay = "long";
|
|
continue;
|
|
case "unit-width-iso-code":
|
|
result.currencyDisplay = "symbol";
|
|
continue;
|
|
case "scale":
|
|
result.scale = parseFloat(token.options[0]);
|
|
continue;
|
|
case "integer-width":
|
|
if (token.options.length > 1) {
|
|
throw new RangeError("integer-width stems only accept a single optional option");
|
|
}
|
|
token.options[0].replace(INTEGER_WIDTH_REGEX, function(_, g1, g2, g3, g4, g5) {
|
|
if (g1) {
|
|
result.minimumIntegerDigits = g2.length;
|
|
} else if (g3 && g4) {
|
|
throw new Error("We currently do not support maximum integer digits");
|
|
} else if (g5) {
|
|
throw new Error("We currently do not support exact integer digits");
|
|
}
|
|
return "";
|
|
});
|
|
continue;
|
|
}
|
|
if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {
|
|
result.minimumIntegerDigits = token.stem.length;
|
|
continue;
|
|
}
|
|
if (FRACTION_PRECISION_REGEX.test(token.stem)) {
|
|
if (token.options.length > 1) {
|
|
throw new RangeError("Fraction-precision stems only accept a single optional option");
|
|
}
|
|
token.stem.replace(FRACTION_PRECISION_REGEX, function(_, g1, g2, g3, g4, g5) {
|
|
if (g2 === "*") {
|
|
result.minimumFractionDigits = g1.length;
|
|
} else if (g3 && g3[0] === "#") {
|
|
result.maximumFractionDigits = g3.length;
|
|
} else if (g4 && g5) {
|
|
result.minimumFractionDigits = g4.length;
|
|
result.maximumFractionDigits = g4.length + g5.length;
|
|
} else {
|
|
result.minimumFractionDigits = g1.length;
|
|
result.maximumFractionDigits = g1.length;
|
|
}
|
|
return "";
|
|
});
|
|
var opt = token.options[0];
|
|
if (opt === "w") {
|
|
result = __assign(__assign({}, result), { trailingZeroDisplay: "stripIfInteger" });
|
|
} else if (opt) {
|
|
result = __assign(__assign({}, result), parseSignificantPrecision(opt));
|
|
}
|
|
continue;
|
|
}
|
|
if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {
|
|
result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));
|
|
continue;
|
|
}
|
|
var signOpts = parseSign(token.stem);
|
|
if (signOpts) {
|
|
result = __assign(__assign({}, result), signOpts);
|
|
}
|
|
var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);
|
|
if (conciseScientificAndEngineeringOpts) {
|
|
result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
// bazel-out/darwin-fastbuild/bin/packages/icu-messageformat-parser/lib/time-data.generated.js
|
|
var timeData = {
|
|
"AX": [
|
|
"H"
|
|
],
|
|
"BQ": [
|
|
"H"
|
|
],
|
|
"CP": [
|
|
"H"
|
|
],
|
|
"CZ": [
|
|
"H"
|
|
],
|
|
"DK": [
|
|
"H"
|
|
],
|
|
"FI": [
|
|
"H"
|
|
],
|
|
"ID": [
|
|
"H"
|
|
],
|
|
"IS": [
|
|
"H"
|
|
],
|
|
"ML": [
|
|
"H"
|
|
],
|
|
"NE": [
|
|
"H"
|
|
],
|
|
"RU": [
|
|
"H"
|
|
],
|
|
"SE": [
|
|
"H"
|
|
],
|
|
"SJ": [
|
|
"H"
|
|
],
|
|
"SK": [
|
|
"H"
|
|
],
|
|
"AS": [
|
|
"h",
|
|
"H"
|
|
],
|
|
"BT": [
|
|
"h",
|
|
"H"
|
|
],
|
|
"DJ": [
|
|
"h",
|
|
"H"
|
|
],
|
|
"ER": [
|
|
"h",
|
|
"H"
|
|
],
|
|
"GH": [
|
|
"h",
|
|
"H"
|
|
],
|
|
"IN": [
|
|
"h",
|
|
"H"
|
|
],
|
|
"LS": [
|
|
"h",
|
|
"H"
|
|
],
|
|
"PG": [
|
|
"h",
|
|
"H"
|
|
],
|
|
"PW": [
|
|
"h",
|
|
"H"
|
|
],
|
|
"SO": [
|
|
"h",
|
|
"H"
|
|
],
|
|
"TO": [
|
|
"h",
|
|
"H"
|
|
],
|
|
"VU": [
|
|
"h",
|
|
"H"
|
|
],
|
|
"WS": [
|
|
"h",
|
|
"H"
|
|
],
|
|
"001": [
|
|
"H",
|
|
"h"
|
|
],
|
|
"AL": [
|
|
"h",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"TD": [
|
|
"h",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"ca-ES": [
|
|
"H",
|
|
"h",
|
|
"hB"
|
|
],
|
|
"CF": [
|
|
"H",
|
|
"h",
|
|
"hB"
|
|
],
|
|
"CM": [
|
|
"H",
|
|
"h",
|
|
"hB"
|
|
],
|
|
"fr-CA": [
|
|
"H",
|
|
"h",
|
|
"hB"
|
|
],
|
|
"gl-ES": [
|
|
"H",
|
|
"h",
|
|
"hB"
|
|
],
|
|
"it-CH": [
|
|
"H",
|
|
"h",
|
|
"hB"
|
|
],
|
|
"it-IT": [
|
|
"H",
|
|
"h",
|
|
"hB"
|
|
],
|
|
"LU": [
|
|
"H",
|
|
"h",
|
|
"hB"
|
|
],
|
|
"NP": [
|
|
"H",
|
|
"h",
|
|
"hB"
|
|
],
|
|
"PF": [
|
|
"H",
|
|
"h",
|
|
"hB"
|
|
],
|
|
"SC": [
|
|
"H",
|
|
"h",
|
|
"hB"
|
|
],
|
|
"SM": [
|
|
"H",
|
|
"h",
|
|
"hB"
|
|
],
|
|
"SN": [
|
|
"H",
|
|
"h",
|
|
"hB"
|
|
],
|
|
"TF": [
|
|
"H",
|
|
"h",
|
|
"hB"
|
|
],
|
|
"VA": [
|
|
"H",
|
|
"h",
|
|
"hB"
|
|
],
|
|
"CY": [
|
|
"h",
|
|
"H",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"GR": [
|
|
"h",
|
|
"H",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"CO": [
|
|
"h",
|
|
"H",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"DO": [
|
|
"h",
|
|
"H",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"KP": [
|
|
"h",
|
|
"H",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"KR": [
|
|
"h",
|
|
"H",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"NA": [
|
|
"h",
|
|
"H",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"PA": [
|
|
"h",
|
|
"H",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"PR": [
|
|
"h",
|
|
"H",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"VE": [
|
|
"h",
|
|
"H",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"AC": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"AI": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"BW": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"BZ": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"CC": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"CK": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"CX": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"DG": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"FK": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"GB": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"GG": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"GI": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"IE": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"IM": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"IO": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"JE": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"LT": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"MK": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"MN": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"MS": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"NF": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"NG": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"NR": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"NU": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"PN": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"SH": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"SX": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"TA": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"ZA": [
|
|
"H",
|
|
"h",
|
|
"hb",
|
|
"hB"
|
|
],
|
|
"af-ZA": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"AR": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"CL": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"CR": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"CU": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"EA": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"es-BO": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"es-BR": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"es-EC": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"es-ES": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"es-GQ": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"es-PE": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"GT": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"HN": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"IC": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"KG": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"KM": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"LK": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"MA": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"MX": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"NI": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"PY": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"SV": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"UY": [
|
|
"H",
|
|
"h",
|
|
"hB",
|
|
"hb"
|
|
],
|
|
"JP": [
|
|
"H",
|
|
"h",
|
|
"K"
|
|
],
|
|
"AD": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"AM": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"AO": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"AT": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"AW": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"BE": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"BF": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"BJ": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"BL": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"BR": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"CG": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"CI": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"CV": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"DE": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"EE": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"FR": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"GA": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"GF": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"GN": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"GP": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"GW": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"HR": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"IL": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"IT": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"KZ": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"MC": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"MD": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"MF": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"MQ": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"MZ": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"NC": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"NL": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"PM": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"PT": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"RE": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"RO": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"SI": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"SR": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"ST": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"TG": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"TR": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"WF": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"YT": [
|
|
"H",
|
|
"hB"
|
|
],
|
|
"BD": [
|
|
"h",
|
|
"hB",
|
|
"H"
|
|
],
|
|
"PK": [
|
|
"h",
|
|
"hB",
|
|
"H"
|
|
],
|
|
"AZ": [
|
|
"H",
|
|
"hB",
|
|
"h"
|
|
],
|
|
"BA": [
|
|
"H",
|
|
"hB",
|
|
"h"
|
|
],
|
|
"BG": [
|
|
"H",
|
|
"hB",
|
|
"h"
|
|
],
|
|
"CH": [
|
|
"H",
|
|
"hB",
|
|
"h"
|
|
],
|
|
"GE": [
|
|
"H",
|
|
"hB",
|
|
"h"
|
|
],
|
|
"LI": [
|
|
"H",
|
|
"hB",
|
|
"h"
|
|
],
|
|
"ME": [
|
|
"H",
|
|
"hB",
|
|
"h"
|
|
],
|
|
"RS": [
|
|
"H",
|
|
"hB",
|
|
"h"
|
|
],
|
|
"UA": [
|
|
"H",
|
|
"hB",
|
|
"h"
|
|
],
|
|
"UZ": [
|
|
"H",
|
|
"hB",
|
|
"h"
|
|
],
|
|
"XK": [
|
|
"H",
|
|
"hB",
|
|
"h"
|
|
],
|
|
"AG": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"AU": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"BB": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"BM": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"BS": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"CA": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"DM": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"en-001": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"FJ": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"FM": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"GD": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"GM": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"GU": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"GY": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"JM": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"KI": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"KN": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"KY": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"LC": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"LR": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"MH": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"MP": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"MW": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"NZ": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"SB": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"SG": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"SL": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"SS": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"SZ": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"TC": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"TT": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"UM": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"US": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"VC": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"VG": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"VI": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"ZM": [
|
|
"h",
|
|
"hb",
|
|
"H",
|
|
"hB"
|
|
],
|
|
"BO": [
|
|
"H",
|
|
"hB",
|
|
"h",
|
|
"hb"
|
|
],
|
|
"EC": [
|
|
"H",
|
|
"hB",
|
|
"h",
|
|
"hb"
|
|
],
|
|
"ES": [
|
|
"H",
|
|
"hB",
|
|
"h",
|
|
"hb"
|
|
],
|
|
"GQ": [
|
|
"H",
|
|
"hB",
|
|
"h",
|
|
"hb"
|
|
],
|
|
"PE": [
|
|
"H",
|
|
"hB",
|
|
"h",
|
|
"hb"
|
|
],
|
|
"AE": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"ar-001": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"BH": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"DZ": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"EG": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"EH": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"HK": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"IQ": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"JO": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"KW": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"LB": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"LY": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"MO": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"MR": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"OM": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"PH": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"PS": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"QA": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"SA": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"SD": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"SY": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"TN": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"YE": [
|
|
"h",
|
|
"hB",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"AF": [
|
|
"H",
|
|
"hb",
|
|
"hB",
|
|
"h"
|
|
],
|
|
"LA": [
|
|
"H",
|
|
"hb",
|
|
"hB",
|
|
"h"
|
|
],
|
|
"CN": [
|
|
"H",
|
|
"hB",
|
|
"hb",
|
|
"h"
|
|
],
|
|
"LV": [
|
|
"H",
|
|
"hB",
|
|
"hb",
|
|
"h"
|
|
],
|
|
"TL": [
|
|
"H",
|
|
"hB",
|
|
"hb",
|
|
"h"
|
|
],
|
|
"zu-ZA": [
|
|
"H",
|
|
"hB",
|
|
"hb",
|
|
"h"
|
|
],
|
|
"CD": [
|
|
"hB",
|
|
"H"
|
|
],
|
|
"IR": [
|
|
"hB",
|
|
"H"
|
|
],
|
|
"hi-IN": [
|
|
"hB",
|
|
"h",
|
|
"H"
|
|
],
|
|
"kn-IN": [
|
|
"hB",
|
|
"h",
|
|
"H"
|
|
],
|
|
"ml-IN": [
|
|
"hB",
|
|
"h",
|
|
"H"
|
|
],
|
|
"te-IN": [
|
|
"hB",
|
|
"h",
|
|
"H"
|
|
],
|
|
"KH": [
|
|
"hB",
|
|
"h",
|
|
"H",
|
|
"hb"
|
|
],
|
|
"ta-IN": [
|
|
"hB",
|
|
"h",
|
|
"hb",
|
|
"H"
|
|
],
|
|
"BN": [
|
|
"hb",
|
|
"hB",
|
|
"h",
|
|
"H"
|
|
],
|
|
"MY": [
|
|
"hb",
|
|
"hB",
|
|
"h",
|
|
"H"
|
|
],
|
|
"ET": [
|
|
"hB",
|
|
"hb",
|
|
"h",
|
|
"H"
|
|
],
|
|
"gu-IN": [
|
|
"hB",
|
|
"hb",
|
|
"h",
|
|
"H"
|
|
],
|
|
"mr-IN": [
|
|
"hB",
|
|
"hb",
|
|
"h",
|
|
"H"
|
|
],
|
|
"pa-IN": [
|
|
"hB",
|
|
"hb",
|
|
"h",
|
|
"H"
|
|
],
|
|
"TW": [
|
|
"hB",
|
|
"hb",
|
|
"h",
|
|
"H"
|
|
],
|
|
"KE": [
|
|
"hB",
|
|
"hb",
|
|
"H",
|
|
"h"
|
|
],
|
|
"MM": [
|
|
"hB",
|
|
"hb",
|
|
"H",
|
|
"h"
|
|
],
|
|
"TZ": [
|
|
"hB",
|
|
"hb",
|
|
"H",
|
|
"h"
|
|
],
|
|
"UG": [
|
|
"hB",
|
|
"hb",
|
|
"H",
|
|
"h"
|
|
]
|
|
};
|
|
|
|
// bazel-out/darwin-fastbuild/bin/packages/icu-messageformat-parser/lib/date-time-pattern-generator.js
|
|
function getBestPattern(skeleton, locale) {
|
|
var skeletonCopy = "";
|
|
for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {
|
|
var patternChar = skeleton.charAt(patternPos);
|
|
if (patternChar === "j") {
|
|
var extraLength = 0;
|
|
while (patternPos + 1 < skeleton.length && skeleton.charAt(patternPos + 1) === patternChar) {
|
|
extraLength++;
|
|
patternPos++;
|
|
}
|
|
var hourLen = 1 + (extraLength & 1);
|
|
var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);
|
|
var dayPeriodChar = "a";
|
|
var hourChar = getDefaultHourSymbolFromLocale(locale);
|
|
if (hourChar == "H" || hourChar == "k") {
|
|
dayPeriodLen = 0;
|
|
}
|
|
while (dayPeriodLen-- > 0) {
|
|
skeletonCopy += dayPeriodChar;
|
|
}
|
|
while (hourLen-- > 0) {
|
|
skeletonCopy = hourChar + skeletonCopy;
|
|
}
|
|
} else if (patternChar === "J") {
|
|
skeletonCopy += "H";
|
|
} else {
|
|
skeletonCopy += patternChar;
|
|
}
|
|
}
|
|
return skeletonCopy;
|
|
}
|
|
function getDefaultHourSymbolFromLocale(locale) {
|
|
var hourCycle = locale.hourCycle;
|
|
if (hourCycle === void 0 && locale.hourCycles && locale.hourCycles.length) {
|
|
hourCycle = locale.hourCycles[0];
|
|
}
|
|
if (hourCycle) {
|
|
switch (hourCycle) {
|
|
case "h24":
|
|
return "k";
|
|
case "h23":
|
|
return "H";
|
|
case "h12":
|
|
return "h";
|
|
case "h11":
|
|
return "K";
|
|
default:
|
|
throw new Error("Invalid hourCycle");
|
|
}
|
|
}
|
|
var languageTag = locale.language;
|
|
var regionTag;
|
|
if (languageTag !== "root") {
|
|
regionTag = locale.maximize().region;
|
|
}
|
|
var hourCycles = timeData[regionTag || ""] || timeData[languageTag || ""] || timeData["".concat(languageTag, "-001")] || timeData["001"];
|
|
return hourCycles[0];
|
|
}
|
|
|
|
// bazel-out/darwin-fastbuild/bin/packages/icu-messageformat-parser/lib/parser.js
|
|
var _a;
|
|
var SPACE_SEPARATOR_START_REGEX = new RegExp("^".concat(SPACE_SEPARATOR_REGEX.source, "*"));
|
|
var SPACE_SEPARATOR_END_REGEX = new RegExp("".concat(SPACE_SEPARATOR_REGEX.source, "*$"));
|
|
function createLocation(start, end) {
|
|
return { start, end };
|
|
}
|
|
var hasNativeStartsWith = !!String.prototype.startsWith;
|
|
var hasNativeFromCodePoint = !!String.fromCodePoint;
|
|
var hasNativeFromEntries = !!Object.fromEntries;
|
|
var hasNativeCodePointAt = !!String.prototype.codePointAt;
|
|
var hasTrimStart = !!String.prototype.trimStart;
|
|
var hasTrimEnd = !!String.prototype.trimEnd;
|
|
var hasNativeIsSafeInteger = !!Number.isSafeInteger;
|
|
var isSafeInteger = hasNativeIsSafeInteger ? Number.isSafeInteger : function(n) {
|
|
return typeof n === "number" && isFinite(n) && Math.floor(n) === n && Math.abs(n) <= 9007199254740991;
|
|
};
|
|
var REGEX_SUPPORTS_U_AND_Y = true;
|
|
try {
|
|
re = RE("([^\\p{White_Space}\\p{Pattern_Syntax}]*)", "yu");
|
|
REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec("a")) === null || _a === void 0 ? void 0 : _a[0]) === "a";
|
|
} catch (_) {
|
|
REGEX_SUPPORTS_U_AND_Y = false;
|
|
}
|
|
var re;
|
|
var startsWith = hasNativeStartsWith ? function startsWith2(s, search, position) {
|
|
return s.startsWith(search, position);
|
|
} : function startsWith3(s, search, position) {
|
|
return s.slice(position, position + search.length) === search;
|
|
};
|
|
var fromCodePoint = hasNativeFromCodePoint ? String.fromCodePoint : function fromCodePoint2() {
|
|
var codePoints = [];
|
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
codePoints[_i] = arguments[_i];
|
|
}
|
|
var elements = "";
|
|
var length = codePoints.length;
|
|
var i = 0;
|
|
var code;
|
|
while (length > i) {
|
|
code = codePoints[i++];
|
|
if (code > 1114111)
|
|
throw RangeError(code + " is not a valid code point");
|
|
elements += code < 65536 ? String.fromCharCode(code) : String.fromCharCode(((code -= 65536) >> 10) + 55296, code % 1024 + 56320);
|
|
}
|
|
return elements;
|
|
};
|
|
var fromEntries = hasNativeFromEntries ? Object.fromEntries : function fromEntries2(entries) {
|
|
var obj = {};
|
|
for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
|
|
var _a2 = entries_1[_i], k = _a2[0], v = _a2[1];
|
|
obj[k] = v;
|
|
}
|
|
return obj;
|
|
};
|
|
var codePointAt = hasNativeCodePointAt ? function codePointAt2(s, index) {
|
|
return s.codePointAt(index);
|
|
} : function codePointAt3(s, index) {
|
|
var size = s.length;
|
|
if (index < 0 || index >= size) {
|
|
return void 0;
|
|
}
|
|
var first = s.charCodeAt(index);
|
|
var second;
|
|
return first < 55296 || first > 56319 || index + 1 === size || (second = s.charCodeAt(index + 1)) < 56320 || second > 57343 ? first : (first - 55296 << 10) + (second - 56320) + 65536;
|
|
};
|
|
var trimStart = hasTrimStart ? function trimStart2(s) {
|
|
return s.trimStart();
|
|
} : function trimStart3(s) {
|
|
return s.replace(SPACE_SEPARATOR_START_REGEX, "");
|
|
};
|
|
var trimEnd = hasTrimEnd ? function trimEnd2(s) {
|
|
return s.trimEnd();
|
|
} : function trimEnd3(s) {
|
|
return s.replace(SPACE_SEPARATOR_END_REGEX, "");
|
|
};
|
|
function RE(s, flag) {
|
|
return new RegExp(s, flag);
|
|
}
|
|
var matchIdentifierAtIndex;
|
|
if (REGEX_SUPPORTS_U_AND_Y) {
|
|
IDENTIFIER_PREFIX_RE_1 = RE("([^\\p{White_Space}\\p{Pattern_Syntax}]*)", "yu");
|
|
matchIdentifierAtIndex = function matchIdentifierAtIndex2(s, index) {
|
|
var _a2;
|
|
IDENTIFIER_PREFIX_RE_1.lastIndex = index;
|
|
var match = IDENTIFIER_PREFIX_RE_1.exec(s);
|
|
return (_a2 = match[1]) !== null && _a2 !== void 0 ? _a2 : "";
|
|
};
|
|
} else {
|
|
matchIdentifierAtIndex = function matchIdentifierAtIndex2(s, index) {
|
|
var match = [];
|
|
while (true) {
|
|
var c = codePointAt(s, index);
|
|
if (c === void 0 || _isWhiteSpace(c) || _isPatternSyntax(c)) {
|
|
break;
|
|
}
|
|
match.push(c);
|
|
index += c >= 65536 ? 2 : 1;
|
|
}
|
|
return fromCodePoint.apply(void 0, match);
|
|
};
|
|
}
|
|
var IDENTIFIER_PREFIX_RE_1;
|
|
var Parser = function() {
|
|
function Parser2(message, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
this.message = message;
|
|
this.position = { offset: 0, line: 1, column: 1 };
|
|
this.ignoreTag = !!options.ignoreTag;
|
|
this.locale = options.locale;
|
|
this.requiresOtherClause = !!options.requiresOtherClause;
|
|
this.shouldParseSkeletons = !!options.shouldParseSkeletons;
|
|
}
|
|
Parser2.prototype.parse = function() {
|
|
if (this.offset() !== 0) {
|
|
throw Error("parser can only be used once");
|
|
}
|
|
return this.parseMessage(0, "", false);
|
|
};
|
|
Parser2.prototype.parseMessage = function(nestingLevel, parentArgType, expectingCloseTag) {
|
|
var elements = [];
|
|
while (!this.isEOF()) {
|
|
var char = this.char();
|
|
if (char === 123) {
|
|
var result = this.parseArgument(nestingLevel, expectingCloseTag);
|
|
if (result.err) {
|
|
return result;
|
|
}
|
|
elements.push(result.val);
|
|
} else if (char === 125 && nestingLevel > 0) {
|
|
break;
|
|
} else if (char === 35 && (parentArgType === "plural" || parentArgType === "selectordinal")) {
|
|
var position = this.clonePosition();
|
|
this.bump();
|
|
elements.push({
|
|
type: TYPE.pound,
|
|
location: createLocation(position, this.clonePosition())
|
|
});
|
|
} else if (char === 60 && !this.ignoreTag && this.peek() === 47) {
|
|
if (expectingCloseTag) {
|
|
break;
|
|
} else {
|
|
return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));
|
|
}
|
|
} else if (char === 60 && !this.ignoreTag && _isAlpha(this.peek() || 0)) {
|
|
var result = this.parseTag(nestingLevel, parentArgType);
|
|
if (result.err) {
|
|
return result;
|
|
}
|
|
elements.push(result.val);
|
|
} else {
|
|
var result = this.parseLiteral(nestingLevel, parentArgType);
|
|
if (result.err) {
|
|
return result;
|
|
}
|
|
elements.push(result.val);
|
|
}
|
|
}
|
|
return { val: elements, err: null };
|
|
};
|
|
Parser2.prototype.parseTag = function(nestingLevel, parentArgType) {
|
|
var startPosition = this.clonePosition();
|
|
this.bump();
|
|
var tagName = this.parseTagName();
|
|
this.bumpSpace();
|
|
if (this.bumpIf("/>")) {
|
|
return {
|
|
val: {
|
|
type: TYPE.literal,
|
|
value: "<".concat(tagName, "/>"),
|
|
location: createLocation(startPosition, this.clonePosition())
|
|
},
|
|
err: null
|
|
};
|
|
} else if (this.bumpIf(">")) {
|
|
var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);
|
|
if (childrenResult.err) {
|
|
return childrenResult;
|
|
}
|
|
var children = childrenResult.val;
|
|
var endTagStartPosition = this.clonePosition();
|
|
if (this.bumpIf("</")) {
|
|
if (this.isEOF() || !_isAlpha(this.char())) {
|
|
return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));
|
|
}
|
|
var closingTagNameStartPosition = this.clonePosition();
|
|
var closingTagName = this.parseTagName();
|
|
if (tagName !== closingTagName) {
|
|
return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));
|
|
}
|
|
this.bumpSpace();
|
|
if (!this.bumpIf(">")) {
|
|
return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));
|
|
}
|
|
return {
|
|
val: {
|
|
type: TYPE.tag,
|
|
value: tagName,
|
|
children,
|
|
location: createLocation(startPosition, this.clonePosition())
|
|
},
|
|
err: null
|
|
};
|
|
} else {
|
|
return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));
|
|
}
|
|
} else {
|
|
return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));
|
|
}
|
|
};
|
|
Parser2.prototype.parseTagName = function() {
|
|
var startOffset = this.offset();
|
|
this.bump();
|
|
while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {
|
|
this.bump();
|
|
}
|
|
return this.message.slice(startOffset, this.offset());
|
|
};
|
|
Parser2.prototype.parseLiteral = function(nestingLevel, parentArgType) {
|
|
var start = this.clonePosition();
|
|
var value = "";
|
|
while (true) {
|
|
var parseQuoteResult = this.tryParseQuote(parentArgType);
|
|
if (parseQuoteResult) {
|
|
value += parseQuoteResult;
|
|
continue;
|
|
}
|
|
var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);
|
|
if (parseUnquotedResult) {
|
|
value += parseUnquotedResult;
|
|
continue;
|
|
}
|
|
var parseLeftAngleResult = this.tryParseLeftAngleBracket();
|
|
if (parseLeftAngleResult) {
|
|
value += parseLeftAngleResult;
|
|
continue;
|
|
}
|
|
break;
|
|
}
|
|
var location = createLocation(start, this.clonePosition());
|
|
return {
|
|
val: { type: TYPE.literal, value, location },
|
|
err: null
|
|
};
|
|
};
|
|
Parser2.prototype.tryParseLeftAngleBracket = function() {
|
|
if (!this.isEOF() && this.char() === 60 && (this.ignoreTag || !_isAlphaOrSlash(this.peek() || 0))) {
|
|
this.bump();
|
|
return "<";
|
|
}
|
|
return null;
|
|
};
|
|
Parser2.prototype.tryParseQuote = function(parentArgType) {
|
|
if (this.isEOF() || this.char() !== 39) {
|
|
return null;
|
|
}
|
|
switch (this.peek()) {
|
|
case 39:
|
|
this.bump();
|
|
this.bump();
|
|
return "'";
|
|
case 123:
|
|
case 60:
|
|
case 62:
|
|
case 125:
|
|
break;
|
|
case 35:
|
|
if (parentArgType === "plural" || parentArgType === "selectordinal") {
|
|
break;
|
|
}
|
|
return null;
|
|
default:
|
|
return null;
|
|
}
|
|
this.bump();
|
|
var codePoints = [this.char()];
|
|
this.bump();
|
|
while (!this.isEOF()) {
|
|
var ch = this.char();
|
|
if (ch === 39) {
|
|
if (this.peek() === 39) {
|
|
codePoints.push(39);
|
|
this.bump();
|
|
} else {
|
|
this.bump();
|
|
break;
|
|
}
|
|
} else {
|
|
codePoints.push(ch);
|
|
}
|
|
this.bump();
|
|
}
|
|
return fromCodePoint.apply(void 0, codePoints);
|
|
};
|
|
Parser2.prototype.tryParseUnquoted = function(nestingLevel, parentArgType) {
|
|
if (this.isEOF()) {
|
|
return null;
|
|
}
|
|
var ch = this.char();
|
|
if (ch === 60 || ch === 123 || ch === 35 && (parentArgType === "plural" || parentArgType === "selectordinal") || ch === 125 && nestingLevel > 0) {
|
|
return null;
|
|
} else {
|
|
this.bump();
|
|
return fromCodePoint(ch);
|
|
}
|
|
};
|
|
Parser2.prototype.parseArgument = function(nestingLevel, expectingCloseTag) {
|
|
var openingBracePosition = this.clonePosition();
|
|
this.bump();
|
|
this.bumpSpace();
|
|
if (this.isEOF()) {
|
|
return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));
|
|
}
|
|
if (this.char() === 125) {
|
|
this.bump();
|
|
return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));
|
|
}
|
|
var value = this.parseIdentifierIfPossible().value;
|
|
if (!value) {
|
|
return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));
|
|
}
|
|
this.bumpSpace();
|
|
if (this.isEOF()) {
|
|
return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));
|
|
}
|
|
switch (this.char()) {
|
|
case 125: {
|
|
this.bump();
|
|
return {
|
|
val: {
|
|
type: TYPE.argument,
|
|
value,
|
|
location: createLocation(openingBracePosition, this.clonePosition())
|
|
},
|
|
err: null
|
|
};
|
|
}
|
|
case 44: {
|
|
this.bump();
|
|
this.bumpSpace();
|
|
if (this.isEOF()) {
|
|
return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));
|
|
}
|
|
return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);
|
|
}
|
|
default:
|
|
return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));
|
|
}
|
|
};
|
|
Parser2.prototype.parseIdentifierIfPossible = function() {
|
|
var startingPosition = this.clonePosition();
|
|
var startOffset = this.offset();
|
|
var value = matchIdentifierAtIndex(this.message, startOffset);
|
|
var endOffset = startOffset + value.length;
|
|
this.bumpTo(endOffset);
|
|
var endPosition = this.clonePosition();
|
|
var location = createLocation(startingPosition, endPosition);
|
|
return { value, location };
|
|
};
|
|
Parser2.prototype.parseArgumentOptions = function(nestingLevel, expectingCloseTag, value, openingBracePosition) {
|
|
var _a2;
|
|
var typeStartPosition = this.clonePosition();
|
|
var argType = this.parseIdentifierIfPossible().value;
|
|
var typeEndPosition = this.clonePosition();
|
|
switch (argType) {
|
|
case "":
|
|
return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));
|
|
case "number":
|
|
case "date":
|
|
case "time": {
|
|
this.bumpSpace();
|
|
var styleAndLocation = null;
|
|
if (this.bumpIf(",")) {
|
|
this.bumpSpace();
|
|
var styleStartPosition = this.clonePosition();
|
|
var result = this.parseSimpleArgStyleIfPossible();
|
|
if (result.err) {
|
|
return result;
|
|
}
|
|
var style = trimEnd(result.val);
|
|
if (style.length === 0) {
|
|
return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));
|
|
}
|
|
var styleLocation = createLocation(styleStartPosition, this.clonePosition());
|
|
styleAndLocation = { style, styleLocation };
|
|
}
|
|
var argCloseResult = this.tryParseArgumentClose(openingBracePosition);
|
|
if (argCloseResult.err) {
|
|
return argCloseResult;
|
|
}
|
|
var location_1 = createLocation(openingBracePosition, this.clonePosition());
|
|
if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, "::", 0)) {
|
|
var skeleton = trimStart(styleAndLocation.style.slice(2));
|
|
if (argType === "number") {
|
|
var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);
|
|
if (result.err) {
|
|
return result;
|
|
}
|
|
return {
|
|
val: { type: TYPE.number, value, location: location_1, style: result.val },
|
|
err: null
|
|
};
|
|
} else {
|
|
if (skeleton.length === 0) {
|
|
return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);
|
|
}
|
|
var dateTimePattern = skeleton;
|
|
if (this.locale) {
|
|
dateTimePattern = getBestPattern(skeleton, this.locale);
|
|
}
|
|
var style = {
|
|
type: SKELETON_TYPE.dateTime,
|
|
pattern: dateTimePattern,
|
|
location: styleAndLocation.styleLocation,
|
|
parsedOptions: this.shouldParseSkeletons ? parseDateTimeSkeleton(dateTimePattern) : {}
|
|
};
|
|
var type = argType === "date" ? TYPE.date : TYPE.time;
|
|
return {
|
|
val: { type, value, location: location_1, style },
|
|
err: null
|
|
};
|
|
}
|
|
}
|
|
return {
|
|
val: {
|
|
type: argType === "number" ? TYPE.number : argType === "date" ? TYPE.date : TYPE.time,
|
|
value,
|
|
location: location_1,
|
|
style: (_a2 = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a2 !== void 0 ? _a2 : null
|
|
},
|
|
err: null
|
|
};
|
|
}
|
|
case "plural":
|
|
case "selectordinal":
|
|
case "select": {
|
|
var typeEndPosition_1 = this.clonePosition();
|
|
this.bumpSpace();
|
|
if (!this.bumpIf(",")) {
|
|
return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));
|
|
}
|
|
this.bumpSpace();
|
|
var identifierAndLocation = this.parseIdentifierIfPossible();
|
|
var pluralOffset = 0;
|
|
if (argType !== "select" && identifierAndLocation.value === "offset") {
|
|
if (!this.bumpIf(":")) {
|
|
return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));
|
|
}
|
|
this.bumpSpace();
|
|
var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);
|
|
if (result.err) {
|
|
return result;
|
|
}
|
|
this.bumpSpace();
|
|
identifierAndLocation = this.parseIdentifierIfPossible();
|
|
pluralOffset = result.val;
|
|
}
|
|
var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);
|
|
if (optionsResult.err) {
|
|
return optionsResult;
|
|
}
|
|
var argCloseResult = this.tryParseArgumentClose(openingBracePosition);
|
|
if (argCloseResult.err) {
|
|
return argCloseResult;
|
|
}
|
|
var location_2 = createLocation(openingBracePosition, this.clonePosition());
|
|
if (argType === "select") {
|
|
return {
|
|
val: {
|
|
type: TYPE.select,
|
|
value,
|
|
options: fromEntries(optionsResult.val),
|
|
location: location_2
|
|
},
|
|
err: null
|
|
};
|
|
} else {
|
|
return {
|
|
val: {
|
|
type: TYPE.plural,
|
|
value,
|
|
options: fromEntries(optionsResult.val),
|
|
offset: pluralOffset,
|
|
pluralType: argType === "plural" ? "cardinal" : "ordinal",
|
|
location: location_2
|
|
},
|
|
err: null
|
|
};
|
|
}
|
|
}
|
|
default:
|
|
return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));
|
|
}
|
|
};
|
|
Parser2.prototype.tryParseArgumentClose = function(openingBracePosition) {
|
|
if (this.isEOF() || this.char() !== 125) {
|
|
return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));
|
|
}
|
|
this.bump();
|
|
return { val: true, err: null };
|
|
};
|
|
Parser2.prototype.parseSimpleArgStyleIfPossible = function() {
|
|
var nestedBraces = 0;
|
|
var startPosition = this.clonePosition();
|
|
while (!this.isEOF()) {
|
|
var ch = this.char();
|
|
switch (ch) {
|
|
case 39: {
|
|
this.bump();
|
|
var apostrophePosition = this.clonePosition();
|
|
if (!this.bumpUntil("'")) {
|
|
return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));
|
|
}
|
|
this.bump();
|
|
break;
|
|
}
|
|
case 123: {
|
|
nestedBraces += 1;
|
|
this.bump();
|
|
break;
|
|
}
|
|
case 125: {
|
|
if (nestedBraces > 0) {
|
|
nestedBraces -= 1;
|
|
} else {
|
|
return {
|
|
val: this.message.slice(startPosition.offset, this.offset()),
|
|
err: null
|
|
};
|
|
}
|
|
break;
|
|
}
|
|
default:
|
|
this.bump();
|
|
break;
|
|
}
|
|
}
|
|
return {
|
|
val: this.message.slice(startPosition.offset, this.offset()),
|
|
err: null
|
|
};
|
|
};
|
|
Parser2.prototype.parseNumberSkeletonFromString = function(skeleton, location) {
|
|
var tokens = [];
|
|
try {
|
|
tokens = parseNumberSkeletonFromString(skeleton);
|
|
} catch (e) {
|
|
return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);
|
|
}
|
|
return {
|
|
val: {
|
|
type: SKELETON_TYPE.number,
|
|
tokens,
|
|
location,
|
|
parsedOptions: this.shouldParseSkeletons ? parseNumberSkeleton(tokens) : {}
|
|
},
|
|
err: null
|
|
};
|
|
};
|
|
Parser2.prototype.tryParsePluralOrSelectOptions = function(nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {
|
|
var _a2;
|
|
var hasOtherClause = false;
|
|
var options = [];
|
|
var parsedSelectors = /* @__PURE__ */ new Set();
|
|
var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;
|
|
while (true) {
|
|
if (selector.length === 0) {
|
|
var startPosition = this.clonePosition();
|
|
if (parentArgType !== "select" && this.bumpIf("=")) {
|
|
var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);
|
|
if (result.err) {
|
|
return result;
|
|
}
|
|
selectorLocation = createLocation(startPosition, this.clonePosition());
|
|
selector = this.message.slice(startPosition.offset, this.offset());
|
|
} else {
|
|
break;
|
|
}
|
|
}
|
|
if (parsedSelectors.has(selector)) {
|
|
return this.error(parentArgType === "select" ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);
|
|
}
|
|
if (selector === "other") {
|
|
hasOtherClause = true;
|
|
}
|
|
this.bumpSpace();
|
|
var openingBracePosition = this.clonePosition();
|
|
if (!this.bumpIf("{")) {
|
|
return this.error(parentArgType === "select" ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));
|
|
}
|
|
var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);
|
|
if (fragmentResult.err) {
|
|
return fragmentResult;
|
|
}
|
|
var argCloseResult = this.tryParseArgumentClose(openingBracePosition);
|
|
if (argCloseResult.err) {
|
|
return argCloseResult;
|
|
}
|
|
options.push([
|
|
selector,
|
|
{
|
|
value: fragmentResult.val,
|
|
location: createLocation(openingBracePosition, this.clonePosition())
|
|
}
|
|
]);
|
|
parsedSelectors.add(selector);
|
|
this.bumpSpace();
|
|
_a2 = this.parseIdentifierIfPossible(), selector = _a2.value, selectorLocation = _a2.location;
|
|
}
|
|
if (options.length === 0) {
|
|
return this.error(parentArgType === "select" ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));
|
|
}
|
|
if (this.requiresOtherClause && !hasOtherClause) {
|
|
return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));
|
|
}
|
|
return { val: options, err: null };
|
|
};
|
|
Parser2.prototype.tryParseDecimalInteger = function(expectNumberError, invalidNumberError) {
|
|
var sign = 1;
|
|
var startingPosition = this.clonePosition();
|
|
if (this.bumpIf("+")) {
|
|
} else if (this.bumpIf("-")) {
|
|
sign = -1;
|
|
}
|
|
var hasDigits = false;
|
|
var decimal = 0;
|
|
while (!this.isEOF()) {
|
|
var ch = this.char();
|
|
if (ch >= 48 && ch <= 57) {
|
|
hasDigits = true;
|
|
decimal = decimal * 10 + (ch - 48);
|
|
this.bump();
|
|
} else {
|
|
break;
|
|
}
|
|
}
|
|
var location = createLocation(startingPosition, this.clonePosition());
|
|
if (!hasDigits) {
|
|
return this.error(expectNumberError, location);
|
|
}
|
|
decimal *= sign;
|
|
if (!isSafeInteger(decimal)) {
|
|
return this.error(invalidNumberError, location);
|
|
}
|
|
return { val: decimal, err: null };
|
|
};
|
|
Parser2.prototype.offset = function() {
|
|
return this.position.offset;
|
|
};
|
|
Parser2.prototype.isEOF = function() {
|
|
return this.offset() === this.message.length;
|
|
};
|
|
Parser2.prototype.clonePosition = function() {
|
|
return {
|
|
offset: this.position.offset,
|
|
line: this.position.line,
|
|
column: this.position.column
|
|
};
|
|
};
|
|
Parser2.prototype.char = function() {
|
|
var offset = this.position.offset;
|
|
if (offset >= this.message.length) {
|
|
throw Error("out of bound");
|
|
}
|
|
var code = codePointAt(this.message, offset);
|
|
if (code === void 0) {
|
|
throw Error("Offset ".concat(offset, " is at invalid UTF-16 code unit boundary"));
|
|
}
|
|
return code;
|
|
};
|
|
Parser2.prototype.error = function(kind, location) {
|
|
return {
|
|
val: null,
|
|
err: {
|
|
kind,
|
|
message: this.message,
|
|
location
|
|
}
|
|
};
|
|
};
|
|
Parser2.prototype.bump = function() {
|
|
if (this.isEOF()) {
|
|
return;
|
|
}
|
|
var code = this.char();
|
|
if (code === 10) {
|
|
this.position.line += 1;
|
|
this.position.column = 1;
|
|
this.position.offset += 1;
|
|
} else {
|
|
this.position.column += 1;
|
|
this.position.offset += code < 65536 ? 1 : 2;
|
|
}
|
|
};
|
|
Parser2.prototype.bumpIf = function(prefix) {
|
|
if (startsWith(this.message, prefix, this.offset())) {
|
|
for (var i = 0; i < prefix.length; i++) {
|
|
this.bump();
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
};
|
|
Parser2.prototype.bumpUntil = function(pattern) {
|
|
var currentOffset = this.offset();
|
|
var index = this.message.indexOf(pattern, currentOffset);
|
|
if (index >= 0) {
|
|
this.bumpTo(index);
|
|
return true;
|
|
} else {
|
|
this.bumpTo(this.message.length);
|
|
return false;
|
|
}
|
|
};
|
|
Parser2.prototype.bumpTo = function(targetOffset) {
|
|
if (this.offset() > targetOffset) {
|
|
throw Error("targetOffset ".concat(targetOffset, " must be greater than or equal to the current offset ").concat(this.offset()));
|
|
}
|
|
targetOffset = Math.min(targetOffset, this.message.length);
|
|
while (true) {
|
|
var offset = this.offset();
|
|
if (offset === targetOffset) {
|
|
break;
|
|
}
|
|
if (offset > targetOffset) {
|
|
throw Error("targetOffset ".concat(targetOffset, " is at invalid UTF-16 code unit boundary"));
|
|
}
|
|
this.bump();
|
|
if (this.isEOF()) {
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
Parser2.prototype.bumpSpace = function() {
|
|
while (!this.isEOF() && _isWhiteSpace(this.char())) {
|
|
this.bump();
|
|
}
|
|
};
|
|
Parser2.prototype.peek = function() {
|
|
if (this.isEOF()) {
|
|
return null;
|
|
}
|
|
var code = this.char();
|
|
var offset = this.offset();
|
|
var nextCode = this.message.charCodeAt(offset + (code >= 65536 ? 2 : 1));
|
|
return nextCode !== null && nextCode !== void 0 ? nextCode : null;
|
|
};
|
|
return Parser2;
|
|
}();
|
|
function _isAlpha(codepoint) {
|
|
return codepoint >= 97 && codepoint <= 122 || codepoint >= 65 && codepoint <= 90;
|
|
}
|
|
function _isAlphaOrSlash(codepoint) {
|
|
return _isAlpha(codepoint) || codepoint === 47;
|
|
}
|
|
function _isPotentialElementNameChar(c) {
|
|
return c === 45 || c === 46 || c >= 48 && c <= 57 || c === 95 || c >= 97 && c <= 122 || c >= 65 && c <= 90 || c == 183 || c >= 192 && c <= 214 || c >= 216 && c <= 246 || c >= 248 && c <= 893 || c >= 895 && c <= 8191 || c >= 8204 && c <= 8205 || c >= 8255 && c <= 8256 || c >= 8304 && c <= 8591 || c >= 11264 && c <= 12271 || c >= 12289 && c <= 55295 || c >= 63744 && c <= 64975 || c >= 65008 && c <= 65533 || c >= 65536 && c <= 983039;
|
|
}
|
|
function _isWhiteSpace(c) {
|
|
return c >= 9 && c <= 13 || c === 32 || c === 133 || c >= 8206 && c <= 8207 || c === 8232 || c === 8233;
|
|
}
|
|
function _isPatternSyntax(c) {
|
|
return c >= 33 && c <= 35 || c === 36 || c >= 37 && c <= 39 || c === 40 || c === 41 || c === 42 || c === 43 || c === 44 || c === 45 || c >= 46 && c <= 47 || c >= 58 && c <= 59 || c >= 60 && c <= 62 || c >= 63 && c <= 64 || c === 91 || c === 92 || c === 93 || c === 94 || c === 96 || c === 123 || c === 124 || c === 125 || c === 126 || c === 161 || c >= 162 && c <= 165 || c === 166 || c === 167 || c === 169 || c === 171 || c === 172 || c === 174 || c === 176 || c === 177 || c === 182 || c === 187 || c === 191 || c === 215 || c === 247 || c >= 8208 && c <= 8213 || c >= 8214 && c <= 8215 || c === 8216 || c === 8217 || c === 8218 || c >= 8219 && c <= 8220 || c === 8221 || c === 8222 || c === 8223 || c >= 8224 && c <= 8231 || c >= 8240 && c <= 8248 || c === 8249 || c === 8250 || c >= 8251 && c <= 8254 || c >= 8257 && c <= 8259 || c === 8260 || c === 8261 || c === 8262 || c >= 8263 && c <= 8273 || c === 8274 || c === 8275 || c >= 8277 && c <= 8286 || c >= 8592 && c <= 8596 || c >= 8597 && c <= 8601 || c >= 8602 && c <= 8603 || c >= 8604 && c <= 8607 || c === 8608 || c >= 8609 && c <= 8610 || c === 8611 || c >= 8612 && c <= 8613 || c === 8614 || c >= 8615 && c <= 8621 || c === 8622 || c >= 8623 && c <= 8653 || c >= 8654 && c <= 8655 || c >= 8656 && c <= 8657 || c === 8658 || c === 8659 || c === 8660 || c >= 8661 && c <= 8691 || c >= 8692 && c <= 8959 || c >= 8960 && c <= 8967 || c === 8968 || c === 8969 || c === 8970 || c === 8971 || c >= 8972 && c <= 8991 || c >= 8992 && c <= 8993 || c >= 8994 && c <= 9e3 || c === 9001 || c === 9002 || c >= 9003 && c <= 9083 || c === 9084 || c >= 9085 && c <= 9114 || c >= 9115 && c <= 9139 || c >= 9140 && c <= 9179 || c >= 9180 && c <= 9185 || c >= 9186 && c <= 9254 || c >= 9255 && c <= 9279 || c >= 9280 && c <= 9290 || c >= 9291 && c <= 9311 || c >= 9472 && c <= 9654 || c === 9655 || c >= 9656 && c <= 9664 || c === 9665 || c >= 9666 && c <= 9719 || c >= 9720 && c <= 9727 || c >= 9728 && c <= 9838 || c === 9839 || c >= 9840 && c <= 10087 || c === 10088 || c === 10089 || c === 10090 || c === 10091 || c === 10092 || c === 10093 || c === 10094 || c === 10095 || c === 10096 || c === 10097 || c === 10098 || c === 10099 || c === 10100 || c === 10101 || c >= 10132 && c <= 10175 || c >= 10176 && c <= 10180 || c === 10181 || c === 10182 || c >= 10183 && c <= 10213 || c === 10214 || c === 10215 || c === 10216 || c === 10217 || c === 10218 || c === 10219 || c === 10220 || c === 10221 || c === 10222 || c === 10223 || c >= 10224 && c <= 10239 || c >= 10240 && c <= 10495 || c >= 10496 && c <= 10626 || c === 10627 || c === 10628 || c === 10629 || c === 10630 || c === 10631 || c === 10632 || c === 10633 || c === 10634 || c === 10635 || c === 10636 || c === 10637 || c === 10638 || c === 10639 || c === 10640 || c === 10641 || c === 10642 || c === 10643 || c === 10644 || c === 10645 || c === 10646 || c === 10647 || c === 10648 || c >= 10649 && c <= 10711 || c === 10712 || c === 10713 || c === 10714 || c === 10715 || c >= 10716 && c <= 10747 || c === 10748 || c === 10749 || c >= 10750 && c <= 11007 || c >= 11008 && c <= 11055 || c >= 11056 && c <= 11076 || c >= 11077 && c <= 11078 || c >= 11079 && c <= 11084 || c >= 11085 && c <= 11123 || c >= 11124 && c <= 11125 || c >= 11126 && c <= 11157 || c === 11158 || c >= 11159 && c <= 11263 || c >= 11776 && c <= 11777 || c === 11778 || c === 11779 || c === 11780 || c === 11781 || c >= 11782 && c <= 11784 || c === 11785 || c === 11786 || c === 11787 || c === 11788 || c === 11789 || c >= 11790 && c <= 11798 || c === 11799 || c >= 11800 && c <= 11801 || c === 11802 || c === 11803 || c === 11804 || c === 11805 || c >= 11806 && c <= 11807 || c === 11808 || c === 11809 || c === 11810 || c === 11811 || c === 11812 || c === 11813 || c === 11814 || c === 11815 || c === 11816 || c === 11817 || c >= 11818 && c <= 11822 || c === 11823 || c >= 11824 && c <= 11833 || c >= 11834 && c <= 11835 || c >= 11836 && c <= 11839 || c === 11840 || c === 11841 || c === 11842 || c >= 11843 && c <= 11855 || c >= 11856 && c <= 11857 || c === 11858 || c >= 11859 && c <= 11903 || c >= 12289 && c <= 12291 || c === 12296 || c === 12297 || c === 12298 || c === 12299 || c === 12300 || c === 12301 || c === 12302 || c === 12303 || c === 12304 || c === 12305 || c >= 12306 && c <= 12307 || c === 12308 || c === 12309 || c === 12310 || c === 12311 || c === 12312 || c === 12313 || c === 12314 || c === 12315 || c === 12316 || c === 12317 || c >= 12318 && c <= 12319 || c === 12320 || c === 12336 || c === 64830 || c === 64831 || c >= 65093 && c <= 65094;
|
|
}
|
|
|
|
// bazel-out/darwin-fastbuild/bin/packages/icu-messageformat-parser/lib/index.js
|
|
function pruneLocation(els) {
|
|
els.forEach(function(el) {
|
|
delete el.location;
|
|
if (isSelectElement(el) || isPluralElement(el)) {
|
|
for (var k in el.options) {
|
|
delete el.options[k].location;
|
|
pruneLocation(el.options[k].value);
|
|
}
|
|
} else if (isNumberElement(el) && isNumberSkeleton(el.style)) {
|
|
delete el.style.location;
|
|
} else if ((isDateElement(el) || isTimeElement(el)) && isDateTimeSkeleton(el.style)) {
|
|
delete el.style.location;
|
|
} else if (isTagElement(el)) {
|
|
pruneLocation(el.children);
|
|
}
|
|
});
|
|
}
|
|
function parse(message, opts) {
|
|
if (opts === void 0) {
|
|
opts = {};
|
|
}
|
|
opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);
|
|
var result = new Parser(message, opts).parse();
|
|
if (result.err) {
|
|
var error = SyntaxError(ErrorKind[result.err.kind]);
|
|
error.location = result.err.location;
|
|
error.originalMessage = result.err.message;
|
|
throw error;
|
|
}
|
|
if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {
|
|
pruneLocation(result.val);
|
|
}
|
|
return result.val;
|
|
}
|
|
|
|
// bazel-out/darwin-fastbuild/bin/packages/fast-memoize/lib/index.js
|
|
function memoize(fn, options) {
|
|
var cache = options && options.cache ? options.cache : cacheDefault;
|
|
var serializer = options && options.serializer ? options.serializer : serializerDefault;
|
|
var strategy = options && options.strategy ? options.strategy : strategyDefault;
|
|
return strategy(fn, {
|
|
cache,
|
|
serializer
|
|
});
|
|
}
|
|
function isPrimitive(value) {
|
|
return value == null || typeof value === "number" || typeof value === "boolean";
|
|
}
|
|
function monadic(fn, cache, serializer, arg) {
|
|
var cacheKey = isPrimitive(arg) ? arg : serializer(arg);
|
|
var computedValue = cache.get(cacheKey);
|
|
if (typeof computedValue === "undefined") {
|
|
computedValue = fn.call(this, arg);
|
|
cache.set(cacheKey, computedValue);
|
|
}
|
|
return computedValue;
|
|
}
|
|
function variadic(fn, cache, serializer) {
|
|
var args = Array.prototype.slice.call(arguments, 3);
|
|
var cacheKey = serializer(args);
|
|
var computedValue = cache.get(cacheKey);
|
|
if (typeof computedValue === "undefined") {
|
|
computedValue = fn.apply(this, args);
|
|
cache.set(cacheKey, computedValue);
|
|
}
|
|
return computedValue;
|
|
}
|
|
function assemble(fn, context, strategy, cache, serialize) {
|
|
return strategy.bind(context, fn, cache, serialize);
|
|
}
|
|
function strategyDefault(fn, options) {
|
|
var strategy = fn.length === 1 ? monadic : variadic;
|
|
return assemble(fn, this, strategy, options.cache.create(), options.serializer);
|
|
}
|
|
function strategyVariadic(fn, options) {
|
|
return assemble(fn, this, variadic, options.cache.create(), options.serializer);
|
|
}
|
|
function strategyMonadic(fn, options) {
|
|
return assemble(fn, this, monadic, options.cache.create(), options.serializer);
|
|
}
|
|
var serializerDefault = function() {
|
|
return JSON.stringify(arguments);
|
|
};
|
|
function ObjectWithoutPrototypeCache() {
|
|
this.cache = /* @__PURE__ */ Object.create(null);
|
|
}
|
|
ObjectWithoutPrototypeCache.prototype.get = function(key) {
|
|
return this.cache[key];
|
|
};
|
|
ObjectWithoutPrototypeCache.prototype.set = function(key, value) {
|
|
this.cache[key] = value;
|
|
};
|
|
var cacheDefault = {
|
|
create: function create() {
|
|
return new ObjectWithoutPrototypeCache();
|
|
}
|
|
};
|
|
var strategies = {
|
|
variadic: strategyVariadic,
|
|
monadic: strategyMonadic
|
|
};
|
|
|
|
// bazel-out/darwin-fastbuild/bin/packages/intl-messageformat/lib_esnext/src/error.js
|
|
var ErrorCode;
|
|
(function(ErrorCode2) {
|
|
ErrorCode2["MISSING_VALUE"] = "MISSING_VALUE";
|
|
ErrorCode2["INVALID_VALUE"] = "INVALID_VALUE";
|
|
ErrorCode2["MISSING_INTL_API"] = "MISSING_INTL_API";
|
|
})(ErrorCode || (ErrorCode = {}));
|
|
var FormatError = class extends Error {
|
|
code;
|
|
originalMessage;
|
|
constructor(msg, code, originalMessage) {
|
|
super(msg);
|
|
this.code = code;
|
|
this.originalMessage = originalMessage;
|
|
}
|
|
toString() {
|
|
return `[formatjs Error: ${this.code}] ${this.message}`;
|
|
}
|
|
};
|
|
var InvalidValueError = class extends FormatError {
|
|
constructor(variableId, value, options, originalMessage) {
|
|
super(`Invalid values for "${variableId}": "${value}". Options are "${Object.keys(options).join('", "')}"`, ErrorCode.INVALID_VALUE, originalMessage);
|
|
}
|
|
};
|
|
var InvalidValueTypeError = class extends FormatError {
|
|
constructor(value, type, originalMessage) {
|
|
super(`Value for "${value}" must be of type ${type}`, ErrorCode.INVALID_VALUE, originalMessage);
|
|
}
|
|
};
|
|
var MissingValueError = class extends FormatError {
|
|
constructor(variableId, originalMessage) {
|
|
super(`The intl string context variable "${variableId}" was not provided to the string "${originalMessage}"`, ErrorCode.MISSING_VALUE, originalMessage);
|
|
}
|
|
};
|
|
|
|
// bazel-out/darwin-fastbuild/bin/packages/intl-messageformat/lib_esnext/src/formatters.js
|
|
var PART_TYPE;
|
|
(function(PART_TYPE2) {
|
|
PART_TYPE2[PART_TYPE2["literal"] = 0] = "literal";
|
|
PART_TYPE2[PART_TYPE2["object"] = 1] = "object";
|
|
})(PART_TYPE || (PART_TYPE = {}));
|
|
function mergeLiteral(parts) {
|
|
if (parts.length < 2) {
|
|
return parts;
|
|
}
|
|
return parts.reduce((all, part) => {
|
|
const lastPart = all[all.length - 1];
|
|
if (!lastPart || lastPart.type !== PART_TYPE.literal || part.type !== PART_TYPE.literal) {
|
|
all.push(part);
|
|
} else {
|
|
lastPart.value += part.value;
|
|
}
|
|
return all;
|
|
}, []);
|
|
}
|
|
function isFormatXMLElementFn(el) {
|
|
return typeof el === "function";
|
|
}
|
|
function formatToParts(els, locales, formatters, formats, values, currentPluralValue, originalMessage) {
|
|
if (els.length === 1 && isLiteralElement(els[0])) {
|
|
return [
|
|
{
|
|
type: PART_TYPE.literal,
|
|
value: els[0].value
|
|
}
|
|
];
|
|
}
|
|
const result = [];
|
|
for (const el of els) {
|
|
if (isLiteralElement(el)) {
|
|
result.push({
|
|
type: PART_TYPE.literal,
|
|
value: el.value
|
|
});
|
|
continue;
|
|
}
|
|
if (isPoundElement(el)) {
|
|
if (typeof currentPluralValue === "number") {
|
|
result.push({
|
|
type: PART_TYPE.literal,
|
|
value: formatters.getNumberFormat(locales).format(currentPluralValue)
|
|
});
|
|
}
|
|
continue;
|
|
}
|
|
const { value: varName } = el;
|
|
if (!(values && varName in values)) {
|
|
throw new MissingValueError(varName, originalMessage);
|
|
}
|
|
let value = values[varName];
|
|
if (isArgumentElement(el)) {
|
|
if (!value || typeof value === "string" || typeof value === "number") {
|
|
value = typeof value === "string" || typeof value === "number" ? String(value) : "";
|
|
}
|
|
result.push({
|
|
type: typeof value === "string" ? PART_TYPE.literal : PART_TYPE.object,
|
|
value
|
|
});
|
|
continue;
|
|
}
|
|
if (isDateElement(el)) {
|
|
const style = typeof el.style === "string" ? formats.date[el.style] : isDateTimeSkeleton(el.style) ? el.style.parsedOptions : void 0;
|
|
result.push({
|
|
type: PART_TYPE.literal,
|
|
value: formatters.getDateTimeFormat(locales, style).format(value)
|
|
});
|
|
continue;
|
|
}
|
|
if (isTimeElement(el)) {
|
|
const style = typeof el.style === "string" ? formats.time[el.style] : isDateTimeSkeleton(el.style) ? el.style.parsedOptions : formats.time.medium;
|
|
result.push({
|
|
type: PART_TYPE.literal,
|
|
value: formatters.getDateTimeFormat(locales, style).format(value)
|
|
});
|
|
continue;
|
|
}
|
|
if (isNumberElement(el)) {
|
|
const style = typeof el.style === "string" ? formats.number[el.style] : isNumberSkeleton(el.style) ? el.style.parsedOptions : void 0;
|
|
if (style && style.scale) {
|
|
value = value * (style.scale || 1);
|
|
}
|
|
result.push({
|
|
type: PART_TYPE.literal,
|
|
value: formatters.getNumberFormat(locales, style).format(value)
|
|
});
|
|
continue;
|
|
}
|
|
if (isTagElement(el)) {
|
|
const { children, value: value2 } = el;
|
|
const formatFn = values[value2];
|
|
if (!isFormatXMLElementFn(formatFn)) {
|
|
throw new InvalidValueTypeError(value2, "function", originalMessage);
|
|
}
|
|
const parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);
|
|
let chunks = formatFn(parts.map((p) => p.value));
|
|
if (!Array.isArray(chunks)) {
|
|
chunks = [chunks];
|
|
}
|
|
result.push(...chunks.map((c) => {
|
|
return {
|
|
type: typeof c === "string" ? PART_TYPE.literal : PART_TYPE.object,
|
|
value: c
|
|
};
|
|
}));
|
|
}
|
|
if (isSelectElement(el)) {
|
|
const opt = el.options[value] || el.options.other;
|
|
if (!opt) {
|
|
throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);
|
|
}
|
|
result.push(...formatToParts(opt.value, locales, formatters, formats, values));
|
|
continue;
|
|
}
|
|
if (isPluralElement(el)) {
|
|
let opt = el.options[`=${value}`];
|
|
if (!opt) {
|
|
if (!Intl.PluralRules) {
|
|
throw new FormatError(`Intl.PluralRules is not available in this environment.
|
|
Try polyfilling it using "@formatjs/intl-pluralrules"
|
|
`, ErrorCode.MISSING_INTL_API, originalMessage);
|
|
}
|
|
const rule = formatters.getPluralRules(locales, { type: el.pluralType }).select(value - (el.offset || 0));
|
|
opt = el.options[rule] || el.options.other;
|
|
}
|
|
if (!opt) {
|
|
throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);
|
|
}
|
|
result.push(...formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));
|
|
continue;
|
|
}
|
|
}
|
|
return mergeLiteral(result);
|
|
}
|
|
|
|
// bazel-out/darwin-fastbuild/bin/packages/intl-messageformat/lib_esnext/src/core.js
|
|
function mergeConfig(c1, c2) {
|
|
if (!c2) {
|
|
return c1;
|
|
}
|
|
return {
|
|
...c1 || {},
|
|
...c2 || {},
|
|
...Object.keys(c1).reduce((all, k) => {
|
|
all[k] = {
|
|
...c1[k],
|
|
...c2[k] || {}
|
|
};
|
|
return all;
|
|
}, {})
|
|
};
|
|
}
|
|
function mergeConfigs(defaultConfig, configs) {
|
|
if (!configs) {
|
|
return defaultConfig;
|
|
}
|
|
return Object.keys(defaultConfig).reduce((all, k) => {
|
|
all[k] = mergeConfig(defaultConfig[k], configs[k]);
|
|
return all;
|
|
}, { ...defaultConfig });
|
|
}
|
|
function createFastMemoizeCache(store) {
|
|
return {
|
|
create() {
|
|
return {
|
|
get(key) {
|
|
return store[key];
|
|
},
|
|
set(key, value) {
|
|
store[key] = value;
|
|
}
|
|
};
|
|
}
|
|
};
|
|
}
|
|
function createDefaultFormatters(cache = {
|
|
number: {},
|
|
dateTime: {},
|
|
pluralRules: {}
|
|
}) {
|
|
return {
|
|
getNumberFormat: memoize((...args) => new Intl.NumberFormat(...args), {
|
|
cache: createFastMemoizeCache(cache.number),
|
|
strategy: strategies.variadic
|
|
}),
|
|
getDateTimeFormat: memoize((...args) => new Intl.DateTimeFormat(...args), {
|
|
cache: createFastMemoizeCache(cache.dateTime),
|
|
strategy: strategies.variadic
|
|
}),
|
|
getPluralRules: memoize((...args) => new Intl.PluralRules(...args), {
|
|
cache: createFastMemoizeCache(cache.pluralRules),
|
|
strategy: strategies.variadic
|
|
})
|
|
};
|
|
}
|
|
var _IntlMessageFormat = class {
|
|
ast;
|
|
locales;
|
|
resolvedLocale;
|
|
formatters;
|
|
formats;
|
|
message;
|
|
formatterCache = {
|
|
number: {},
|
|
dateTime: {},
|
|
pluralRules: {}
|
|
};
|
|
constructor(message, locales = _IntlMessageFormat.defaultLocale, overrideFormats, opts) {
|
|
this.locales = locales;
|
|
this.resolvedLocale = _IntlMessageFormat.resolveLocale(locales);
|
|
if (typeof message === "string") {
|
|
this.message = message;
|
|
if (!_IntlMessageFormat.__parse) {
|
|
throw new TypeError("IntlMessageFormat.__parse must be set to process `message` of type `string`");
|
|
}
|
|
this.ast = _IntlMessageFormat.__parse(message, {
|
|
ignoreTag: opts?.ignoreTag,
|
|
locale: this.resolvedLocale
|
|
});
|
|
} else {
|
|
this.ast = message;
|
|
}
|
|
if (!Array.isArray(this.ast)) {
|
|
throw new TypeError("A message must be provided as a String or AST.");
|
|
}
|
|
this.formats = mergeConfigs(_IntlMessageFormat.formats, overrideFormats);
|
|
this.formatters = opts && opts.formatters || createDefaultFormatters(this.formatterCache);
|
|
}
|
|
format = (values) => {
|
|
const parts = this.formatToParts(values);
|
|
if (parts.length === 1) {
|
|
return parts[0].value;
|
|
}
|
|
const result = parts.reduce((all, part) => {
|
|
if (!all.length || part.type !== PART_TYPE.literal || typeof all[all.length - 1] !== "string") {
|
|
all.push(part.value);
|
|
} else {
|
|
all[all.length - 1] += part.value;
|
|
}
|
|
return all;
|
|
}, []);
|
|
if (result.length <= 1) {
|
|
return result[0] || "";
|
|
}
|
|
return result;
|
|
};
|
|
formatToParts = (values) => formatToParts(this.ast, this.locales, this.formatters, this.formats, values, void 0, this.message);
|
|
resolvedOptions = () => ({
|
|
locale: this.resolvedLocale.toString()
|
|
});
|
|
getAst = () => this.ast;
|
|
static get defaultLocale() {
|
|
if (!_IntlMessageFormat.memoizedDefaultLocale) {
|
|
_IntlMessageFormat.memoizedDefaultLocale = new Intl.NumberFormat().resolvedOptions().locale;
|
|
}
|
|
return _IntlMessageFormat.memoizedDefaultLocale;
|
|
}
|
|
};
|
|
var IntlMessageFormat = _IntlMessageFormat;
|
|
__publicField(IntlMessageFormat, "memoizedDefaultLocale", null);
|
|
__publicField(IntlMessageFormat, "resolveLocale", (locales) => {
|
|
const supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);
|
|
if (supportedLocales.length > 0) {
|
|
return new Intl.Locale(supportedLocales[0]);
|
|
}
|
|
return new Intl.Locale(typeof locales === "string" ? locales : locales[0]);
|
|
});
|
|
__publicField(IntlMessageFormat, "__parse", parse);
|
|
__publicField(IntlMessageFormat, "formats", {
|
|
number: {
|
|
integer: {
|
|
maximumFractionDigits: 0
|
|
},
|
|
currency: {
|
|
style: "currency"
|
|
},
|
|
percent: {
|
|
style: "percent"
|
|
}
|
|
},
|
|
date: {
|
|
short: {
|
|
month: "numeric",
|
|
day: "numeric",
|
|
year: "2-digit"
|
|
},
|
|
medium: {
|
|
month: "short",
|
|
day: "numeric",
|
|
year: "numeric"
|
|
},
|
|
long: {
|
|
month: "long",
|
|
day: "numeric",
|
|
year: "numeric"
|
|
},
|
|
full: {
|
|
weekday: "long",
|
|
month: "long",
|
|
day: "numeric",
|
|
year: "numeric"
|
|
}
|
|
},
|
|
time: {
|
|
short: {
|
|
hour: "numeric",
|
|
minute: "numeric"
|
|
},
|
|
medium: {
|
|
hour: "numeric",
|
|
minute: "numeric",
|
|
second: "numeric"
|
|
},
|
|
long: {
|
|
hour: "numeric",
|
|
minute: "numeric",
|
|
second: "numeric",
|
|
timeZoneName: "short"
|
|
},
|
|
full: {
|
|
hour: "numeric",
|
|
minute: "numeric",
|
|
second: "numeric",
|
|
timeZoneName: "short"
|
|
}
|
|
}
|
|
});
|
|
|
|
// bazel-out/darwin-fastbuild/bin/packages/intl-messageformat/lib_esnext/index.js
|
|
var lib_esnext_default = IntlMessageFormat;
|
|
export {
|
|
ErrorCode,
|
|
FormatError,
|
|
IntlMessageFormat,
|
|
InvalidValueError,
|
|
InvalidValueTypeError,
|
|
MissingValueError,
|
|
PART_TYPE,
|
|
lib_esnext_default as default,
|
|
formatToParts,
|
|
isFormatXMLElementFn
|
|
};
|
|
/*! *****************************************************************************
|
|
Copyright (c) Microsoft Corporation.
|
|
|
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
purpose with or without fee is hereby granted.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
PERFORMANCE OF THIS SOFTWARE.
|
|
***************************************************************************** */
|
|
//# sourceMappingURL=intl-messageformat.esm.js.map
|