{"version":3,"file":"intl-listformat.min.js","sources":["../../../intl-utils/lib/invariant.js","../../../intl-utils/lib/polyfill-utils.js","../../../intl-utils/lib/get-canonical-locales.js","../../../intl-utils/lib/resolve-locale.js","../../lib/core.js"],"sourcesContent":["export function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n//# sourceMappingURL=invariant.js.map","import aliases from './aliases';\nimport parentLocales from './parentLocales';\nimport { invariant } from './invariant';\n/**\n * https://tc39.es/ecma262/#sec-toobject\n * @param arg\n */\nexport function toObject(arg) {\n if (arg == null) {\n throw new TypeError('undefined/null cannot be converted to object');\n }\n return Object(arg);\n}\n/**\n * https://tc39.es/ecma262/#sec-tostring\n */\nexport function toString(o) {\n // Only symbol is irregular...\n if (typeof o === 'symbol') {\n throw TypeError('Cannot convert a Symbol value to a string');\n }\n return String(o);\n}\n/**\n * https://tc39.es/ecma402/#sec-getoption\n * @param opts\n * @param prop\n * @param type\n * @param values\n * @param fallback\n */\nexport function getOption(opts, prop, type, values, fallback) {\n // const descriptor = Object.getOwnPropertyDescriptor(opts, prop);\n var value = opts[prop];\n if (value !== undefined) {\n if (type !== 'boolean' && type !== 'string') {\n throw new TypeError('invalid type');\n }\n if (type === 'boolean') {\n value = Boolean(value);\n }\n if (type === 'string') {\n value = toString(value);\n }\n if (values !== undefined && !values.filter(function (val) { return val == value; }).length) {\n throw new RangeError(value + \" is not within \" + values.join(', '));\n }\n return value;\n }\n return fallback;\n}\n/**\n * https://tc39.es/ecma402/#sec-defaultnumberoption\n * @param val\n * @param min\n * @param max\n * @param fallback\n */\nexport function defaultNumberOption(val, min, max, fallback) {\n if (val !== undefined) {\n val = Number(val);\n if (isNaN(val) || val < min || val > max) {\n throw new RangeError(val + \" is outside of range [\" + min + \", \" + max + \"]\");\n }\n return Math.floor(val);\n }\n return fallback;\n}\n/**\n * https://tc39.es/ecma402/#sec-getnumberoption\n * @param options\n * @param property\n * @param min\n * @param max\n * @param fallback\n */\nexport function getNumberOption(options, property, minimum, maximum, fallback) {\n var val = options[property];\n return defaultNumberOption(val, minimum, maximum, fallback);\n}\nexport function getAliasesByLang(lang) {\n return Object.keys(aliases).reduce(function (all, locale) {\n if (locale.split('-')[0] === lang) {\n all[locale] = aliases[locale];\n }\n return all;\n }, {});\n}\nexport function getParentLocalesByLang(lang) {\n return Object.keys(parentLocales).reduce(function (all, locale) {\n if (locale.split('-')[0] === lang) {\n all[locale] = parentLocales[locale];\n }\n return all;\n }, {});\n}\nexport function setInternalSlot(map, pl, field, value) {\n if (!map.get(pl)) {\n map.set(pl, Object.create(null));\n }\n var slots = map.get(pl);\n slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var k = _a[_i];\n setInternalSlot(map, pl, k, props[k]);\n }\n}\nexport function getInternalSlot(map, pl, field) {\n return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n var fields = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n fields[_i - 2] = arguments[_i];\n }\n var slots = map.get(pl);\n if (!slots) {\n throw new TypeError(pl + \" InternalSlot has not been initialized\");\n }\n return fields.reduce(function (all, f) {\n all[f] = slots[f];\n return all;\n }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n return patternPart.type === 'literal';\n}\nexport function partitionPattern(pattern) {\n var result = [];\n var beginIndex = pattern.indexOf('{');\n var endIndex = 0;\n var nextIndex = 0;\n var length = pattern.length;\n while (beginIndex < pattern.length && beginIndex > -1) {\n endIndex = pattern.indexOf('}', beginIndex);\n invariant(endIndex > beginIndex, \"Invalid pattern \" + pattern);\n if (beginIndex > nextIndex) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, beginIndex),\n });\n }\n result.push({\n type: pattern.substring(beginIndex + 1, endIndex),\n value: undefined,\n });\n nextIndex = endIndex + 1;\n beginIndex = pattern.indexOf('{', nextIndex);\n }\n if (nextIndex < length) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, length),\n });\n }\n return result;\n}\n/**\n * https://tc39.es/ecma402/#sec-setnfdigitoptions\n * https://tc39.es/proposal-unified-intl-numberformat/section11/numberformat_diff_out.html#sec-setnfdigitoptions\n * @param intlObj\n * @param opts\n * @param mnfdDefault\n * @param mxfdDefault\n */\nexport function setNumberFormatDigitOptions(internalSlotMap, intlObj, opts, mnfdDefault, mxfdDefault) {\n var mnid = getNumberOption(opts, 'minimumIntegerDigits', 1, 21, 1);\n var mnfd = opts.minimumFractionDigits;\n var mxfd = opts.maximumFractionDigits;\n var mnsd = opts.minimumSignificantDigits;\n var mxsd = opts.maximumSignificantDigits;\n setInternalSlot(internalSlotMap, intlObj, 'minimumIntegerDigits', mnid);\n if (mnsd !== undefined || mxsd !== undefined) {\n setInternalSlot(internalSlotMap, intlObj, 'roundingType', 'significantDigits');\n mnsd = defaultNumberOption(mnsd, 1, 21, 1);\n mxsd = defaultNumberOption(mxsd, mnsd, 21, 21);\n setInternalSlot(internalSlotMap, intlObj, 'minimumSignificantDigits', mnsd);\n setInternalSlot(internalSlotMap, intlObj, 'maximumSignificantDigits', mxsd);\n }\n else if (mnfd !== undefined || mxfd !== undefined) {\n setInternalSlot(internalSlotMap, intlObj, 'roundingType', 'fractionDigits');\n mnfd = defaultNumberOption(mnfd, 0, 20, mnfdDefault);\n var mxfdActualDefault = Math.max(mnfd, mxfdDefault);\n mxfd = defaultNumberOption(mxfd, mnfd, 20, mxfdActualDefault);\n setInternalSlot(internalSlotMap, intlObj, 'minimumFractionDigits', mnfd);\n setInternalSlot(internalSlotMap, intlObj, 'maximumFractionDigits', mxfd);\n }\n else if (getInternalSlot(internalSlotMap, intlObj, 'notation') === 'compact') {\n setInternalSlot(internalSlotMap, intlObj, 'roundingType', 'compactRounding');\n }\n else {\n setInternalSlot(internalSlotMap, intlObj, 'roundingType', 'fractionDigits');\n setInternalSlot(internalSlotMap, intlObj, 'minimumFractionDigits', mnfdDefault);\n setInternalSlot(internalSlotMap, intlObj, 'maximumFractionDigits', mxfdDefault);\n }\n}\nexport function objectIs(x, y) {\n if (Object.is) {\n return Object.is(x, y);\n }\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n }\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n}\nvar NOT_A_Z_REGEX = /[^A-Z]/;\n/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toUpperCase(str) {\n return str.replace(/([a-z])/g, function (_, c) { return c.toUpperCase(); });\n}\n/**\n * https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-iswellformedcurrencycode\n * @param currency\n */\nexport function isWellFormedCurrencyCode(currency) {\n currency = toUpperCase(currency);\n if (currency.length !== 3) {\n return false;\n }\n if (NOT_A_Z_REGEX.test(currency)) {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=polyfill-utils.js.map","/**\n * IE11-safe version of getCanonicalLocales since it's ES2016\n * @param locales locales\n */\nexport function getCanonicalLocales(locales) {\n // IE11\n var getCanonicalLocales = Intl.getCanonicalLocales;\n if (typeof getCanonicalLocales === 'function') {\n return getCanonicalLocales(locales);\n }\n // NOTE: we must NOT call `supportedLocalesOf` of a formatjs polyfill, or their implementation\n // will even eventually call this method recursively. Here we use `Intl.DateTimeFormat` since it\n // is not polyfilled by `@formatjs`.\n // TODO: Fix TypeScript type def for this bc undefined is just fine\n return Intl.DateTimeFormat.supportedLocalesOf(locales);\n}\n//# sourceMappingURL=get-canonical-locales.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { getCanonicalLocales } from './get-canonical-locales';\nimport { invariant } from './invariant';\nimport { toObject, getOption } from './polyfill-utils';\nexport function createResolveLocale(getDefaultLocale) {\n var lookupMatcher = createLookupMatcher(getDefaultLocale);\n var bestFitMatcher = createBestFitMatcher(getDefaultLocale);\n /**\n * https://tc39.es/ecma402/#sec-resolvelocale\n */\n return function resolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData) {\n var matcher = options.localeMatcher;\n var r;\n if (matcher === 'lookup') {\n r = lookupMatcher(availableLocales, requestedLocales);\n }\n else {\n r = bestFitMatcher(availableLocales, requestedLocales);\n }\n var foundLocale = r.locale;\n var result = { locale: '', dataLocale: foundLocale };\n var supportedExtension = '-u';\n for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {\n var key = relevantExtensionKeys_1[_i];\n var foundLocaleData = localeData[foundLocale];\n invariant(typeof foundLocaleData === 'object' && foundLocaleData !== null, \"locale data \" + key + \" must be an object\");\n var keyLocaleData = foundLocaleData[key];\n invariant(Array.isArray(keyLocaleData), \"keyLocaleData for \" + key + \" must be an array\");\n var value = keyLocaleData[0];\n invariant(typeof value === 'string' || value === null, 'value must be string or null');\n var supportedExtensionAddition = '';\n if (r.extension) {\n var requestedValue = unicodeExtensionValue(r.extension, key);\n if (requestedValue !== undefined) {\n if (requestedValue !== '') {\n if (~keyLocaleData.indexOf(requestedValue)) {\n value = requestedValue;\n supportedExtensionAddition = \"-\" + key + \"-\" + value;\n }\n }\n else if (~requestedValue.indexOf('true')) {\n value = 'true';\n supportedExtensionAddition = \"-\" + key;\n }\n }\n }\n if (key in options) {\n var optionsValue = options[key];\n invariant(typeof optionsValue === 'string' ||\n typeof optionsValue === 'undefined' ||\n optionsValue === null, 'optionsValue must be String, Undefined or Null');\n if (~keyLocaleData.indexOf(optionsValue)) {\n if (optionsValue !== value) {\n value = optionsValue;\n supportedExtensionAddition = '';\n }\n }\n }\n result[key] = value;\n supportedExtension += supportedExtensionAddition;\n }\n if (supportedExtension.length > 2) {\n var privateIndex = foundLocale.indexOf('-x-');\n if (privateIndex === -1) {\n foundLocale = foundLocale + supportedExtension;\n }\n else {\n var preExtension = foundLocale.slice(0, privateIndex);\n var postExtension = foundLocale.slice(privateIndex, foundLocale.length);\n foundLocale = preExtension + supportedExtension + postExtension;\n }\n foundLocale = getCanonicalLocales(foundLocale)[0];\n }\n result.locale = foundLocale;\n return result;\n };\n}\n/**\n * https://tc39.es/ecma402/#sec-unicodeextensionvalue\n * @param extension\n * @param key\n */\nfunction unicodeExtensionValue(extension, key) {\n invariant(key.length === 2, 'key must have 2 elements');\n var size = extension.length;\n var searchValue = \"-\" + key + \"-\";\n var pos = extension.indexOf(searchValue);\n if (pos !== -1) {\n var start = pos + 4;\n var end = start;\n var k = start;\n var done = false;\n while (!done) {\n var e = extension.indexOf('-', k);\n var len = void 0;\n if (e === -1) {\n len = size - k;\n }\n else {\n len = e - k;\n }\n if (len === 2) {\n done = true;\n }\n else if (e === -1) {\n end = size;\n done = true;\n }\n else {\n end = e;\n k = e + 1;\n }\n }\n return extension.slice(start, end);\n }\n searchValue = \"-\" + key;\n pos = extension.indexOf(searchValue);\n if (pos !== -1 && pos + 3 === size) {\n return '';\n }\n return undefined;\n}\nvar UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\n/**\n * https://tc39.es/ecma402/#sec-bestavailablelocale\n * @param availableLocales\n * @param locale\n */\nfunction bestAvailableLocale(availableLocales, locale) {\n var candidate = locale;\n while (true) {\n if (~availableLocales.indexOf(candidate)) {\n return candidate;\n }\n var pos = candidate.lastIndexOf('-');\n if (!~pos) {\n return undefined;\n }\n if (pos >= 2 && candidate[pos - 2] === '-') {\n pos -= 2;\n }\n candidate = candidate.slice(0, pos);\n }\n}\nfunction createLookupMatcher(getDefaultLocale) {\n /**\n * https://tc39.es/ecma402/#sec-lookupmatcher\n */\n return function lookupMatcher(availableLocales, requestedLocales) {\n var result = { locale: '' };\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var locale = requestedLocales_1[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = bestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n result.locale = availableLocale;\n if (locale !== noExtensionLocale) {\n result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);\n }\n return result;\n }\n }\n result.locale = getDefaultLocale();\n return result;\n };\n}\nfunction createBestFitMatcher(getDefaultLocale) {\n return function bestFitMatcher(availableLocales, requestedLocales) {\n var result = { locale: '' };\n for (var _i = 0, requestedLocales_2 = requestedLocales; _i < requestedLocales_2.length; _i++) {\n var locale = requestedLocales_2[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = bestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n result.locale = availableLocale;\n if (locale !== noExtensionLocale) {\n result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);\n }\n return result;\n }\n }\n result.locale = getDefaultLocale();\n return result;\n };\n}\nexport function getLocaleHierarchy(locale, aliases, parentLocales) {\n var results = [locale];\n if (aliases[locale]) {\n locale = aliases[locale];\n results.push(locale);\n }\n var parentLocale = parentLocales[locale];\n if (parentLocale) {\n results.push(parentLocale);\n }\n var localeParts = locale.split('-');\n for (var i = localeParts.length; i > 1; i--) {\n results.push(localeParts.slice(0, i - 1).join('-'));\n }\n return results;\n}\nfunction lookupSupportedLocales(availableLocales, requestedLocales) {\n var subset = [];\n for (var _i = 0, requestedLocales_3 = requestedLocales; _i < requestedLocales_3.length; _i++) {\n var locale = requestedLocales_3[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = bestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n subset.push(availableLocale);\n }\n }\n return subset;\n}\nexport function supportedLocales(availableLocales, requestedLocales, options) {\n var matcher = 'best fit';\n if (options !== undefined) {\n options = toObject(options);\n matcher = getOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n }\n if (matcher === 'best fit') {\n return lookupSupportedLocales(availableLocales, requestedLocales);\n }\n return lookupSupportedLocales(availableLocales, requestedLocales);\n}\nvar MissingLocaleDataError = /** @class */ (function (_super) {\n __extends(MissingLocaleDataError, _super);\n function MissingLocaleDataError() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'MISSING_LOCALE_DATA';\n return _this;\n }\n return MissingLocaleDataError;\n}(Error));\nexport function isMissingLocaleDataError(e) {\n return e.type === 'MISSING_LOCALE_DATA';\n}\nexport function unpackData(locale, localeData, \n/** By default shallow merge the dictionaries. */\nreducer) {\n if (reducer === void 0) { reducer = function (all, d) { return (__assign(__assign({}, all), d)); }; }\n var localeHierarchy = getLocaleHierarchy(locale, localeData.aliases, localeData.parentLocales);\n var dataToMerge = localeHierarchy\n .map(function (l) { return localeData.data[l]; })\n .filter(Boolean);\n if (!dataToMerge.length) {\n throw new MissingLocaleDataError(\"Missing locale data for \\\"\" + locale + \"\\\", lookup hierarchy: \" + localeHierarchy.join(', '));\n }\n dataToMerge.reverse();\n return dataToMerge.reduce(reducer, {});\n}\n//# sourceMappingURL=resolve-locale.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { toObject, getOption, unpackData, setInternalSlot, getCanonicalLocales, supportedLocales, createResolveLocale, getInternalSlot, partitionPattern, invariant, isLiteralPart, } from '@formatjs/intl-utils';\nfunction validateInstance(instance, method) {\n if (!(instance instanceof ListFormat)) {\n throw new TypeError(\"Method Intl.ListFormat.prototype.\" + method + \" called on incompatible receiver \" + String(instance));\n }\n}\n/**\n * https://tc39.es/proposal-intl-list-format/#sec-createstringlistfromiterable\n * @param list list\n */\nfunction stringListFromIterable(list) {\n if (list === undefined) {\n return [];\n }\n var result = [];\n for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {\n var el = list_1[_i];\n if (typeof el !== 'string') {\n throw new TypeError(\"array list[\" + list.indexOf(el) + \"] is not type String\");\n }\n result.push(el);\n }\n return result;\n}\nfunction createPartsFromList(internalSlotMap, lf, list) {\n var size = list.length;\n if (size === 0) {\n return [];\n }\n if (size === 2) {\n var pattern = getInternalSlot(internalSlotMap, lf, 'templatePair');\n var first = { type: 'element', value: list[0] };\n var second = { type: 'element', value: list[1] };\n return deconstructPattern(pattern, { '0': first, '1': second });\n }\n var last = {\n type: 'element',\n value: list[size - 1],\n };\n var parts = last;\n var i = size - 2;\n while (i >= 0) {\n var pattern = void 0;\n if (i === 0) {\n pattern = getInternalSlot(internalSlotMap, lf, 'templateStart');\n }\n else if (i < size - 2) {\n pattern = getInternalSlot(internalSlotMap, lf, 'templateMiddle');\n }\n else {\n pattern = getInternalSlot(internalSlotMap, lf, 'templateEnd');\n }\n var head = { type: 'element', value: list[i] };\n parts = deconstructPattern(pattern, { '0': head, '1': parts });\n i--;\n }\n return parts;\n}\nfunction deconstructPattern(pattern, placeables) {\n var patternParts = partitionPattern(pattern);\n var result = [];\n for (var _i = 0, patternParts_1 = patternParts; _i < patternParts_1.length; _i++) {\n var patternPart = patternParts_1[_i];\n var part = patternPart.type;\n if (isLiteralPart(patternPart)) {\n result.push({\n type: 'literal',\n value: patternPart.value,\n });\n }\n else {\n invariant(part in placeables, part + \" is missing from placables\");\n var subst = placeables[part];\n if (Array.isArray(subst)) {\n result.push.apply(result, subst);\n }\n else {\n result.push(subst);\n }\n }\n }\n return result;\n}\nvar ListFormat = /** @class */ (function () {\n function ListFormat(locales, options) {\n // test262/test/intl402/ListFormat/constructor/constructor/newtarget-undefined.js\n // Cannot use `new.target` bc of IE11 & TS transpiles it to something else\n var newTarget = this && this instanceof ListFormat ? this.constructor : void 0;\n if (!newTarget) {\n throw new TypeError(\"Intl.ListFormat must be called with 'new'\");\n }\n setInternalSlot(ListFormat.__INTERNAL_SLOT_MAP__, this, 'initializedListFormat', true);\n var requestedLocales = getCanonicalLocales(locales);\n var opt = Object.create(null);\n var opts = options === undefined ? Object.create(null) : toObject(options);\n var matcher = getOption(opts, 'localeMatcher', 'string', ['best fit', 'lookup'], 'best fit');\n opt.localeMatcher = matcher;\n var localeData = ListFormat.localeData;\n var r = createResolveLocale(ListFormat.getDefaultLocale)(ListFormat.availableLocales, requestedLocales, opt, ListFormat.relevantExtensionKeys, localeData);\n setInternalSlot(ListFormat.__INTERNAL_SLOT_MAP__, this, 'locale', r.locale);\n var type = getOption(opts, 'type', 'string', ['conjunction', 'disjunction', 'unit'], 'conjunction');\n setInternalSlot(ListFormat.__INTERNAL_SLOT_MAP__, this, 'type', type);\n var style = getOption(opts, 'style', 'string', ['long', 'short', 'narrow'], 'long');\n setInternalSlot(ListFormat.__INTERNAL_SLOT_MAP__, this, 'style', style);\n var dataLocale = r.dataLocale;\n var dataLocaleData = localeData[dataLocale];\n var dataLocaleTypes = dataLocaleData[type];\n var templates = dataLocaleTypes[style];\n setInternalSlot(ListFormat.__INTERNAL_SLOT_MAP__, this, 'templatePair', templates.pair);\n setInternalSlot(ListFormat.__INTERNAL_SLOT_MAP__, this, 'templateStart', templates.start);\n setInternalSlot(ListFormat.__INTERNAL_SLOT_MAP__, this, 'templateMiddle', templates.middle);\n setInternalSlot(ListFormat.__INTERNAL_SLOT_MAP__, this, 'templateEnd', templates.end);\n }\n ListFormat.prototype.format = function (elements) {\n validateInstance(this, 'format');\n var result = '';\n var parts = createPartsFromList(ListFormat.__INTERNAL_SLOT_MAP__, this, stringListFromIterable(elements));\n if (!Array.isArray(parts)) {\n return parts.value;\n }\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var p = parts_1[_i];\n result += p.value;\n }\n return result;\n };\n ListFormat.prototype.formatToParts = function (elements) {\n validateInstance(this, 'format');\n var parts = createPartsFromList(ListFormat.__INTERNAL_SLOT_MAP__, this, stringListFromIterable(elements));\n if (!Array.isArray(parts)) {\n return [parts];\n }\n var result = [];\n for (var _i = 0, parts_2 = parts; _i < parts_2.length; _i++) {\n var part = parts_2[_i];\n result.push(__assign({}, part));\n }\n return result;\n };\n ListFormat.prototype.resolvedOptions = function () {\n validateInstance(this, 'resolvedOptions');\n return {\n locale: getInternalSlot(ListFormat.__INTERNAL_SLOT_MAP__, this, 'locale'),\n type: getInternalSlot(ListFormat.__INTERNAL_SLOT_MAP__, this, 'type'),\n style: getInternalSlot(ListFormat.__INTERNAL_SLOT_MAP__, this, 'style'),\n };\n };\n ListFormat.supportedLocalesOf = function (locales, options) {\n // test262/test/intl402/ListFormat/constructor/supportedLocalesOf/result-type.js\n return supportedLocales(ListFormat.availableLocales, getCanonicalLocales(locales), options);\n };\n ListFormat.__addLocaleData = function () {\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n var _loop_1 = function (datum) {\n var availableLocales = Object.keys(__spreadArrays(datum.availableLocales, Object.keys(datum.aliases), Object.keys(datum.parentLocales)).reduce(function (all, k) {\n all[k] = true;\n return all;\n }, {}));\n availableLocales.forEach(function (locale) {\n try {\n ListFormat.localeData[locale] = unpackData(locale, datum);\n }\n catch (e) {\n // If we can't unpack this data, ignore the locale\n }\n });\n };\n for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {\n var datum = data_1[_a];\n _loop_1(datum);\n }\n ListFormat.availableLocales = Object.keys(ListFormat.localeData);\n if (!ListFormat.__defaultLocale) {\n ListFormat.__defaultLocale = ListFormat.availableLocales[0];\n }\n };\n ListFormat.getDefaultLocale = function () {\n return ListFormat.__defaultLocale;\n };\n ListFormat.localeData = {};\n ListFormat.availableLocales = [];\n ListFormat.__defaultLocale = 'en';\n ListFormat.relevantExtensionKeys = [];\n ListFormat.polyfilled = true;\n ListFormat.__INTERNAL_SLOT_MAP__ = new WeakMap();\n return ListFormat;\n}());\nexport default ListFormat;\ntry {\n // IE11 does not have Symbol\n if (typeof Symbol !== 'undefined') {\n Object.defineProperty(ListFormat.prototype, Symbol.toStringTag, {\n value: 'Intl.ListFormat',\n writable: false,\n enumerable: false,\n configurable: true,\n });\n }\n // https://github.com/tc39/test262/blob/master/test/intl402/ListFormat/constructor/length.js\n Object.defineProperty(ListFormat.prototype.constructor, 'length', {\n value: 0,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n // https://github.com/tc39/test262/blob/master/test/intl402/ListFormat/constructor/supportedLocalesOf/length.js\n Object.defineProperty(ListFormat.supportedLocalesOf, 'length', {\n value: 1,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n}\ncatch (e) {\n // Meta fix so we're test262-compliant, not important\n}\n//# sourceMappingURL=core.js.map"],"names":["invariant","condition","message","Err","Error","toObject","arg","TypeError","Object","getOption","opts","prop","type","values","fallback","value","undefined","Boolean","o","String","toString","filter","val","length","RangeError","join","setInternalSlot","map","pl","field","get","set","create","getInternalSlot","fields","_i","arguments","slots","reduce","all","f","getMultiInternalSlots","getCanonicalLocales","locales","Intl","DateTimeFormat","supportedLocalesOf","extendStatics","__extends","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","__assign","assign","t","s","i","n","call","apply","createResolveLocale","getDefaultLocale","lookupMatcher","availableLocales","requestedLocales","result","locale","requestedLocales_1","noExtensionLocale","replace","UNICODE_EXTENSION_SEQUENCE_REGEX","availableLocale","bestAvailableLocale","extension","slice","bestFitMatcher","requestedLocales_2","options","relevantExtensionKeys","localeData","privateIndex","r","localeMatcher","foundLocale","dataLocale","supportedExtension","relevantExtensionKeys_1","key","foundLocaleData","keyLocaleData","isArray","requestedValue","optionsValue","supportedExtensionAddition","unicodeExtensionValue","indexOf","size","searchValue","pos","start","end","k","done","e","candidate","lastIndexOf","lookupSupportedLocales","subset","requestedLocales_3","push","_super","MissingLocaleDataError","_this","unpackData","reducer","localeHierarchy","aliases","parentLocales","results","parentLocale","localeParts","split","getLocaleHierarchy","dataToMerge","l","data","reverse","__spreadArrays","il","a","j","jl","validateInstance","instance","method","ListFormat","stringListFromIterable","list","list_1","el","createPartsFromList","internalSlotMap","lf","deconstructPattern","0","1","parts","pattern","placeables","patternParts_1","beginIndex","endIndex","nextIndex","substring","partitionPattern","subst","patternPart","part","format","elements","__INTERNAL_SLOT_MAP__","parts_1","formatToParts","parts_2","resolvedOptions","style","__addLocaleData","_loop_1","datum","keys","forEach","_a","data_1","__defaultLocale","polyfilled","WeakMap","opt","matcher","templates","pair","middle","Symbol","defineProperty","toStringTag","writable","enumerable","configurable"],"mappings":"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"}