"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LookupMatcher = void 0; var utils_1 = require("./utils"); var BestAvailableLocale_1 = require("./BestAvailableLocale"); /** * https://tc39.es/ecma402/#sec-lookupmatcher * @param availableLocales * @param requestedLocales * @param getDefaultLocale */ function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) { var result = { locale: '' }; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var locale = requestedLocales_1[_i]; var noExtensionLocale = locale.replace(utils_1.UNICODE_EXTENSION_SEQUENCE_REGEX, ''); var availableLocale = (0, BestAvailableLocale_1.BestAvailableLocale)(availableLocales, noExtensionLocale); if (availableLocale) { result.locale = availableLocale; if (locale !== noExtensionLocale) { result.extension = locale.slice(noExtensionLocale.length + 1, locale.length); } return result; } } result.locale = getDefaultLocale(); return result; } exports.LookupMatcher = LookupMatcher;